CS Principles: Big Ideas
Computing is a creative human activity that engenders innovation and promotes exploration.
Abstraction reduces information and detail to focus on concepts relevant to understanding and solving problems.
Data and information facilitate the creation of knowledge.
Algorithms are tools for developing and expressing solutions to computational problems.
Programming is a creative process that produces computational artifacts.
Digital devices, systems, and the networks that interconnect them enable and foster computational approaches to solving problems.
Computing enables innovation in other fields including science, social science, humanities, arts, medicine, engineering, and business.
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 and computer science facilitate exploration and the creation of knowledge. This course will emphasize these creative aspects of computing. Students in this course will create interesting and relevant artifacts with the tools and techniques of computing and computer science.
Everyone uses abstraction on a daily basis to effectively cope with our world. 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 will include examples of abstractions used in modeling the world, in managing complexity, and in 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.
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, creating information. Computation and computer science facilitate and enable a new understanding of data and information that contributes knowledge to the world. Students in this course will work with data using a variety of tools and techniques to better understand the many ways in which data is transformed into information and knowledge.
Algorithms are fundamental to even the most basic everyday tasks. Algorithms realized in software have affected the world in profound and lasting ways. 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.
Programming and the creation of software have changed our lives. Programming results in the creation of software, but it facilitates the creation of more general computational artifacts including music, images, visualizations, and more. In this course programming will enable exploration as well as being the object of study. This course will introduce students to the concepts and techniques used in writing programs and to the ways in which programs are developed and used by people; the focus of the course is not programming per se, but on all aspects of computation. Students in this course will create programs, translating human intention into computational artifacts.
Digital devices and the Internet 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 systems and networks operate, to the principles that facilitate their design, and will analyze the effects of systems and networks on people and society.
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 the many ways in which computing enables innovation in other fields.

