CSSE CSP CSA README

Computer Science "A"


Sprint1: Tools and Software Development Processes

Students should have experience in blogging, coding with Jupyter Notebooks, and GitHub Pages. Understanding of Linux, Python, Markdown, HTML, and JavaScript is expected. Students have previously established a foundation using essential tools and software development processes. Weeks 0-3 will provide a quick review, and students will start their Java coding journey.

Illustration
    

+-----------------+ | Laptop, OS | | Tool Setup | +-----------------+ | | VS Code, Markdown, Jupyter Notebook (.ipynb), JavaScript (.md, .html) v +-----------------+ | VS Code, Develop| | Code Editor | +-----------------+ | | Write code, make, run localhost, test, debug v +-----------------+ | VS Code, Git | | Version Control | | +-----------------+ | | Commit local versions, comment, track changes v +-----------------+ | VS Code, Project| | GitHub Sync | +-----------------+ | | Push changes to cloud Repository v +-----------------+ | GitHub, Collab | | Shared Code | +-----------------+ | | Actions, Jekyll build v +-----------------+ | GitHub Pages | | Showcase Project| +-----------------+


Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
0 - VSCode, GitHub Pages Setup
- Tools and Equipment Overview
- Build a Student Page
- Anatomy of GitHub Pages
- Grab a Project
- Pair Programming
1 - Java Hello
- Linux Shell and Bash
2 - JS Calculator
- JS Itunes API
- JS Input
- JS Output w/ Objects
3 - Pair Showcase

Sprint2: Java Mini-labs

Students should have an understanding of Fundamentals of Programming from Python, JavaScript, or other backgrounds. In this Sprint, students will become familiar with Java types, booleans, iteration, recursion, using and writing objects through Mini-labs. These labs will introduce AP required aspects of Java, FRQ requirements, and review College Board's 10 Sprints online.

Illustration
    

College Board Basic Programming Units ------------------------------------- Fundamentals of Programming +------------------+ | CB Unit 1 | | Primitive Types | --> Types appear in Code | 2.5%-5% | +------------------+ +------------------+ | Unit 3 | | Booleans and Ifs | --> Understand De Morgan's Law | 15%-17.5% | +------------------+ +------------------+ | Unit 4 | | Iteration | --> String Iteration, repeat until expression | 17.5%-22.5% | +------------------+ +------------------+ | Unit 10 - Part 1 | | Recursion | --> Base case and recursive call | 5%-7.5% | +------------------+ | Fundamentals of Java +------------------+ | Unit 2 | | Using Objects | --> Instance vs Static Methods, Java and 3rd party Methods ... | 5%-7.5% | +------------------+ +------------------+ | Unit 5 | | Writing Classes | --> Diagram a Class, constructor, setters, ... | 5%-7.5% | +------------------+ +------------------+ | Unit 9 | | Inheritance | --> Extend class, polymorphism, super, this, ... | 5%-7.5% | +------------------+


Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
4 - Agile Methodology
- FRQ Mini-lab project
- Student Teaching Tri1
5 - ChatGPT in Java
- Anatomy of Java Spring
- FRQ Mini-lab review
6 - API, POJO, JPA
- JPA
- AWS Deployment
- Passion Project Tri1
7 - U1 Data Types - Student P1
- U1 Data Types - Student P3
- U2 Using Objects - Student P1
- U2 Using Objects - Student P3
- U1 Grade Calculator (Teacher)
- PP Ideation Checkpoint

Sprint3: Individual/Team Projects, N@tM

In this Sprint, students will continue to become familiar with Java development as they learn Web Development using the Spring Framework. Coding will focus on Restful APIs, receiving requests, working with data, and responding to requests. This will teach key Java concepts while using Java Spring framework elements such as a Rest Controller, Plain Old Java Objects (POJOs), Object Relational Model (ORM), and Java Persistent API (JPA).

Illustration
    

+---------------+ | GitHub Pages | | Design, Layout| | Frontend | +---------------+ | | User presentation, style | Actions v +--------------+ | JavaScript | | Logic/Events | +--------------+ | | Functionality, interactivity | Sends HTTP requests/responses v +----------------+ | AWS EC2 Server | | Java / Spring | | Backend | +----------------+ | | Server-Side Processing | Analysis, POJOs, ORM, JPA | Communicate with AWS Services v +----------------+ | AWS Services | | Store Data | +----------------+


Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
8 - U3|Booleans-If|Student-P3
- U4|Iteration|Student-P1
- U4|Iteration|Student-P3
- Spring Security using JWT
- PP Feature Checkpoint
- PP Integration Checkpoint
9 - U5 Menu Class (Teacher)
- U5 | Classes | Student P1
- U5 | Classes | Student P3
- U6 | Array | Student P1
- U6 | Array | Student P3
- API, Data Strategies
10 - U8 Images (Teacher)
- U7 | ArrayLists | Student P1
- U7 | ArrayLists | Student P3
- U8 | 2D Array | Student P1
- U8 | 2D Array | Student P3
- Project Documentation - Alien World
11 - U9 Fibonacci (Teacher)
- Javascript Object Oriented Programming
- U10 Recursion
- U9 | Inheritance | Student P1
- U9 | Inheritance | Student P3
- U10 | Recursion | Student P1
- U10 | Recursion | Student P3
12

