(AP CS A) Semester 1 Project (For Students)
(AP CS A) Semester 1 Project (For Students)
I hope this finds you well and enjoying your break! You do NOT need to work on this project over break, but
it may be helpful to you to hear what it’s about and do some early thinking on what you might want to make.
On the pages below, find the following bits of information. This is a living document, so I’ll be updating this a
few times before it’s due.
Update Log
Overview
Detailed Requirements
Assessment Standards
Topic Ideas
Best,
~Mr. Ayyappan
Update Log
Date/Time Update:
30 Nov Developer Log added to Templates and Resources Section (make a copy!)
1. Overview
Question Answer
What are you making? You are making and submitting two things:
1. A java project that does some things and uses concepts we’ve learned
in class so far.
2. A presentation or report that explains your thinking, details your
process, and reflects technically on your code.
Who can I work with? Your grade has to represent what you can do, so you should be the only one
writing your code and making your presentation.
When can I make this Most or all class time the week of 30 Nov - 04 December will be devoted to
and when is it due? this project. On the exam day (after taking a 45-minute summative on Primitive
Arrays), you will share your project with some classmates, so it must be done
before you arrive that day.
2. Detailed Requirements
Program Requirements:
● Write a program with a main method
● Create and use at least one new method which is called from main that takes at least
one parameter
● Create and use at least one new method that returns data
● Call at least two distinct methods in the String and/or Math classes
● Utilize conditional statements or compound Boolean expressions
● Create an array to store information
● Utilize iteration to perform some analysis on that array
● The class(s) are well commented - Block header comment and effective inline comments
Project Requirements:
● Justify three (3) of the decisions about data types used
● Develop sufficient test cases to judge the extent to which the program works as intended (use the
test table template provided to track and communicate these)
● Clearly represent or describe a central process in your code with a flow chart or in text
(pseudocode).
● Keep and update a developer log with entries after each class period and outside time spent
working on your project
○ After each version of the program, reflect on strengths / weaknesses, what improvements
did you make since the last version, and what improvements do you want to make for the
next one.
● A video demonstrating how your program works(program flow), providing meaningful data
including error messages
3. Assessment Standards
The following four standards will be assessed on a scale from Below through Exceeds Expectations:
Using Relevant Data Types and Structures - Distinguish among and select when to use various data
types and structures that are most relevant to a given problem.
Testing & Proving Accuracy- Develop and use test cases to analyze program code for correctness,
equivalence, and errors.
Evaluating Programs - Evaluate key behavior, conditions, costs, and opportunities for improvement
for a program through a process such as a code review.
5. Topic Ideas
Choosing a topic:
● Pick something you care about and know a little bit about
● Think about who would use your program. Making something for s omeone can help plan it and
measure success.
● It should be easy enough that you can do it, and hard enough that you can show off a lot of what
you’ve learned.
Possible projects:
● Analyze data to answer 3+ questions about a data set.
● Create a cipher algorithm that can consistently encrypt and decrypt a message.
● Make a quiz game that keeps track of multiple questions, answers, clues, etc.
● Play a game with the computer that records a history of answers (to enable either multiple “undos”
or to analyze a pattern and have a basic AI that’s a little smarter than random)