Materials
Course Resources
- Course Policies - Required reading
- Course Text: Downey & Mayfield's Think Java: How to think like a computer scientist (2nd edition)
- The College Board's Java Quick Reference
- AP Computer Science A - Course and Exam Description
- How to upload your programs to the server
- LearnAPCompSci.com - A problem-a-day, online. Subscribe to RSS, or use a cronjob to open the problem every day!
- Practice-It - Practice problems from the University of Washington
- Videos of some classroom presentations
- Zoom: https://us02web.zoom.us/j/3975309786?pwd=WWVKSUxRTnZrYzQ5ekN0S1B0elE2dz09
Semester 1
Unit 1: Getting Started
At the start of our course, if not before, work your way through the items listed in this outline.
Unit 2 - Programming Basics
- Discussion notes: Unit 2 - Programming Basics
- Daily Programming Problems: Show/hide problems
- Powers
- TemperatureConverter, and screencast showing how to find the assignment, write the program, and upload the final solution
- TotalHeight
- MinutesSeconds
- RectangleAreaPerimeter
- OverflowError
- RoundingError
- CircleSphere
- PairCalculations
- AgeName, Video Solution [YouTube]
- OneYearOlder
- PersonalHello
- Adder1
- OldMacDonald and screencast showing how to get started
- Adder2
- FourMethods
- Worksheet-Encapsulation and Binary
- Worksheet-Organizing Files
- Worksheet-Files and Folders
- Activity-Navigating with the Command Line, Key [PDF]
- Unit 1 Test Items for Review
- Programming Problem: Sabotage
- Handout - Errors (PDF)
- Project-Backups
Unit 3 - Conditional Statements: Making Decisions
- Discussion notes: Unit 3
- Daily Programming Problems: Show/hide problems
- VotingAge
- SecretMessage
- DaysInMonth
- SolidLiquidGas
- GradeReporter
- PaycheckOvertime
- CoinToss, and How to do Random Numbers in Java [Video]
- CardString, CardString walkthrough [YouTube]
- TriangleIdentifier
- BeverageRec, BeverageRec walkthrough [YouTube]
- RockPaperScissors
- PigLatin, PigLatin walkthrough [YouTube]
- MinivanLocks
- Whiteboard Pop Quiz: Quadratics
- Handout - Conditions (PDF), Solutions (PDF)
Unit 4 - Intro to Object-Oriented Programming
- Discussion notes: Unit 4
- Daily Programming Problems: Show/hide problems
- Handout - Car class (PDF)
- Handout - Basic OOP (PDF), Solutions (PDF)
Unit 5 - Iterating with Loops
- Discussion notes: Unit 5
- Daily Programming Problems: Show/hide problems
- Handout - Interations (PDF), Solutions (PDF)
- Project - Number Guessing Game [PDF]
Unit 5.5 - Text Files
- Discussion notes: Unit 5.5
Unit 6 - Graphics
- Discussion notes: Unit 6
- PixelWalker
- PictureProject.zip [Zipped directory], Blur walkthrough [YouTube]
- SnowflakeCatcher [PDF], SnowflakeCatcher.zip [Zipped directory]
- Atkinson Dithering
Unit 7 - Data Structures: Arrays and ArrayLists
- Discussion notes: Unit 7
- Daily Programming Problems: Show/hide problems
- Bank.zip
- Project - VideoPoker [PDF]
- SequenceTester.java
- MagicSquare.zip
- Project - GiftList [PDF], GiftList.zip, GiftList walkthrough [YouTube]
- Project - Game of Life [PDF]
Board.java (outline), GameOfLife.zip, GameOfLife Implementation Walkthrough [YouTube] - Handout - Lists (PDF), Solutions
- Activity - ElfName [PDF]
Unit 8 - Winter Decathlon, git & GitHub
- WinterDecathlon.zip [download]
- Introduction to git
- Project - Craps [PDF], Walk-through [YouTube]
- Introduction to GitHub
- GitHub Cheatsheet
- Project - Playlist, PlaylistProject.zip
Semester 2
Unit 9 - Designing Classes
- Discussion notes: Unit 9, Designing Classes
- Daily Programming Problems: Show/hide problems
- Project-OfficeSupplies [PDF]
- Activity-Cannonball.zip (see README.txt for instructions)
- APCS Lab: PixLab: Instructions, Student Guide [PDF], pixLab.zip [source files]
- Project-RideShare [PDF], Sample Output, Testing notes
Unit 10 - Inheritance
- Discussion notes: Unit 10, Inheritance
- Daily Programming Problems: Show/hide problems
- Project - Zookeeper [PDF]
- Project - AbstractRacers [PDF], AbstractRacers.pde
- Handout - OOP Inheritance, Interfaces
Unit 11 - Algorithms: Recursion, Sorting, and Searching
- Discussion notes: Unit 11, Recursion
- Daily Programming Problems: Show/hide problems
- RecursiveLoop
- RecursiveSum
- RecursiveFactorial
- RecursiveFibonacci
- PTurtle class: PTurtle.pde
- RecursiveLine
- RecursiveTree
- SierpinskiTriangle, starter code [zip file]
- Stack tracing for Java programs. Useful for understanding recursion.
- Discussion notes: Unit 11, Sorting
- Daily Programming Problems: Show/hide problems
- ArrayUtility
- SelectionSortDemo
- StopwatchUtility, StopwatchUtilityTester
- InsertionSortDemo
- MergeSortDemo, Template
- Introduction to Sorting: What's the Fastest Way to Alphabetize Your Bookshelf? [KQED, YouTube video]
- 15 Sorting Algorithms in 6 Minutes - a classic
- ArrayUtilityTester.java
- Discussion notes: Unit 11, Searching
- Daily Programming Problems: Show/hide problems
- LinearSearchTester.java
- Calculating Pi
Unit 12 - Review Projects, Exam Review
- Discussion Notes: Course Review
- Spring Decathlon - be sure to read the README file
- Project: Library
- AP Problem and solution development: Gizmo
- AP Problem and solution development: scrambleWord
- AP Problem and solution development: LightBoard
- College Board: Past Exam Questions, and Skylit, Solution to Past Exams
- CSAwesome [Runestone] - Comprehensive, interactive, with practice problems. Excellent.
- PracticeIt - University of Washington practice problems
- AP Computer Science A course - New Jersey Center for Teaching & Learning
- APCS A FRQ Map 2004-22, from Ria Galanos and Judith Hromcik
- Computational Thinking Quiz [NY Times]
Unit 13 - End of Year
- Pilot Unit: Artificial Intelligence / Machine Learning
- Project: Asteroids
- Independent Project
- readme_instructions.zip - Information on how to create a good README.txt / README.md file