Introduction To Computer Science Principles

From Computing Concepts
Jump to: navigation, search
Figure 1: An Abacus
This wikibook is designed for a course in Computer Science Principles that introduces you to the central ideas of computer science, instills ideas and practices of computational thinking, and has you engage in activities that show how computing changes the world.

Course Themes

Figure 2: A Babbage "Difference Engine"

The course has three key themes that help you build a solid understanding and facility with computing and computational thinking — understandings that are important, if not integral, to being part of a well-educated and informed citizenry.

The first theme of this course is its focus on creativity. The computational thinking practices and big ideas that follow hint at the creative nature of computing, yet alone they cannot truly convey the importance of creativity in this course. It’s not enough for you to know that “computing requires creativity.” Rather, you must actually be creative: creating artifacts that you want to show off to your friends and family, using simulation to explore questions that interest you, and designing and implementing solutions employing the iterative and sometimes messy process that artists, writers, computer scientists, and engineers use to translate ideas into tangible form.

Figure 3: Programming Language"
A second theme is the course’s use of technology as a means for solving computational problems and exploring creative endeavors, rather than a focus on a specific tool or programming language. To that end, the course highlights programming as one of the seven big ideas of computer science, because programming is among the creative processes that help transform ideas into reality. Programming is a tool you use to explore concepts and create exciting and personally relevant artifacts. Programming language specifics are taught only to the extent that you need them to produce your programs. Similarly, data, and the use of computational tools to analyze and study data, is another of the big ideas of computer science, as data plays an incredibly important role in so many aspects of our lives. You will work with large data sets — you will analyze, visualize, draw conclusions from trends— but the course itself does not specify particular computing tools or the use of specific programming languages for these explorations.
Figure 4: A Data Set

A third theme is the course’s focus on people and society, not just on machines and systems. In this course you will explore computer science’s relevance to and impact on the world today. You will investigate the innovations in other fields that computing has made possible. You will examine the ethical implications of new computing technologies. You will perform activities that develop your communication and collaboration skills. You will work to solve problems. You will talk and write about your solutions, the importance of these problems, and their impact on the world.

Course Big Ideas

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 (for example documents, spreadsheets, images, videos, programs) and new knowledge that help people solve personal, societal, and global problems. This course emphasizes these creative aspects of computing. You will use tools and techniques of computer science to create interesting and relevant artifacts with characteristics that are enhanced by computation.

Figure 5: A Graphical format
Figure 6: A Tabular format

Abstraction. The course helps you learn to create and apply 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 identifying, 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.

You 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 , tabular formats, and use snapshots of models and simulation outputs to understand how data is changing, identify patterns, and recognize abstractions (as shown in Figures 5 and 6).

Data and Its Analysis. This course will help you understand how 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. You will work with data using a variety of computational tools and techniques.

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: you will develop and express original algorithms, you will implement algorithms in some language, and you will analyze algorithms both analytically and empirically.

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 you to the concepts and techniques related to writing programs, developing software, and using software effectively; the focus of the course is not on programming per se, but on all aspects of computation. You will create programs, translating human intention into computational artifacts.

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. You will gain insight into how the Internet operates, study characteristics of the Internet and systems built upon it, and analyze important concerns such as cyber security.

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. Advances in computing foster many innovations in other fields. Computational approaches lead to new understandings, new discoveries, and new change across disciplines. You will become familiar with many ways in which computing enables innovation, and you will analyze the potential benefits and harmful effects of computing in a number of contexts.

In this course you will experience the joy and beauty that permeates computing: You will not only experience the sense of community from connecting with friends on social networks, but you will understand many aspects of the software and algorithms that make these social networks possible. You will not only use algorithms, but also create them and experience the “ah ha!” moment when an algorithm finally makes sense. You will not simply run programs; they will experience the thrill of constructing a program and seeing it work, as well as the pride of creating something for oneself, one’s family or friends, or for the world.

References

Parts of this page are based on information from: Wikipedia: The Free Encyclopedia