Skip to content

thebushschool/cpjava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bush School CPJava Spring Semester 2023 (Year-Long) updated May, 9th 2024

Newly added topics

Date Topic Link
09-05-2024 CONGRATS TO ALL AP CSA EXAM TAKERS!!!! click to go there

Bouncing Bubbles Java Program

alt text

Click here for live code of bouncing bubbles and try clicking them inside resulting new tab or window. Like what you see? This course will be all about developing skills to simulate nature on your computer in a fun, engaging manner and learn Java on the side!

CPJava - Computer Programming in Java Course

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.

Remote Classroom Tools

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.

  1. CPJava WEBSITE - lessons, presentation, examples, exercises, projects, student-portfolios, references
  2. CPJava Syllabus - Course Description, Syllabus, Grading Rubric etc.
  3. Google Classroom - Google Classroom for course Assignments and student administrative materials
  4. GITHUB repository - code submissions for exercises and projects, published student portfilios - Login/Register with Bush ID
  5. Processing Editor (IDE) Download - Code editor download for Java and Processing languages - Get Stable Release v. 4 or greater
  6. Visual Code Editor (IDE) Download - Login/Register with Bush ID
  7. Codingbat Exercises - Web-Based Java Exercises
  8. CSAwesome Online Text - CSAwesome Online Text - Very useful reference if you are taking the APCSA exam
  9. Online Textbook The Nature of Code - Download a local copy
  10. The Coding Train - Youtube Video Examples from the Processing Foundation
  11. Bush PORTAL - links for all tools, official assignments, schedules, syllabus, grade rubric
  12. 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.
  13. Bush EMAIL will be used for administrative, one-on-one communications as necessary. Please check this once a each day during the Semester.
  14. Zoom Conference Appointments
  15. 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

alt text

Learning Modes

Learning by Doing First - Student-Based Asynchronous Workflow

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.

Doing by Learning First - Teacher-Led Synchronous Workflow

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.

Typical Workflow

  1. Student attends CPJava classes in-person at Bush Campus

  2. There are 11 Units in this course

  3. Each Unit will have student-paced asynchronous and lecture-based sessions that will guide the coverage of the content in each Unit

  4. Each Unit will also have Exercises and Projects toon online sources. These are assigned via the Google classroom

  5. 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.

  1. 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.

Expectations for School Work

alt text

Paired Programming Teams

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.

Team Rainier

  • TBD

Team Hood

  • TBD

Team St Helens

  • TBD

Team Stevens

  • TBD

Team Baker

  • TBD

Team Glacier Peak

  • Gabe/Charlotte/Rea

Team Alpe d'Huez

  • TBD

Lesson Schedule

Student Paced Sessions for Java Units

Project Specific Student Paced Sessions

Student Projects

Hints FAQ

Processing Project Specifications & Repositories

FINAL PROJECTS ARE EXEMPT FOR AP EXAM TAKERS OR SENIORS DOING SENIOR PROJECTS

AP Exam Section

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

FRQ Notes

  • 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.

Course Credit

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.

About

Bush School Computer Programming in Java course

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages