/APCSA

AP Computer Science A project home

Primary LanguageJavaMIT LicenseMIT

APCSA

AP Computer Science A project home

This is my personal archive of my AP Computer Science Independent Study.

I am following the guide below


Chapter One: Understanding Computer Programming • A Survey of Computer Hardware • Introduction to Computer Software • Common Programming Languages • Computer Ethics and Security (ethics, copyrights, intellectual property, piracy, software license agreements, firewalls, anti-virus programs, passwords) Establish Development Environment - Install JDK, create working directory, practice submitting projects through the online interface. Class discussion and review of a sample EULA terms and conditions.


Chapter Two: Getting Started with Java • The Java Platform • Writing Your First Program • Building and Running from the Command Line • Java Classes and Packages Show Time! – The student’s first Java program will print the current time to the console. The student will compile and run the program from the command line (without an IDE).


Chapter Three: The Eclipse IDE • Introducing Eclipse • Eclipse Java IDE Walk-through • Creating an Eclipse Project • Help and Reference Documentation Install Eclipse IDE – If not already installed, the student will add the Eclipse IDE to their home or school computer. Eclipse Show Time Project – The student will recreate the same Show Time project using the Eclipse IDE to write, build, and run the program.


Chapter Four: Data Types and Variables • Primitive Data Types • Variables • Printing Data Experiment with Data Types – The student will demonstrate declaring, initializing, and printing variables of different data types.


Chapter Five: Working With Strings • Reference Data Types • Comparing Strings • Common String Operations • Formatting and Building Strings • Converting Between Strings and Numbers String Theory – The student will create multiple strings and perform a variety of operations on them, including comparison, substrings, formatting, parsing, and case conversion.


Chapter Six: User Input • Using Command-Line Parameters • Interactive User Input • Validating User Input Conversation Piece – The student will create a program using a command-line Scanner to obtain a variety of user input, and then format that input into an output story.


Chapter Seven: Basic Flow Control • Logical Expressions and Relational Operators • Using the "if" Statement • The "switch" Statement • For Loops • While Loops Fun Factorials – The student will demonstrate use of a for() loop, while() loop, and do-while() loop to calculate factorials of an input number. Boundary conditions involving maximum integer sizes are explored and tested.


Chapter Eight: Writing Methods • Writing and Calling Methods • Method Parameters and Return Values • Calling Methods Checkerboard – The student will write a program that includes a new function to print a checkerboard pattern to the screen given input row and column size parameters.


Chapter Nine: Debugging and Exceptions • Logic Errors, Runtime Errors and Exceptions • Catching Exceptions • Finding Runtime Errors • The Eclipse Debugger Bug Hunt – The student is presented with a program that contains a number of bugs. The student will use the Eclipse debugger and troubleshooting skills to identify and resolve each issue.


Chapter Ten: Introduction to OOP • Object-Oriented Concepts • Functional Decomposition • Composite Classes • Copying Objects Designing a Composite Class – In this lab the student will design a composite class based around a Computer object. The output is a diagram instead of a program.


Chapter Eleven: Objects in Java • Defining a Class • Public, Private, and Protected Members • Constructors • Object Interfaces • Static Members Let's Go Racing! – The student will create a RaceCar object and an IRacer object. Multiple RaceCar instances will be added to a provided RaceTrack object that knows how to run races through the IRacer interface.


Chapter Twelve: Graphical Java Programs • Java Swing • Creating a Simple Window • Event-Driven Programming • Layout Managers Phone Dialer – The student’s first Java Swing program will show a simple phone keypad and allow users to enter a phone number for display.


Chapter Thirteen: Swing Input Controls • Text and Numeric Input • List Input • Option Input Pizza Place – The student will create a pizza ordering screen to demonstrate proper use of many common UI widgets (check boxes, radio buttons, list boxes, etc).


Chapter Fourteen: Arrays and Collections • Arrays (1D and 2D) • Java Lists and ArrayLists • Iterators Baseball Stats – The student will use 1D arrays of integers and ArrayLists containing Player objects to insert, track and calculate baseball player batting statistics.


