Read through this entire website. It is 3 huge pages. If you landed here via Google Search, look at the HOME page for the 10 Things Summer Assignment. This is the optional assignments and you are not eligible for this assignment unless you complete the 10 Things Summer Assignment.
For the Extra Credit APCSP Assignment, you may use AI - artificial intelligence per the College Board's AI Policy for APCSPrinciples. Read up and have fun.
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.
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.
The CPT can be done in block-based programming or text-based programming. I teach the course using a variety of languages including text-based Python. You can, on your own, use hardware and text or block. There are a lot of options... 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. You can use Arduino, Raspberry Pi's if you like IoT. You can use VEX V5 if you enjoy robots. Talk to Ms. Miller about your ideas but remember the Create Performance Task does not reward "Creativity."
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.