Summer Coding
The best way to stay safe from the sun's deadly rays of light


Welcome to AP Java

I'm Mr. Malafarina and I am looking forward to teaching you next year. This class is much more rigorous - but more rewarding - than AP CS Principles. In order to make sure we have a strong start, all students are asked to complete the following summer assignments. These will be assessed on the second day of class. If you have any questions about the work, please contact me at I won't respond immediately, but will check messages periodically throughout the summer.


Before October...

For the first part of class, you won't need any special materials, but I wanted to give you a heads up about what you'll be using for the majority of next year.

After October...

  • You are required to have a working flash drive that you can bring to class every day

    • It can be small. For most students, 8 GB is more than enough.

    • It should be fast, since you will be actively running programs off it.

  • It is highly recommended you have access to a computer at home or a personal laptop.

    • None of our software will work on the school issued Chromebook you receive next year

    • I strongly encourage you to use a PC rather than a Mac for coding at home

    • If you do not have access to a computer at home, you'll need to do all your programming in class.



The Coder's Handbook is a set of programming guides written by Mr. M to help you learn Java. At the start of the year, you'll have to complete a multiple choice quiz to assess how well you understand the concepts covered in the first few guides. (Note: Quizzes in my class do not have redos, so please study carefully.)

A lot of these concepts are review, but for many of you the syntax will be new.

Each handbook entry includes links to video tutorials. These are not required, but can provide a lot of reinforcement and extension on concepts, especially if you find them unfamiliar or challenging. Use your own judgement about how you learn the material.

Required Reading



Codingbat is a great resource for practicing your Java syntax and problem solving skills. We'll be doing a few assignments using this website. Over the summer, you'll need to complete a few practice problems and link your account.


  • Crate an account using a personal email address (not your BCPS account).

  • Always make sure you are logged in before completing problems. The website allows you to do problems anonymously, but then you won't get any credit for them.


Solutions are available for the problems in the Warm-up-1 problem set . Try not to use them too much, but they're there to get you started. Some problems in other sets provide hints.

You are permitted to do problems in any order, but I recommended you go from left to right, then top to bottom within a page (or simply click next after a problem). In general the problems are organized to help you progress smoothly, and get harder as you move through them.


You'll need to complete a total of thirty codingbat problems and have them tied to your account by the first day of class. You're required to do at least 10 problems from each of the following categories, but it's your choice which ones you complete.

Throughout the course, additional problems will be assigned. Typically, this includes problems from the Array-1, Array-2, Recursion-1, and AP-1 categories. At the end of the year, extra credit is awarded for additional codingbats completed beyond the assigned work, so feel free to go wild on these.



  • Replit is an online development environment that we will use for he first two units of the course. This will allow you to complete assignments and submit your work online.

  • Once we start doing graphics, we'll switch to using a program called Eclipse and a graphics library called Slick2D.


  • Create an account using a personal email address (not your BCPS account).

  • You'll join the classroom. To access the join link, make sure you are logged into your BCPS account and click on the link found in on this slide.

  • When asked, please provide your First and Last Name.

  • Once you've joined the class, you can simply access it through Replit.

Project #0 - Hello

  • This isn't graded, and is just there for you to use to get comfortable with writing code in Java. Play around in here!

Project #1 - Friend


The Real Way To Learn...

  • While this summer work will get you a jump start on the school year, the most important thing you can do is work on a project for fun - in any language!

  • Pick a language you're fairly comfortable with and try to build something. Make sure it's something you think is COOL and INTERESTING. It can be a little bit hard, but try not to be too ambitious. Give yourself room to grow, but make it easy enough that you can also play around.