Chapter Fifteen: Inheritance and Polymorphism • Learn about the “Jail Break!” game. • Base Classes and Derived Classes • Using References to Base and Derived Classes • Overriding Base Methods • The "Object" Base Class • Using Base Features from Derived Classes Game Pieces – The student will create three derived classes (Deputy, Henchman, Kingpin) from an abstract base, in preparation for using these classes in the mid-term project. The classes are tested to ensure they meet the requirements using a provided test class.


Chapter Sixteen: MidTerm Project For the mid-term project the student will complete a game called “Jail Break” that is based on an old Viking board game. The student will create the abstract hierarchy of pieces (AbstractGamePiece, Deputy, Henchman, Kingpin) and write other logic to complete the game. The project consists of 6 guided lab steps that involve creating new classes, modifying existing code, and integrating with provided starter objects. Each guided step contains a checkpoint for testing to ensure code meets the requirements at each step. Key concepts demonstrated include: • Encapsulation • Inheritance • Polymorphism • Modeling real-world activities • Integrating new and existing classes Building the Activity Starter – Ensure the student can find and build the starter project. Completing JailBreak.reset() – Write logic to initialize the game board with pieces in the starting position. Selecting Game Pieces – Write game logic to allow selection and de-selection of game pieces. Moving Game Pieces – Write game logic (including virtual method overrides) to control game piece movement. Capturing Game Pieces – Write game logic to control game piece capturing. Ending the Game – Complete the end-of-game logic.


Chapter Seventeen: Math Functions in Java • Java Math Functions • The Binary Number System • Creating a MathFactory demonstration MathFactory Activity – The student will expand the MathFactory lab to include decimal-to-binary conversion.


Chapter Eighteen: File Access • Data Streams • Reading and Writing Text Data • Reading and Writing Binary Data Address CSV – The student will write a program to convert a list of Address structures to a CSV file on disk, and then read that file back in again and re-populate the address list.


Chapter Nineteen: Sorting, Searching and Recursion • Recursion • Sorting Algorithms (Bubble, Selection, Insertion, Merge) • Searching Algorithms (Sequential, Binary) Recursive Binary Search – The student will write a binary search function to locate a number in a pre-sorted array.


Chapter Twenty: Program Efficiency • Common Algorithms • Algorithm Performance (Big-O) • Measuring Sorting Efficiency Comparison of Sorting Algorithms – The student will implement timing and datageneration algorithms and measure the performance of 4 different sort routines with various numbers of elements.


Chapter Twenty-One: Vector and Bitmap Images • Screen Coordinates • Drawing Shapes • Drawing Images Sky Art – The student will use recursion, vector graphics, and image graphics to generate a randomized cloudy sky scene.


Chapter Twenty-Two: College Board Supplemental Labs This chapter gives students a chance to complete many activities in the College Board AP supplemental labs, including: • Magpie • Picture Lab • Elevens The older GridWorld case study is available for students who wish to pursue extra exercises on their own. Magpie Chatbot – Guided lab involving string parsing and manipulation. Picture Lab - Guided lab using 2D arrays in the context of image processing. Elevens - Guided lab through object-oriented design concepts with a simple card game.


Chapter Twenty-Three: Computer Networking • Basic Networking • Network Topology • Network Addressing Animal Palace – Students will use online tools to find images and store in a shared directory and class web page.


Chapter Twenty-Four: Software Engineering Principles • Design Processes and Teamwork • Java Doc • Testing Your Code Creating JavaDoc HTML – The student will add JavaDoc comments to an earlier lab project and generate HTML output using the javadoc tool.


Chapter Twenty-Five: Team Project The final project can be completed before or after the AP exam and the timeline scaled to fit available time. Student-driven labs will cover each phase of the software lifecycle. • Project Requirements • Project Design • Project Implementation • Project Testing Team Project Requirements – Student teams will define their final project requirements. Project Design – Student teams will design their final projects. Team Project Implementation – Student teams will code their final project. Team Project Testing – Student teams will test their final project.


AP EXAM – PRACTICE TESTS, REVIEW, MAKE-UP WORK Flexible time used to review and practice for the AP exam.


AP EXAM – EARLY MAY


After the exam, the class will work on completion / extension of Team Project or other fun teacher-driven activities. Hands-on programming activities determined by class, teacher, and available time.