AP Computer Science Principals
This course is a survey in Computer Science where students master the basic elements of procedural coding while exploring a wide array of topics in the field of Computer Science. Students will also be introduced to the style of functional coding as they work with small and large datasets that they import from their GitHub or access live via API.
Topics include: Binary foundations of computing (counting, binary-decimal conversions, 8-bit color, bit maps and data compression techniques), Cybersecurity (Public and Private Key Encription, Cesear Cipher, Vigenere Cipher, tricks with metadata), Networking (how Internet routing is designed for redundancy and security, TCP/IP protocols, the concept of the Internet of Things (IoT)), Artificial Intelligence (APIs to access big data, facial recognition, ethics).
Programming and Data Access skills include: iteration (loops), simple and compound conditionals (ifs), variables and list processing, calling functions with parameters and return values, event driven programming design (handling clock tick events, get data/when I receive data), and functional programming design (map/keep).
Coding Environment: Students will complete projects from Berkley's Beauty and Joy of Computing Curriculum using the Snap! coding language as well as MIT's Mobile CSP Curriculum using AppInventor. Different projects will allow students to access the best features of each programming language to learn a broad set of skills efficiently. Snap! has a super step-through debugger and allows students to do the fastest testing of new concepts. AppInventor has a professional quality UI development space and incorporates more sophisticated event handling with clock.tick and when.data.changed events. Snap! provides an efficient way to learn about functional programming design strategies most often employed by data scientists.
What you will need: This is a college-level course. Students will need a personal email account for:
- The College Board - students will sign up here for the AP exam and get access to test prep videos and question banks. Creating a College Board account can be done in advance of the first day of school. Please do not sign up with a parent email account. You will need your College Board account for years - up through and including your graduate school admissions exams when you might be 30 years old! So use your own email account. When I receive it, our College Board class code will be posted in our Google Classroom.
- AppInventor and Snap! - students are welcome to use a school account to log into these coding spaces. However, use of a personal email account will allow students to maintain access to their coding projects after graduation, which many students find useful for college.
- GitHub - we will not be using GitHub for program version control, but because, unlike Google Drive, GitHub has no limit on live data calls. This makes for easy testing. It is not possible to use GitHub with a student account.