This Advanced Placement Computer Science Principles course is equivalent to a one semester, college level, introductory computer science course. The rigor of this course is consistent with colleges and universities and will prepare students for the Advanced Placement exam in May. Upon successful completion of the exam, students may receive college credit and will be well-prepared for advanced computer science coursework. Additional details on this course from College Board can be found here: AP Computer Science Principles.
In this course, students will explore the following big ideas:
(1) Creative Development: When developing computing innovations, developers can use a formal, iterative design process or a less rigid process of experimentation. While using either approach, developers will encounter phases of investigating and reflecting, designing, prototyping, and testing. Additionally, collaboration is an important tool at any phase of development, because considering multiple perspectives allows for improvement of innovations.
(2) Data: Data are central to computing innovations because they communicate initial conditions to programs and represent new knowledge. Computers consume data, transform data, and produce new data, allowing users to create new information or knowledge to solve problems through the interpretation of those data. Computers store data digitally, which means that the data must be manipulated in order to be presented in a useful way to the user.
(3) Algorithms and Programming: Programmers integrate algorithms and abstraction to create programs for creative purposes and to solve problems. Using multiple program statements in a specified order, making decisions, and repeating the same process multiple times are the building blocks of programs. Incorporating elements of abstraction—by breaking problems down into interacting pieces, each with their own purpose—makes writing complex programs easier. Programmers need to think algorithmically and use abstraction to define and interpret processes that are used in a program.
(4) Computing Systems and Networks: Computer systems and networks are used to transfer data. One of the largest and most commonly used networks is the Internet. Through a series of protocols, the Internet can be used to send and receive information and ideas throughout the world. Transferring and processing information can be slow when done on a single computer, but leveraging multiple computers to do the work at the same time can significantly shorten the time it takes to complete tasks or solve problems.
(5) Impact of Computing: Computers and computing have revolutionized our lives. To use computing safely and responsibly, we need to be aware of privacy, security, and ethical issues. As programmers, we need to understand the potential impacts of our programs and be responsible for the consequences. As computer users, we need to understand any potential beneficial or harmful effects and how to protect ourselves and our privacy when using a computer.
In this course, students will develop computational thinking skills vital for success across all disciplines, such as using computational tools to analyze and study data and working with large data sets to analyze, visualize, and draw conclusions from trends. Students will investigate how the Internet works and consider its impacts on politics, culture, and the economy. In addition, students will learn and mitigate the security risks of many computing innovations.
The course is unique in its focus on fostering student creativity. Students are encouraged to apply creative processes when developing computational artifacts and to think creatively while using computer software and other technology to explore questions that interest them. They will also develop effective communication skills, working to solve problems and writing about the importance of these problems and the impacts to their community, society, and the world.
This course incorporates a variety of textbook and multimedia resources as well as the Code.org. Students will spend approximately half of the course gaining programming knowledge and skills in the App Lab integrated development environment and will regularly debug and repair existing applications and design their own applications. Students will also engage in activities that develop computer science literacy and connect computer science principles to real-world applications and current events, in order to develop a deeper understanding of technology and its impact on society.
Students will be expected to enroll in My AP Classroom through their VHS Learning AP course and will be guided to complete review work in My AP Classroom throughout the course. My AP Classroom resources include AP Daily Videos.
Students enrolled in VHS Learning Advanced Placement courses with a passing grade are expected to take the AP Exam. Students register for AP exams through their local school or testing site as “Exam Only” students. AP exam scores will be reported to VHS Learning through My AP Classroom; exam results will not affect the student’s VHS Learning grade or future enrollment in VHS Learning courses.
About the Self-Paced Course Model
Self-Paced courses are comprehensive, self-paced courses designed for students who need or desire more flexibility in their academic schedule. VHS Learning teachers will regularly interact with students in asynchronous discussions, will host weekly office hours, and will invite students to monthly 1-on-1 progress meetings. Teachers will support students, answer questions, and provide feedback on work. Students will work independently on course activities; the course does not include class discussion assignments or other collaborative work.
Students may start this course on any Monday from September (after the American Labor Day holiday) through the first Monday in December. Students must maintain enrollment for a minimum of 20 weeks and have until mid-June to complete all assignments in the course. It is expected that students will work for approximately 330 hours to complete this course, though the amount of time may vary depending on a student’s work habits and comfort with the material.
Course Essential Questions:
- What are some strategies software developer teams use to design and maintain large and complex applications?
- How do we use large datasets to predict the outcome of future events to benefit society?
- How do we create apps to store and access data and what types of problems can be solved easily with a computer?
- How does the Internet function, even through power outages and storms?
- How can computing innovations affect society in beneficial and harmful ways?
Course Objectives:
- Design and evaluate computational solutions for a purpose.
- Develop and implement algorithms.
- Develop programs that incorporate abstractions.
- Evaluate and test algorithms and programs.
- Investigate computing innovations.
- Contribute to an inclusive, safe, collaborative, and ethical computing culture.
In addition to VHS Learning system requirements, students will need the following:
Students must create a code.org account to complete this course and will be directed to do so in Unit 1.