The main thing I want you to do over the summer is relax. Recharge your energy reserves. Go on the family vacation, read books for pleasure, watch a few movies, play some fun video games, or have a few all-nighters playing those RPGs. Whatever you find fun, truly fun, do that. The things you have to put off until you get a four-day weekend, the summer is your time.
Read through this website.
Otherwise, relax and have fun. Do the things you don't have time to do during the school year.
Python Tutorial at W3Schools, or another intro programming course. Python is generally thought of as "easier to pick up on your own" than is Java. The students who came into APCSA already knowing the beginnings of Python (algorithm, for loop, while loop, boolean decisions if, elif, else, and basic lists) had very few problems with the Java course material.
Java Tutorial at W3Schools. Some people think if they are going to take a course covering Java, they should prep with Java. This makes sense on one hand, but on the other hand, if you get frustrated with self-taught Java, I don't want you to quit the course. Learning Java with humans in the room has given plenty of students with little to no experience programming a strong and successful experience. Everyone who does the work during the year, as assigned, has earned a final grade of an A or B. Earning a C, D, or F in the Java course means you did not try or gave up trying. APCSA is also weighted, so keep that in mind.
APCSP - This class assumes you have no coding experience, but you will be in class with students who have learned at least the beginning of at least one computer language. If you are looking to "catch up," "prepare," or "get ahead" for this course because you have never programmed before, then I recommend you take an online Python course such as the one found on W3Schools. If you have a little basic programming under your belt, I would read these articles linked below:
How to Make a Flowchart for Programming Easy to Understand Teaching Strategies / By Christa Love / December 9, 2020. I actually use this article in my Intro to Flowcharting and Pseudocode units very early on in every course I teach.
Seriously consider Touch Typing tutorial. If you learn to touch-type the letters alone, you can increase your confidence on the keyboard. Even if you decide programming isn't your thing, touch-typing is a transferable skill.
If you are being brave taking this computer science course, and you want an early bonus score (100 out of 100) in the project category, you can complete the Retro 80s Video Games from a Game Developer's Perspective Presentation. You will turn it in your first Friday of school. If you need an additional bonus because you are struggling first semester, we can arrange for you to present it, ONLY if you turned in the presentation your first Friday of enrolling in the course.
Estimated time to complete 5 hours over the summer. 2 minute presentation in the first two weeks of school.
This Summer Assignment has 2 parts - (1) research 80s games, compare and contrast from a developer's perspective, (2) create a slide presentation imagining yourself as a game developer, and (3) Possibly, only if needed, present your slide show live infront of the class for an additional bonus at the 13-week mark. You are only eligible for this second bonus point opportunity if you have completed the presentation by the first Friday of the semester.
Part 1
Research, Evaluate, and Describe: Find online and play, or watch a video of the game play. Try your grandparents, a friend's, searching for 1980s or retro video games on computers or consoles. Some can be played on smartphones or your computer. Google "retro 80's style video/arcade games."
You might only be able to find videos of these games being played. If you can, spend some time trying to play some of these games online. Be mindful of your time, because these "simple" games from the 80's can be quite addicting.
You are evaluating these games from the perspective of a player first. Then look again to see the games from a researcher, a game designer.
You may count PacMan/Ms.PacMan as game variants, thus one game. You may count Snake/Worm (1972) & Centipede (1981) & Tron (1982) as variants of the same game, thus it is essentially one game.
You Need to Pick and Evaluate 3 video games from this list:
Look for these titles: Pong (1972), Breakout (1976), Space Invaders (1978), Asteroids (1979), Missle Command (1980), PacMan (1980), Frogger (1981), Donkey Kong (1981), Ms. PacMan (1982), Q*Bert(1982), Galega (1982), Pole Position (1982), Snake/Worm (1972) & Centipede (1981) & Tron (1982), Castle Adventure gameplay (PC Game, 1984), The Oregon Trail (1985) (video), Kings Quest I (1984) (walkthrough of gameplay), Tetris (1990), Minesweeper, Super Mario Bros. (1983-1985), Sim City (1989), Generally, stop at the 1989 Game Boy games. With a few modern exceptions: Chrome Dino Run, Angry Birds (2009) and Candy Crush (for the game design concept, not the graphics and modern sounds).
Part 2
Create a slide show presentation that you will present in front of the class:
The Title Slide of your presentation should have the 3 game's Names (year it was released), 3 images (an image of the game board and a character), your name, the class APCSP, and the date.
You'll need apic of the main game board, or the first few levels, or a representative image of the gameplay for each of your three games. What repeats for each level and what changes?
Explain any commonalities you noticed among the three games.
You figure out how best to present your information. You need to discuss 3 to 4 of these games. Compare and Contrast the gameplay, controls, board or worlds, and include any varients.
Slides should include a pic of the main character/protagonist/player, the enemies/baddies/antagonist/traps, good things and bad things.
Note the simplicity or the complexity of the things in #4.
Note the inclusion or lack of a story.
Notice the written instructions compared to intuitive controls, building up of skill levels or increasing demands on the player.
Notice scoring, health, lives.
Include a description of the type of game - research these if you don't know what they are - board game, platformer, space shooter, driving, maze, farmer, collector, builder, etc.
On your last slide, explain a few overall things, from these three games, that you might explore about game design by looking back at these 80s retro games.
Part 3
The summer assignment is due the first Friday of the first week of class and counts as a bonus grade. The live presentation of your presentation project (1-2 minutes) CAN count as an additional 100/100 project/test grade if you need it and if you turned in your presentation project by the first Friday you are in class.
Take a CodeAcademy's "Programming Personality Quiz" and read about four broad types of programming jobs that are out there in the IT world. None are better than any other, but all work together in industry to create products and systems for clients and users.
What if I just REALLY want to work on something over the summer?
For my students who are the "worriers"; or for the students who think, "I must get ahead;" or for my students whose parents are making them prepare for their AP courses; or for my students who really do not have any ideas about what to do for fun this summer; or for my students who are unable to leave their houses because you are watching all of the little kids - I hear you. Here are some rabbit holes.
Here are some OPTIONAL things you can Google and go down the rabbit hole. They all will help you get started on those rabbit holes of deep exploration on a topic that is not 100% the content we are studying this fall and spring, but, they are interesting in their own way, and will help you have a different perspective on computer programming:
article: Why so many computer languages?
article: Why is block-based coding OK for MIT's Intro to Computer Science and VEX robotics?
Touch Typing - the skill I can master over the summer that will help me the most in computer language classes. If you type slower than 35 WPM, this is where to spend your time this summer.
Article Explaining the Benefits of Touch Typing. "Touch Typing for Kids: An Essential 21st Century Skill by Saga Briggs. January 7th, 2020". This is an academic (college-level read) article, "... to be a professional coder you have to be able to keep your eyes on the screen—so you’ve got to be able to type using muscle memory.”
Free touch typing resources: Typing Club is Ms. Miller's favorite typing program. It's free and online. If you (1) say out loud or under your breath and (2) put a small hand towel over your hands and really "feel" the fingers on the F and J keys with every key, then you will be touch typing with about 30 minutes of work a day. Once you reach 35 words per minute using real words, not the letter-only lessons, then you've reached the "good enough" stage of typing. If you are already, typing 30 words per minute, consider doing the course again and seeing how fast you can get including the symbol keys (shift+number keys, and the right-hand pinky keys). Typing Club has a few cheesy videos, but, as an adult, I've redone the course several times while teaching my students and worked myself up to 75 WPM.
I'm in APCSP or CSP next year. What can I do to familiarize myself, explore, and learn about the Create Performance Task? First, the CPT has a rubric. Learn the rubric. Live the rubric!!! Visit the AP CPT site for examples of projects that earned a 6 score down to a 1 score.
Column 1 is Create – It has sample videos, and then the student's sample written responses. The list is projects scoring from a 6 down to a 1 score.
Column 2 is the Scoring Guidelines (Rubric) for each of the categories (rows). This PDF lists what earns the credit, and what specifically prevents credit from being earned. It's binary. You get 1 point or 0 points for each row.
Column 3 is "Commentary" from an amalgamation of several graders on why each specific example scored a point for the category or why they did not. The "did not" is enlightening reading as much as the "earned" answers are. Read through all of the examples answers and commentary. Make yourself a little chart and figure out what is earning that point and what is not earning that point.
The CPT can be done in block-based programming or text-based programming. I teach the course using a variety of languages. Some are text-based Python, others are block. I also use hardware and text or block. There's even music -- Ear-Sketch is great for my music-inclined students. Here's the learn Ear-Sketch Pages. For my retro games students, you may prefer Microsoft MakeCode Arcade. Microsoft MakeCode Arcade looks deceptively simple.
Many students who come in already knowing how to text-based languages may think Microsoft MakeCode Arcade or other block-based code is beneath them. They are usually wrong. Block-based options these days are quite complex and can do many things that text-based can accomplish.
The CPT is NOT a creative endeavor. It has a specific rubric and you are supposed to meet that rubric. All other programming that goes beyond the rubric, will only hurt you. The graders for the CPT are not interested in you showing off your skills. This is one of the reasons I disagree with giving too many rubrics, because they are minimums. There will be plenty of opportunities for you to show off and be creative, but the CPT is not one of those places.
The CPT is NOT supposed to be a recreation of game that will make you money, or that is necessarily fun to play. You are asked to show specific things, in any number of ways, and be able to explain it, show it, and why you used it. Just including a list and stating that you used that list to manage complexity, and then failing to actually use the list to manage complexity, adds nothing to your score. Some of my best coders showed they were not programmers. Coders can hash out syntactically correct code, but they miss the overall purpose and fail to meet the customer's requirements and expectations. Programmers are coders who can also understand the overall purpose of the task and meet the customer's requirements and expectations. Because the client/audience is the AP test graders, you as the programmer must meet their specific things. They ask for specific things. If you make a pretty program or a fun game, but fail to include something required, or can't explain the parts, or why you used certain control structures, then your client (AP Graders) is not going to pay you in points like you want them to do.
Why are entrepreneurial skills important in computer science?
How can I leverage my math and science skills with computer programming?
What jobs are there that are NOT computer programming but still in IT,
What does IT / Internet Technology, Computer Science, and all these terms mean?
What is the Agile? What are the Scrum Methodologies? Why are we learning them in a computer science course?
What is the software development lifecycle and why is it important to understand and use it?
What is the Computer Science Honors Society?
Why Join the CTSO called TSA or Technology Student Association?
Joining TSA, especially as an officer gives you more than your 4.5GPA and 1500+ on the SAT. Everyone applying to the top schools has that, therefore that level of academic achievement is not enough to be competitive for the top schools like GaTech. That becomes the minimum necessary but it is not sufficient. What is? You have to stand out with things that are recognized as more, adjacent, adding value to the campus or world. Some kids join every club they can, but do nothing in those clubs. CTSOs are Career Tech Service Organizations and they are co-curricular. The adults feel that these are more than extracurricular clubs, so much more that we teachers spend time IN CLASS, so they are called co-curricular and there is an extra, outside of school time component as well. State TSA Competition winners have an item on their resume that demonstrates more than just showing up to class and passively earning a grade. There is so much more demanded of students in the TSA activities, and college admissions officers know that. Whether the activity you choose to engage in is service as an officer, competition, multiple competitions, teamwork, robotics, or other STEM competition. VEX Robotics has many additional opportunities.
The Technology Student Association (TSA) is a national organization for middle and high school students interested in STEM (Science, Technology, Engineering, and Mathematics) fields. It provides students with opportunities for skill development, leadership, and community involvement. TSA's goal is to inspire students to pursue careers in a technology-driven economy.
Here's why students and teachers should consider joining TSA:
STEM Focus: TSA provides students with the opportunity to explore various STEM fields through competitions, projects, and activities.
Leadership Development: TSA offers leadership opportunities within chapters, at local, regional, and national levels.
Skill Development: Students can develop their technical skills, communication skills, and teamwork skills.
Networking: TSA provides opportunities to network with other students, teachers, and industry professionals.
Community Service: TSA encourages students to engage in community service projects.
Recognition and Awards: TSA recognizes student achievements through scholarships, awards, and honor societies.
Fun and Engagement: TSA offers a variety of fun and engaging activities that make learning enjoyable.
TSA is a valuable resource for students and teachers interested in fostering STEM skills, leadership, and a love for technology.