
Course Overview
Computer Science Principles is a two-semester course that helps 11th- and 12th-grade students understand computing systems beginning with how they work on the inside and how they communicate with each other through networks to create the internet. Students learn how to program Python, an open-source programming language. They will plan and write original programs both on their own and as part of a team. Programming includes making mistakes, so students will learn how to write test cases that thoroughly test their programs. They will also learn how to handle errors that users make.
In this course, students also study the impact of computer science on the world around them. They investigate the digital divide and measures that can be employed to address inequities. Students learn about security issues and how they can be addressed. In every lesson, students will complete computer-graded assessments. Each lesson also includes at least one video animation and an interactive activity. Each unit contains at least two projects that require students to do research or solve a problem, often by writing an original program. The course ends with a culminating project that will require students to create a computing artifact.
- Unit 1: Learn what happens inside a computer and how bits are used to make decisions.
- Unit 2: Explore how computers communicate with each other to build networks and the security issues involved.
- Unit 3: Begin with a deep look at how data is protected, collected, and analyzed, and then jump into programming.
- Unit 4: Explore how machine learning is changing the world and then extend your programming skills with control structures and modularity.
- Unit 5: Use data structures, lists, searching, and sorting to extend your programming skills.
- Unit 6: Study for and take the semester exam.
- Unit 7: Construct solutions using student-created functions, and identify intractable problems.
- Unit 8: Use the software development life cycle to create and test software.
- Unit 9: Explore different platforms, use test cases, and learn about collaboration.
- Unit 10: Write and use a variety of types of test cases and conduct code reviews.
- Unit 11: Explore the beneficial and harmful impact of computing innovations.
- Unit 12: Study for and take the semester exam.
- Unit 13: Study for and take the final exam.
Curriculum Content and Skills Focus
Unit 1: Computer Systems
- Describe the role of an operating system.
- Describe the role of memory.
- Describe how data are stored and retrieved.
- Describe how processes are authorized.
- Describe how multiple, concurrent processes are managed.
- Describe criteria for purchasing or upgrading computer system hardware (e.g., Wi-Fi, mobile devices, home and office machines).
- Describe common problems and their solutions.
- Describe the function of the CPU and RAM.
- Perform conversions between binary representation of numeric and nonnumeric data.
- Describe how a logic gate works.
- Differentiate between input, output, and I/O pins.
- Identify the output for given logic circuits.
- Draw a logic circuit with three inputs and at least five gates. Describe the output given all possible combinations of inputs.
Unit 2: Networks and the Internet
- Describe the physical parts of a network and how it functions.
- Describe how data are transmitted through a network.
- Describe the issues that impact network functionality (bandwidth and load).
- Describe issues that impact network functionality (topology, hardware).
- Identify security concerns.
- Identify solutions to security concerns.
- Describe recent examples of security attacks using scams.
- Identify practices that improve computer security and protect devices and information from unauthorized access using authentication strategies.
- Describe best practices that improve computer security and protect devices and information from unauthorized access using encryption.
- Describe threads of execution.
- Recommend a computer security policy.
Unit 3: Data and Analysis
- Describe ways personal data are collected from internet users.
- Describe security concerns and solutions related to cell phones.
- Describe security concerns and solutions related to vehicles.
- Interpret results of data tracking.
- Interpret visual representations of data.
- Describe data collection techniques.
- Describe common software used to analyze data.
- Compare data collection tools, giving examples of beneficial and dishonest uses of data tracking.
- Interpret mathematical expressions, including addition, subtraction, multiplication, real division, integer division, and modulus division.
- Interpret programs that manipulate numbers and strings.
- Interpret loops.
- Use flowcharts and pseudocode to plan and document a program.
- Use random and math functions (abs, square root, round).
- Implement an algorithm that analyzes data.
Unit 4: AI and Algorithms
- Describe artificial intelligence.
- Describe how AI is used in various types of software.
- Identify how AI is used to control physical systems.
- Interpret decision trees to create an AI algorithm.
- Describe characteristics of machine learning.
- Use simple boolean conditions to make decisions.
- Use compound boolean conditions to make decisions.
- Use a loop for searching.
- Interpret functions, both with and without parameters.
- Interpret sorting algorithms.
- Use control structures (loops and decision-making) and functions to solve a practical problem.
- Compare while loops to other control structures.
Unit 5: Variables and Control
- Interpret lists.
- Interpret multidimensional lists.
- Compare and contrast data structures.
- Describe algorithms used for searching.
- Describe how to sort and search a list.
- Compare scenarios to the type of data structure used.
- Describe recursion.
- Compare recursion to other methods.
- Describe intractable problems.
Unit 6: Semester 1 Review and Exam
- Study for and take the first semester exam.
Unit 7: Modularity
- Interpret user-defined data structures.
- Interpret applications of user-defined data structures.
- Use classes to create and manipulate objects.
- Compare two objects.
- Construct a solution to a problem using data structures, classes, and functions, working in a group.
- Identify characteristics of large-scale computational problems.
- Identify generalizable patterns in a large-scale computation problem that can be applied to a solution.
- Describe how to find solutions to large-scale computational problems.
- Describe how libraries can be used to solve programming problems.
- Use and interpret basic HTML.
- Describe how to use application programming interfaces (APIs).
Unit 8: Development and Security
- Describe the software development life cycle.
- Identify steps to implement the software development life cycle.
- Describe how to use the software development life cycle to make programs accessible to all.
- Identify how to test software.
- Identify types of bugs and techniques to resolve them.
- Describe the deployment stage of the software development life cycle.
- Describe security issues that arise when programming.
- Describe security threats to web-based programs.
- Describe solutions to programming security vulnerabilities.
- Describe how a program can implement precautions to avoid invalid data.
Unit 9: Platforms and Development Tools
- Compare and contrast multiple computing platforms.
- Describe techniques of web development.
- Describe techniques of mobile development.
- Describe issues when writing a single application used on multiple platforms.
- Develop a plan for a mobile app.
- Describe version control systems.
- Describe integrated development environments (IDEs).
- Describe collaborative tools.
- Describe best practices for collaborations.
- Describe problems that arise during collaborations.
- Plan, build, test, and refine a programming solution as a collaborative project, documenting versions.
Unit 10: Algorithms and Programming
- Identify test cases to verify a simple program functions correctly.
- Identify important test cases.
- Identify appropriate test cases.
- Determine whether a program is correct using test cases.
- Write a program that performs a calculation and then assigns the results to a category and then verify its correctness with test cases.
- Identify how to document modifications.
- Determine when a fix causes problems.
- Describe the code review process.
- Describe how steps of code review can be implemented.
- Compare multiple programming languages.
- Determine how different languages’ features make them suitable for solving different types of problems.
- Create a code review for another student’s mid-unit project.
Unit 11: Impacts of Computing
- Describe how computational artifacts can have beneficial effects.
- Describe how computational artifacts can have harmful effects.
- Describe ways to reduce the negative impact of a computational artifact.
- Identify how infrastructure and funding impact equitable access to computing resources for underrepresented groups (e.g., race, ethnicity, gender, geographic location, socioeconomic status).
- Identify how net neutrality and government regulations impact equitable access to computing resources for underrepresented groups (e.g., race, ethnicity, gender, geographic location, socioeconomic status).
- Describe how computational innovations have revolutionized aspects of our culture.
- Plan a program that will be used to meet the requirements of “Create Performance Task.”
- Describe the impact of computing on business and commerce (e.g., automated inventory processing, financial transactions, e-commerce, virtualization, and cloud computing).
- Describe privacy issues.
- Describe software laws and regulations.
- Describe how different types of software licenses (e.g., open source and proprietary licenses). can be used to share and protect intellectual property.
- Determine the reliability of digital resources.
- Describe methods used to avoid plagiarism.
- Research and analyze a computational source of bias, then propose refinements to reduce bias, increase equity, and support accessibility.
- Create a plan, write a program, test it, and present the project to an audience.
Unit 12: Semester 2 Review and Exam
- Study for and take the second semester exam.
Unit 13: Final Review and Exam
- Study for and take the final exam.
Additional Resources
The primary tool used in this course is Python 3.9. Python is open-source and free to use. You will be guided on how to download and install Python in the lesson, Your First Program. You will use Python for many lessons for several programming projects.
In addition to the default course content, some projects may require paper and pencil to complete the assignment. Some projects have options that require students to gather data using the internet. Other projects require students to draw diagrams. Students can either take a picture of the diagram or scan the diagram to submit the result. Students have options on how to develop their projects.
Most are submitted using a word-processing application such as Microsoft Word, Google Docs, or some other word-processing application. A few projects use presentation software such as Microsoft PowerPoint, Google Sheets, or other presentation software.
Unit | Assignment | Resources |
---|---|---|
All | General Requirement | Python 3.9 (free download) |
All | Projects |
|