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

    Computer Science - TWO!

    QUICK LINKS: Java API 7.0 - (more links)

    Introduction

    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:

    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

    Projects planned for 2018-19 (We won't have time for all of these)

    Project # 1 - Database Management / DNA Analysis (2 weeks)calculator

    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.  

     

     

    calculator

    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!)
    • Resources

    Project # X - Evil Hangman

    Awesome variant of Hangman, where the computer cheats by dodging all the user's guesses.

    Project # 5 - 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 #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 calculator

    Trees and Dragons and Mandelbrot sets

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

    Project # X - Android-based Arcade calculator

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

     

    Resources

    • 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

    MakeyMakey

    Previous week's schedules

     

     

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

     

Last Modified on June 10, 2018