AP CS Principles
Mrs. Porter
(2024-2025)
You will need a laptop that is fully charged for every class as we will be working through problems in class most of the time. You will need to download DrRacket in order to do the work for this course. If you usually use a Chromebook you can borrow a computer from the tech office for the duration of this year. You will not be able to use DrRacket on a Chromebook.
You can find instructions on how to download DrRacket here.
This is an AP level course which means I expect you to take responsibility for your learning. Students who succeed in this class display the following student skills:
If you are struggling with the course material please come see me or send me an email.
Email: porterr@wellesleyps.org
I have office hours twice a week and am usually available during A block if you let me know ahead of time that you will be coming to see me. If you cannot make it to either of those times you should speak to me in class or email me to set up an alternative time to meet.
It is not appropriate to copy work from a friend or classmate if you do not understand how to do it yourself. Doing so is a violation of academic integrity and will result in a zero for the assignment as well as a note in your record and a conversation with your parents. Please come talk to me if you are having trouble as it is MUCH better to admit that you don’t understand then it is to pretend you do.
One of the 6 main skills in the AP curriculum for this course is that you should be able to “contribute to an inclusive, safe, collaborative, and ethical computing culture.” Being able to collaborate with other programmers is also a key skill if you choose to continue your work in computer science. Most industries make use of pair programming in order to ensure that developers are able to work as efficiently and effectively as possible.
You will spend quite a bit of time in this class working with a partner to complete programming assignments. When you are pair programming, only one person should have their hands on the keyboard and should be typing code. The other person should be guiding them and explaining what needs to be done next. If you and your partner are not talking during pair programming then you are not working together.
You will be given class time to work with your partner. If you do not complete the work in class you are expected to meet with your partner outside of class to complete this work. You may choose to meet in person or virtually. Either way, it is important that you exchange contact information with your partner so that you can communicate outside of class.
If you and your partner are not able to complete your classwork and submit it during class time please make sure that you have access to the work before you leave the classroom. If your partner is absent during subsequent classes I will not be able to provide the work that you completed together. If your partner is the only one with access to the work and it is not completed on time you will be penalized for not submitting your work on time just as much as your partner is.
If your partner is absent during class time you are allowed to work on the assignment on your own. However, you are responsible for talking through your solution with your partner to the extent that they feel they could create the solution on their own as well.
When you submit work with a partner you are stating that the work was created jointly by yourself and your assigned partner. Submitting work that was not generated by yourself and your assigned partner is considered a violation of academic integrity. The following are examples of behavior that is not acceptable.
Unacceptable behavior | Why it is unacceptable |
Splitting up the work so that you do half of the problems and your partner does half of the problems. | Both you and your partner are now submitting work that you did not create. In addition, you now only know how to do half of the problems. |
Doing all of the work yourself without consulting your partner. | Your partner is now submitting work that they did not create. You have also sabotaged their ability to learn the material. |
Letting your partner do all of the work without contributing. | You are now submitting work that you did not create. You also do not know how to solve any of the problems and have not learned the material. |
Working with a classmate other than your assigned partner. | Both you and your partner are now submitting work that you did not create. You have lied about how you reached your solution. |
Copying code from a classmate (this may involve copying and pasting text, looking at a classmate’s solution, or a classmate verbally telling you the solution). | Both you and your partner are now submitting work that you did not create. You have lied about how you reached your solution. |
If you are absent for any reason you must fill out the class absence form which is linked on Canvas. The agenda for each class is posted on Canvas so you will know right away what work you have missed.
To maintain a focused and respectful learning environment, cell phones, smart watches, and other electronic devices will not be used during class time. As students enter the classroom, they will park their phones and smart watches in their assigned spaces in the back of the classroom. Students will also put their devices on Do Not Disturb mode to avoid sounds or vibrations from disrupting the class. These devices will not be accessed by students, including during bathroom breaks, without specific permission. Additional electronics, including headphones, will also not be used during class time.
The AP CS Principles course covers a broad range of topics. The primary goal of the course is to introduce students to a way of thinking about programs and problem solving using a series of small steps. To do this we will learn to design functions and larger programs that use sequencing, selection, and iteration.
This course prepares students for the AP Computer Science Principles exam in May. To that end there are some non-programming topics included as well such as how the internet works, efficiency of algorithms, and a brief introduction to cryptography.
To prepare for this class, students are asked to complete a short summer assignment which can be found here. The assignment asks students to (a) read the preface of the “How to Design Programs” textbook which explains why we are choosing to program in the Beginning Student Language, (b) download the software they need for the course, and (c) set up an organization system that can be used throughout the year.
None of these tasks should take very long. Students should be able to complete the assignment in under an hour. They may also choose to spend time playing with the programming language to see what they can create but this is an optional step.
Many students ask why we are using an obscure programming language that will not be used in the programming industry. This programming language is much smaller than a standard programming language. This means that there are a much smaller number of possible mistakes which means that error messages will be clearer in this language than in a larger language.
You are all students so we are using a student language. The AP exam is language agnostic which means that you should be able to apply the skills you learn in this course to any programming language, including this one.
If you feel that you are hampered by the syntax of this programming language, that is an indication that you are not able to think critically about your programs. The syntax of a language should never be the deciding factor in which language you use to build a program.
If you feel the need to ask me why we are using a student language, I will ask you to re-read the preface to the book “How to Design Programs” which succinctly explains why such a programming language is the right choice for students who are still learning to program.
My goal for you is that you learn the material that I am teaching in this course and that you become programmers who can both write clean, well-designed programs and read and interpret code created by other programmers. However, it is necessary for me to apply a number to this learning for the purposes of your academic transcript.
The grade you receive in this class is a reflection of your understanding of the course material. It is not a reflection of your intelligence, your capabilities, or your worth as a person. Your grade in this class will never affect what I think of you. I am aware that I am fighting a losing battle to try to convince you that your grade is not what matters, but I will keep fighting that battle anyway.
Since your grade is a numeric representation of your understanding I am not willing to change grades without you changing your understanding. If you are half a percent away from the grade you want, then you need half a percent more understanding. I do not round grades and I do not add points without seeing a change in your mastery of the content.
I know you just skipped literally all of that because you really only want to know how your grade is calculated so here is a table that shows you that information.
Category | Percentage | Approximately how many assignments per quarter? |
Warmups | 5% | 20-25 |
Classwork | 20% | 10-20 |
Assessments | 45% | 3-5 |
Cumulative | 30% | 1 |
There is no final exam for this class. Each quarter grade will be weighted equally (25%) to calculate your year grade in the course.
In spite of your best efforts it is not always possible to submit work on time. Since your grade is a measure of your understanding and not a measure of whether your life is currently going according to plan, I do my best to be lenient about this. Here is my policy:
The 7 days between an assignment’s due date and the closing of the assignment are meant to provide you with time should you have a class absence, an illness, or some other mitigating circumstance that did not allow you to submit work on time. Because of this I do not grant any further extensions on assignments past this 7 day time period.
If you submit your assignment before the due date I will do my best to grade it as soon as possible. This means that if you submit your work on time, you often have a chance to correct your mistakes and resubmit to improve your score. If you are choosing to use the time between the due date and the assignment closing as an extension you will not receive additional time to resubmit your work.
The 2024 AP Computer Science Principles exam consists of two parts: a 70 question multiple choice exam which takes 2 hours and a 4 question open response exam which takes 1 hour. The multiple choice section accounts for 70% of your AP score and the open response makes up the other 30% of your score.
Because the grading of the AP exam is scaled based on the performance of students that year there is no way to know with certainty what score you need in order to receive a 5. However, students in this class generally receive a 4 or a 5 on the exam if they have kept up with the course content throughout the year.
The open response portion of the AP exam will ask questions about a project you will submit to the CollegeBoard before your exam. This project is known as the “Create Task”. You will choose a project to work on and will have at least 9 hours of class time available to complete the project.
You can choose to work on the project with a partner or on your own. You may choose to spend time outside of class working on the project as well if you feel that the class time provided is not sufficient to complete the assignment.
We will complete a practice project in the third quarter and complete the actual Create Task in the fourth quarter. This means that by the time you submit your Create Task you should have a good understanding of what is expected of you.
The only way in which this project is graded is in your answers to the open response questions on the AP exam. Your actual program code is not graded but is used to help the graders understand your responses and determine whether you are correctly analyzing your code. You will be asked to submit a small portion of this code ahead of time as a reference sheet to help you answer the questions on the exam.
Topic | Exam Weight | |
Creative Development | 10-13% | |
|
| |
Data | 17-22% | |
|
| |
Algorithms and Programming | 30-35% | |
|
| |
Computer Systems and Networks | 11-15% | |
|
| |
Impact of Computing | 21-26% | |
|
| |