Bush School CPJava Spring Semester 2023 (Year-Long) updated May, 9th 2024
Date | Topic | Link |
---|---|---|
09-05-2024 | CONGRATS TO ALL AP CSA EXAM TAKERS!!!! | click to go there |
This course is designed to introduce computer programming in the Java language. Learning to use a computer language is a necessary skill for all students regardless of discipline. In this course we will teach the fundamentals of computer programming from the stand point of simulation, automation, and problem solving of real-world systems and natural processes. At the same time, the design and implementation of computer programs is taught from the context of fundamental aspects of computer science, including the development and analysis of algorithms, the development and use of fundamental data structures, the study of standard algorithms and typical applications, and the use of logic and formal methods.
In addition, the year-long course will cover many of the topics necessary for preparation to the AP Computer Science A (APCSA) examination in May of next year 2024. You will need to register for this by October 2023.
This is an introductory course in computer programming using Java. As such, no specific programming prerequisites are needed to take this course. However, additional preparation may be needed to fully prepare a student for the APCSA exam with no prior knowledge of computer programming.
In our CPJava classroom we are already using tools and techniques that are naturally adapted to a remote learning format. We will continue using our already established tools and techniques for learning CPJava. All applications are to be run using your Chrome Browser on your laptop.
- CPJava WEBSITE - lessons, presentation, examples, exercises, projects, student-portfolios, references
- CPJava Syllabus - Course Description, Syllabus, Grading Rubric etc.
- Google Classroom - Google Classroom for course Assignments and student administrative materials
- GITHUB repository - code submissions for exercises and projects, published student portfilios - Login/Register with Bush ID
- Processing Editor (IDE) Download - Code editor download for Java and Processing languages - Get Stable Release v. 4 or greater
- Visual Code Editor (IDE) Download - Login/Register with Bush ID
- Codingbat Exercises - Web-Based Java Exercises
- CSAwesome Online Text - CSAwesome Online Text - Very useful reference if you are taking the APCSA exam
- Online Textbook The Nature of Code - Download a local copy
- The Coding Train - Youtube Video Examples from the Processing Foundation
- Bush PORTAL - links for all tools, official assignments, schedules, syllabus, grade rubric
- SLACK Instant Messaging - communication for differentiated classroom, code extracts, bug fixes, instant help, quick challenges. You will receive an invitation. email communication is discouraged for this purpose.
- Bush EMAIL will be used for administrative, one-on-one communications as necessary. Please check this once a each day during the Semester.
- Zoom Conference Appointments
- STEM Center Support - Wyatt Thelan will be teaching assistant fpr this course. He took the CP Java class last year and can speak with you with direct experience! Best way to contact him is via email Wyatt.Thelan@bush.edu
Schedule updated 9/5/23
In this mode of learning we will simultaneously start a consolidated student-paced sessions spanning multiple Java Units, and by working on programming projects within Paired Programming teams. We will mostly be using this workflow model, switching to Synchronous teacher-led sessions in small bursts as needed.
We will use this method at the start of each Unit, or for unfamiliar and difficult topics that might require a lecture-based instructional unit. The lesson plans are published and always available as a reference while we live in the world of Asynchronous "Learning by Doing First" model above.
-
Student attends CPJava classes in-person at Bush Campus
-
There are 11 Units in this course
-
Each Unit will have student-paced asynchronous and lecture-based sessions that will guide the coverage of the content in each Unit
-
Each Unit will also have Exercises and Projects toon online sources. These are assigned via the Google classroom
-
Exercises are short code extracts, videos to watch etc. Projects aresolutions (programs) that you will write to meet a given specification.
6.these and submit them to Github these as directed. Projects will always have a code submission that is due. In some cases exercises may not have a code submission, but you will still practice them online.
- Once youthe exercises and projects, mark them asin the Google classroom. If you actually submitted code to Github, paste a link in the Google classroom assignment before marking it as complete.
In the world of programming - collaboration with others is everything!. We will model that in our learning process in the classroom. We will learn by doing and by pairing with others. Each person in a paired team will have the opportunity to teach and to learn from each other. We will be using the Paired Programming teams for team for learning Java and projects. ** Please provide me the Github Account usernames that you created **. The Paired Programming projects will be published at this location. I have updated paired programming teams for the 2nd-term also keeping in mind the students remote/on-campus students and those taking the APCSA exam.
- TBD
- TBD
- TBD
- TBD
- TBD
- Gabe/Charlotte/Rea
- TBD
- 🟢 COMPLETE Unit 0 Java Introduction
- 🟢 COMPLETE Units 1 2 3 Consolidated Intro to Java Variables Operators
- 🟢 COMPLETE Units 4 5 Loops & Objects
- 🟢 COMPLETE Unit 6a Arrays
- 🟢 COMPLETE Unit 6b Arrays of Objects
- 🟢 COMPLETE Unit 7a Array List
- 🟢 COMPLETE Unit 7b For Each Loop
- 🟢 COMPLETE Unit 9a Inheritance & Encapsulation
- 🟢 COMPLETE Unit 2a String Objects & Methods and PI-Day Project
- 🟢 COMPLETE Unit 8 2D Arrays Tables
- 🟢 COMPLETE Unit 2b String Methods & Pointers and Piglatin Project
- 🟢 COMPLETE Unit 10a Recursion and Sierpinski Triangles
- 🟢 COMPLETE Unit 10d Searching - Linear Binary Recursive Search
- 🟢 COMPLETE Unit 10e Sorting - Sort & Merge
- 🔴 SKIPPED Unit 10b Recursion and Fibonacci Sequence
- 🔴 SKIPPED Unit 10c Recursion and Fractals
- 🟢 COMPLETE Unit 0 Processing Primer Scales Project
- 🟢 COMPLETE Unit 1 Using MathDotRandom in the Lightning Project
- 🟢 COMPLETE Unit 9b Asteroids Project Part 1
- 🟢 COMPLETE Unit 9c Asteroids Project Part 2
- 🟢 COMPLETE Unit 9d Asteroids Project Final Part 3
- 🔴 SKIPPED Vectors & Planetary Orbits Project
- 🟢 COMPLETE Machine Learning - Perceptron Project
- Help with errors running Processing in Github
- Declare and Define Primitives, Objects, Array and ArrayList with examples
- Scales Project 🟢 COMPLETE
- Lightning Project 🟢 COMPLETE
- Dice Project 🟢 COMPLETE
- Chemotaxis Project 🟢 COMPLETE
- Rising Bubbles Project 🟢 COMPLETE
- Snowflake Live Coding Project 🟢 COMPLETE
- Starfield Project🟢 COMPLETE
- PI-Day Project 🟢 COMPLETE
- Times Tables Project 🟢 COMPLETE
- Game of Life Project - PART 1 & 2 🟢 COMPLETE
- Piglatin Project 🟢 COMPLETE
- Palindrome Checker Project 🟢 COMPLETE
- Sierpinski Triangles Project 🟢 COMPLETE
- OPTIONAL Linear Binary Search Functions 🟢 COMPLETE
FINAL PROJECTS ARE EXEMPT FOR AP EXAM TAKERS OR SENIORS DOING SENIOR PROJECTS
- 🟢 COMPLETE FINAL Project OPTION 1 Asteroids Part 1 Part 2 Part 3
- FINAL PROJECT OPTION 2 Vectors - Planetary Orbits Project
- FINAL PROJECT OPTION 3 Collatz Conjecture - Recursion Project
- 🟢 COMPLETE FINAL PROJECT OPTION 4 AI Machine Learning - Perceptron Project
Make sure you login to codingbat with your username before attempting problem sets.
Completion of these problem sets are not rquired for the CPJava course. However, it is highy recommended and essential in preparing for the APCSA exam if you plan to take it. See suggested schedule sequence below by topic. See additional details about the APCSA exam in the sections below
Suggested Schedule of Completion updated 09.05.23 **Indicates shouod be considered In-work Codingbats
Sequence | Schedule Topic | Codingbat Problemset |
---|---|---|
1 | Primitives | Primitives |
2 | Functions | Functions1 Functions2 Functions3 |
3 | Arrays | Arrays1 Arrays2 Arrays3 Arrays4 |
4 | Array List | ArrayList1 ArrayList2 ArrayList3 |
5 | Fall Review | FallReview1 FallReview2 |
6 | String | Googlebillboard |
7 | String & Pointers | Piglatin |
8 | String & Pointers | String1 String2 String3 |
9 | Array Traversal | Palindrome |
10 | 2D Arrays | Minesweeper |
11 | 2D Arrays | 2DArrays |
12 | Recursion | Recursion1 Recursion2 Recursion3 |
13 | Searching | Searching1 Searching2 |
14 | Sorting | Sorting |
- Question 1: Methods and Control Structures—You’ll be asked to write program code to create objects of a class and call methods, and satisfy method specifications using expressions, conditional statements, and iterative statements.
- Question 2: Classes—You’ll be asked to write program code to define a new type by creating a class and satisfy method specifications using expressions, conditional statements, and iterative statements.
- Question 3: Array/ArrayList—You’ll be asked to write program code to satisfy method specifications and create, traverse, and manipulate elements in 1D array or ArrayList objects.
- Question 4: 2D Array—You’ll be asked to write program code to satisfy method specifications and create, traverse, and manipulate elements in 2D array objects.
APCSA Instructional Videos can be accessed here!
APCSA Review Videos can be accessed here! If you are taking the APCSA exam this May, you will benefit by watching (and practicing!) these youtube videos as part of your review.
This course draws from the book Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp and materials used in the the CSAwesome curriculum. Credit for significant collaboration with CS programs taught at the Lowell High School by Art Simon in San Francisco and at the Boston Latin School by Long Nguyen is duly noted with thanks. Credit is also due to the many member founders of the Processing Foundation, especially Dan Shiffman whose tireless efforts have advanced the cause for open, accessible, and free CS education across the world.