• A.P. Computer Science

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

    A.P. Computer Science - TWO!

    QUICK LINKS: Java API 7.0 - (more links)


    The second year of A.P. Computer Science at Columbus North High School both reviews the first year material and goes beyond the required material for the A.P. curriculum. Students who did not take the A.P. test at the end of the first year course are highly encouraged to take the test in May of this school year.

    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:

    Stanford - Cal-Berkeley (SNAP) - Wyomissing HS (Minich) - Issaquah HS (Wortzman) - Schram (text) - Wittry - Java Concepts (Hortsmann) - C.C.S.U. (Jones)

    Schedule, Assignments and Resources

    If you choose to work ahead, please note that these assignments might change!!! In fact, after the first few projects, the order will most likely change from what is listed.


    Project # 1 - Calculator (3 weeks)

    Implement a basic calculator using skills you have learned previously.

    Project # 2 - Elevens lab (3 weeks)

    Write code to play the solitare card game Elevens.

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

      • Sample A.P. style problems (handout)

    • The final day to turn in this project is Friday, September 12th

    Project # 3 - 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!)
    • Resources
    • The final day to turn in problems from this unit is Friday, October 3rd

    Project # 4 - Nand2Tetris (9 weeks+)cpu

    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 #5 - RatBots 15 (3-4 weeks)

    Everyone can play RatBots!!

    Project # 6 - Database Management / DNA Analysis (3 weeks)calculator

    Write a program that manages a database. (This project is still being edited.)

    Project # 7 - Networking (2+ weeks)

    Communicate between two computers using TCP networking.

    • Project Description
    • Resource
    • The final day to turn in problems from this unit is

    2nd year students will choose from the following projects to work on during the first three weeks of the 4th quarter.

    Project # 8a - Advanced Nand2Tetris

    Implement all of the compiler levels needed to complete the computer!

    • Project Description
    • Resource
    • The final day to turn in problems from this unit is

    Project # 8b - 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 Description
    • Resource
    • The final day to turn in problems from this unit is

    Project # 8c - More Recursion calculator

    Trees and Dragons and Mandelbrot sets

    • Project Description
    • Resource
    • The final day to turn in this project is TBD

    Project # 8d - Android-based Arcade (3 weeks)calculator

    Create apps for Android devices!

    Project # 9 - A.P. Review (2-3 weeks)

    We will spend a few weeks before the test working practice problems and remembering what GridWorld is.

    • If you took the A.P. test last year, you will not need to participate in the A.P. review.
    • There is a cost of ~$84 to take the AP Computer Science Exam. Students in this class are highly encouraged to take the exam. This review will include a working through many released A.P. problems, presentations and discussions, and optional extra review sessions.
    • Resource
    • A.P. Exam Day - Thursday, May 7th, 2015

    Project # 10 - Choose your own final project (3 weeks)

    Towards the end of the year every student will choose their own project to work on.

    • Project Description
    • Resource
    • 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!!!
    • Eclipse
    • NetBeans
    • JDK7 - Java Development Kit (also needed for programming) download for FREE to use at home!!

    Classroom Netiquette

    Java Au Naturel

    Java Concepts (website for our secondary text.)

    CN Programming Style Guide

    Cool Stuff:

    Raspberry Pi


    Previous week's schedules



    Mr. Michael Spock - spockm@bcsc.k12.in.us


Last Modified on August 7, 2017