Overview of Curriculum Framework
The CS Principles framework was developed using a backward design technique, where the focus is on the higher level big ideas, then the lower level learning objectives needed to understand those big ideas. It also addresses assessment (i.e. how will teachers know if students have met the learning objectives) in order to drive unit and lesson development. It is based on the work of Grant Wiggins and Jay McTighe in Understanding by Design. The following video may help your understanding of backward design.
For information about the CS Principles Framework and Course Assessments, please review the Course details as provided by the College Board. Further details about the Big ideas and Computational Thinking Practices of the CS Principles framework are provided below. Each of these will be explored and reflected upon in more depth as they arise in the Mobile CSP lessons.
Big Idea 1: Creativity
Computing is a creative activity. Creativity and computing are prominent forces in innovation; the innovations enabled by computing have had and will continue to have far-reaching impact. At the same time, computing facilitates exploration and the creation of computational artifacts and new knowledge that help people solve personal, societal, and global problems. This course emphasizes these creative aspects of computing. Students in this course will use tools and techniques of computer science to create interesting and relevant artifacts with characteristics that are enhanced by computation.
- How can a creative development process affect the creation of computational artifacts?
- How can computing and the use of computational tools foster creative expression?
- How can computing extend traditional forms of human expression and experience?
Big Idea 2: Abstraction
Abstraction reduces information and detail to facilitate focus on relevant concepts. Everyone uses abstraction on a daily basis to effectively manage complexity. In computer science, abstraction is a central problem-solving technique. It is a process, a strategy, and the result of reducing detail to focus on concepts relevant to understanding and solving problems. This course includes examples of abstractions used in modeling the world, managing complexity, and communicating with people as well as with machines. Students in this course will learn to work with multiple levels of abstraction while engaging with computational problems and systems, use models and simulations that simplify complex topics in graphical, textual, and tabular formats, and use snapshots of models and simulation outputs to understand how data is changing, identify patterns, and recognize abstractions.
- How are vastly different kinds of data, physical phenomena, and mathematical concepts represented on a computer?
- How does abstraction help us in writing programs, creating computational artifacts and solving problems?
- How can computational models and simulations help generate new understanding and knowledge?
Big Idea 3: Data and Information
Data and information facilitate the creation of knowledge. Computing enables and empowers new methods of information processing that have led to monumental change across disciplines, from art to business to science. Managing and interpreting an overwhelming amount of raw data is part of the foundation of our information society and economy. People use computers and computation to translate, process, and visualize raw data, and create information. Computation and computer science facilitate and enable a new understanding of data and information that contributes knowledge to the world. Students in the course will work with data using a variety of computational tools and techniques to better understand the many ways in which data is transformed into information and knowledge.
- How can computation be employed to help people process data and information to gain insight and knowledge?
- How can computation be employed to facilitate exploration and discovery when working with data?
- What considerations and trade-offs arise in the computational manipulation of data?
- What opportunities do large data sets provide for solving problems and creating knowledge?
Big Idea 4: Algorithms
Algorithms are used to develop and express solutions to computational problems. Algorithms are fundamental to even the most basic everyday tasks. Algorithms realized in software have affected the world in profound and lasting ways. Secure data transmission and quick access to large amounts of relevant information are made possible through the implementation of algorithms. The development, use, and analysis of algorithms is one of the most fundamental aspects of computing. Students in this course will work with algorithms in many ways: they will develop and express original algorithms, they will implement algorithms in some language, and they will analyze algorithms both analytically and empirically.
- How are algorithms implemented and executed on computers and computational devices?
- Why are some languages better than others when used to implement algorithms?
- What kinds of problems are easy, what kinds are difficult, and what kinds are impossible to solve algorithmically?
- How are algorithms evaluated?
Big Idea 5: Programming
Programming enables problem solving, human expression, and creation of knowledge. Programming and the creation of software have changed our lives. Programming results in the creation of software, and it facilitates the creation of computational artifacts including music, images, visualizations, and more. In this course, programming will enable exploration and is the object of study. This course will introduce students to the concepts and techniques related to writing programs, translating human intention into computational artifacts.
- How are programs developed to help people, organizations, or society solve problems?
- How are programs used for creative expression, to satisfy personal curiosity, or to create new knowledge?
- How do computer programs implement algorithms?
- How does abstraction make the development of computer programs possible?
- How do people develop and test computer programs?
- Which mathematical and logical concepts are fundamental to computer programming?
Big Idea 6: The Internet
The Internet pervades modern computing. The Internet and the systems built on it have had a profound impact on society. Computer networks support communication and collaboration. The principles of systems and networks that helped enable the Internet are also critical in the implementation of computational solutions. Students in this course will gain insight into how the Internet operates, study characteristics of the Internet and systems built upon it, and analyze important concerns such as cybersecurity.
- What is the Internet, how is it built, and how does it function?
- What aspects of the Internet's design and development have helped it scale and flourish?
- How is cybersecurity impacting the ever increasing number of Internet users?
Big Idea 7: Global Impact
Computing has global impacts. Computation has changed the way people think, work, live, and play. Our methods for communicating, collaborating, problem solving, and doing business have changed and are changing due to innovations enabled by computing. Many innovations in other fields are fostered by advances in computing. Computational approaches lead to new understandings, new discoveries, and new disciplines. Students in this course will become familiar with many ways in which computing enables innovation, and they will analyze the potential benefits and harmful effects of computing in a number of contexts.
- How does computing enhance communication, interaction, and cognition?
- How does computing enable innovation?
- What are some potential beneficial and harmful effects of computing?
- How do economic, social, and cultural contexts influence innovation and the use of computing?
Computational Thinking Practice 1: Connecting Computing
Developments in computing have far-reaching effects on society and have led to significant innovaations. The developments have implications for individuals, society, commercial markets, and innovation. Students in this course study these effects, and they learn how to draw connections between different computing concepts. Students are expected to:
- Identify impacts of computing.
- Describe connections between people and computing.
- Explain connections between computing concepts.
Computational Thinking Practice 2: Creating Computational Artifacts
Computing is a creative discipline in which creation takes many forms, such as remixing digital music, generating animations, developing websites, and writing programs. Students in this course engage in the creative aspects of computing by designing and developing interesting computational artifacts as well as by applying computing techniques to creatively solve problems. Students are expected to:
- Create a computational artifact with a practical, personal, or societal intent.
- Select appropriate techniques to develop a computational artifact.
- Use appropriate algorithmic and information management principles.
Computational Thinking Practice 3: Abstracting
Computational thinking requires understanding and applying abstraction at multiple levels, such as privacy in social networking applications, logic gates and bits, and the human genome project. Students in this course use abstraction to develop models and simulations of natural and artificial phenomena, use them to make predictions about the world, and analyze their efficacy and validity. Students are expected to:
- Explain how data, information, or knowledge is represented for computational use.
- Explain how abstractions are used in computation or modeling.
- Identify abstractions.
- Describe modeling in a computational context.
Computational Thinking Practice 4: Analyzing Problems and Artifacts
The results and artifacts of computation and the computational techniques and strategies that generate them can be understood intrinsically both for what they are as well as for whay they produce. They can also be analyzed and evaluated by applying aesthetic, mathematical, pragmatic, or other criteria. Students in this course design and produce solutions, models, and artifacts, and they evaluate and analyze their own computational work as well as the computational work others have produced. Students are expected to:
- Evaluate a proposed solution to a problem.
- Locate and correct errors.
- Explain how an artifact functions.
- Justify appropriateness and correctness of a solution, model, or artifact.
Computational Thinking Practice 5: Communicating
Students in this course describe computation and the impact of technology and computation, explain and justify the design and appropriateness of their computational choices, and analyze and describe computational artifacts and the results or behaviors of such artifacts. Communication includes both written and oral descriptions supported by graphs, visualizations, and computational analysis. Students are expected to:
- Explain the meaning of a result in context.
- Describe computation with accurate and precise language, notations, or visualizations.
- Summarize the purpose of a computational artifact.
Computational Thinking Practice 6: Collaborating
Innovation can occur when people work together or independently. People working collaboratively can often achieve more than individuals working alone. Learning to collaborate effectively includes drawing on diverse perspectives, skills, and the backgrounds of peers to address complex and open-ended problems. Students in this collaborate on a number of activities, including the investigation of questions using data sets and the production of computational artifacts. Students are expected to:
- Collaborate with another student in solving a computational problem.
- Collaborate with another student in producing an artifact.
- Share the workload by providing individual contributions to an overall collaborative effort.
- Foster a constructive, collaborative climate by resolving conflicts and facilitating the contributions of a partner or a team member.
- Exchange knowledge and feedback with a partner or team member.
- Review and revise their work as needed to create a high-quality artifact.