A.P. Computer Science
This course has been renamed Computer Science II - Programming, and is being kept up on the itsLearning site however the web page has been left up as a reference.
Computer Science - TWO!
The second year of Java programming at Columbus North High School both extends the first year material and incorporates interesting projects and mathematical modeling.
This course will be entirely project-based, and students must be motivated and self-directed to succeed. There will be opportunity for student input into some of the projects we choose to do.
A.P. Computer Science A - Course Description (from College Board)
Many of our assignments are borrowed or adapted from these great computer science teachers and programs:
Schedule, Assignments and Resources
Projects planned for 2018-19 (We won't have time for all of these)
Project # 1 - Database Management / DNA Analysis (2 weeks)
Write a program that manages a database. (This project is still being edited.)
Project # 2 - Dinosaur Eggs
Students will get to use simulations and statisical techniques to analyze an archeological find.
Project # 3 - Anagrams
Students will write a program (likely using recursion) to generate all anagrams of a word (or phrase) and then compare them to a dictionary to select only real words.
Project # 4 - Environmental Models
Student will use simulation and mathematical modeling to forecast effects of changes in the environment.
Project # X - Calculator (3 weeks)
Implement a basic calculator using skills you have learned previously.
Project # X - Elevens lab (3 weeks)
Write code to play the solitare card game Elevens.
- ASSIGNMENT #1
- Read the student guide for the Elevens lab. It is okay to read it by sections for each activity.
- Get the code for the Elevens lab from the shared folder.
- Complete each activity in sequence. We will have small group discussions to discuss what you have encountered.
- Use these pages (you will be given a copy) to fill in your answers. These are the pages you will turn in at the end of the lab.
- Activity 1: Design and Create a Card Class
- Activity 2: Initial Design of a Deck Class
- Activity 3: Shuffling the Cards in a Deck
- Activity 4: Adding a Shuffle Method to the Deck Class
- Activity 5: Testing with Assertions (Optional)
- Activity 6: Playing Elevens
- Activity 7: Elevens Board Class Design
- Activity 8: Using an Abstract Board Class
- Activity 9: Implementing the Elevens Board
- Activity 10: ThirteensBoard (Optional)
- Activity 11: Simulation of Elevens (Optional - but recommended.)
Project # X - Secrets in Images (3 weeks)
Hide secret messages inside images - image manipulation with data as simple arrays.
- Project idea based off of Brent Heeringa and Thomas Murtaugh's project (Stanford's Nifty Assignments - 2009)
- Project Description
- Stage 1: Write a program that loads an image into a BufferedImage and also displays it to the screen.
- Stage 2: Load an image and change it in some way. Then save this edited image back to a file.
- Stage 3: Load an image and change every other line to be blue. Then save this edited image back to a file.
- Stage 4: Load an image and change the LSB of each of the colors (RGB) to zero. Display both the new and original images side by side on the screen. (CHECKPOINT = 10 points)
- Stage 5: Load two images, the second will be black and white only.
- Stage 6: Load four images, use the LSB of each of RGB of the first image to 'hide' the other three images within the first. Make encode and decode methods and provide a way to test that it works. (CHECKPOINT = 10 points)
- Stage 7: Come up with a way to 'hide' and retrieve a text message within an image using the LSBs. (CHECKPOINT = 20 points!)
Project # X - Evil Hangman
Awesome variant of Hangman, where the computer cheats by dodging all the user's guesses.
- Project courtesy of Keith Schwarz (Stanford's Nifty Assignments - 2011)
Project # 5 - Nand2Tetris (9 weeks+)
Build a complete functional (although virtual) computer beginning only with a Nand logic gate. VERY COOL!
- This project will run throughout the second quarter.
All students should complete through at least unit 7.
- Project Description and Resources
- The final day to turn in problems from this unit is Wednesday, December 17th
Project #6 - BotWorld19 (3-4 weeks)
Project # 7 - Grasshopper
An interesting simulation of jumping grasshoppers!
Project # 8 - Markov Chains
Project # 9 - Machine Learning and Games
Project # 10 - Networking
Communicate between two computers using TCP networking.
Project # 11 - Sim Economy
2nd year students will choose from the following projects to work on during the first three weeks of the 4th quarter.
Project # X - Advanced Nand2Tetris
Implement all of the compiler levels needed to complete the computer!
Project # X - More Recursion
Trees and Dragons and Mandelbrot sets
- Project Description
- The final day to turn in this project is TBD
Project # X - Android-based Arcade
Create apps for Android devices!
Project # 12 - Choose your own final project
Towards the end of the year every student will choose their own project to work on.
- Project Description
- The final day to turn in problems from this unit is Monday, September 10th
Class Rules and Procedures
- Students are expected to be on time. If a student is absent they should check the website and check in with the teacher to see what was missed, and make up that work in a timely fashion. Students are not permitted to do anything that affects their own or another student's ability to work and learn. Students are expected to be able to work both collaboratively and individually as needed.
- Students should not play games on the computers in the lab (unless you programmed them! - and even then you should get to work instead of playing games!)
- No touching another students mouse or keyboard. You are encouraged to collaborate and discuss programs; this is especially useful for troubleshooting. However, your final product should be your own work.
- All programs MUST be properly commented and indented. Your name should appear in a comment at the start of each program you write.
- You are expected to work outside of class on the required programs. (HOMEWORK!) Very few students will be able to finish the assigned programs using only the in class time.
- It is useful to have a jump drive, but not required.
- Students should back up their files often! Not working because 'your files are on a jump drive at home' is not acceptable.
Grades for this class will be determined by elements from four categories.
Programs - Assigned programs which can be completed in class or as homework are the largest part of your grade.
Homework - We will have a few homework assignments and often check them for completion before our discussion.
Quizzes - We will occasionally have written quizzes, lab quizzes and reading quizzes
Projects - We will have a few large scale projects with many graded elements.
If you get creative and make your own programs, show them for possible extra credit!
- BlueJ IDE (Integrated Development Environment) - (software we will use in this class) download for FREE to use at home!!!
- JDK7 - Java Development Kit (also needed for programming) download for FREE to use at home!!
Java Concepts (website for our secondary text.)
- ASSIGNMENT #1