Sprint4: Warm-up Data Analysis and Sort Project

Trimester 2 will begin with a Mini-project on Sorting and Analysis. Focusing on frontend JavaScript Visualization; Backend Java Sorting, Inheritance, and Polymorphic behavior.

Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
13 - Analysis, CSA Mini Project
- Abstract Fibonacci
14 - Collectable Lesson
15 - UX, jQuery | CRUD
- UX, Styling with SASS
- SASS | Student P1
- SASS | Student P3
- jQuery | P3
- jQuery | P3
16 - Retrospective, CSA Mini Project
- UX-BE, Spring/Thymeleaf
- Java, SQL | HashMap | Collection
- Spring/Thymeleaf
- SQL, Advanced Data Structs | P1
- HashMap | P3

Sprint5: Creative Development Ideas and Concepts

This will be the most creative portion of the year for CSA students. The objective of these weeks is to explore, create ideas, and code concepts that have the growth potential to enable a two-trimester project. Consider frontend design, draw.io database modeling, API plans, JWT designs, big data solutions, and future usefulness. The ideas and code that are most liked by Teachers and Students will be continued and used for N@tM projects. Students should be able to talk about design, do fe/be coding, add data and data structure, add database features, and perform weekly live reviews.

Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
17 - Java, Exploits | CORS | DotEnv
- Java, Security | JWT
- JWT, Java Security | P1
- JWT, Java Security | P3
- Java Exploits and Cybersecurity
18 - CSA | JWT | Login Project
19 - Login | Student | P1
- Login | Student | P3
- POST | JSONB | Student | P1
- POST | JSONB | Student | P1
- Spring Roles| Student | P1 & P3

Sprint6: Passion Project v1.0 and N@tM Demo

Each person within "Student Teams" will have their own specialty within their student project that shows Full Stack competency, with a specific focus on Java as backend. Intentions for this period are to have the freedom of a creative project, driven by your individual Issues and team Scrum Board.

Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
20 - Cloud Workspace Automation Plan
- Cockpit Setup
- User Profile | Student | P1 & P3
- Deployment | Student | P1
- Deployment | Student | P3
21
22 - Course Descriptions
23
24 - Book and Library FRQ

Sprint7: Data Structures

A focus on Data Structures that relate to the AP exam. A key requirement is to make your own Algorithmic sorting video. The theme is to produce work that can help you pass the AP Exam and improve your Passion Project. Each student must cover key concepts from the Four AP FRQ types, contain a key Data Structure, and utilize Sorting.

Illustration
    

Required Data Structures for Course ----------------------------------- College Board Units +------------------+ | Unit 6 | | Array | --> Linear data structure, fixed size, algos, ... | 5%-7.5% | +------------------+ +------------------+ | Unit 7 | | ArrayList | --> Linear and dynamic size, Collection Framework | 2.5%-7.5% | +------------------+ +------------------+ | Unit 8 | | 2D Array | --> 2D Linear data structure, col/row order | 7.5%-10% | +------------------+ +------------------+ | Unit 10 - Part 2 | | Search/Sort | --> Bubble, Selection, Insertion, Merge | 5%-7.5% | +------------------+ | College Articulated Requirements, B or better +------------------+ | Java Fundamental | | HashMap | --> Key-value data structure | | +------------------+ +------------------+ | Algorithmic | | Queue,Stack,... | --> Collections Framework | | +------------------+ +--------------------+ | Abstract Data Type | | Graph | --> Nodes, Vertices, Edges | | +--------------------+


Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
25 - Data Types
26 - Collectable Types and Collections
27 - Sorts Part 1
28 - Sorts Part 2
29

Sprint8: AP Weeks

Students will lead several study sessions (20-minute test, followed by review) the week before the exam. In any break in study, students will transition activities back to their final project.

Illustration
    

Required FRQ Types by College Board ----------------------------------- Each FRQ writes program code, uses expressions, conditions, and iteration +--------------------+ | Methods and | | Control Structures | --> Algoritmic challenge, use objects, call methods, ... | Units #1-#4 | +--------------------+ +--------------------+ | Classes | | | --> Define a new type by creating a class ... | Units #2,#5,#9 | +--------------------+ +--------------------+ | Arrays / | | ArrayLists | --> Create, manipulate elements in 1D array or ArrayList, ... | Units #6,#7 | +--------------------+ +--------------------+ | 2D Array | | | --> Create, traverse, and manipulate elements in 2D array, ... | Units #6,#7 | +--------------------+


Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
30
31 - Search Challenge and BigO
32
33

Sprint9: Passion Project v2.0 and N@tM

Wrap up your preferred project and data structures. There will be an opportunity to contribute and be published to the NightHawk Coding Society. If your project is selected, then you will receive a high 'A' on the final project.

Week Issues/Plans Code, Code, Code Tools and DevOps Collaboration
34 - Calculator Enactment
35
36
37