CS for Non-Majors

The following courses have no prerequisites and can be taken in any order
(except the 111/112 sequence)

CS 101: Introduction to Computing

Computers are taken for granted in today’s society, but most users have no knowledge of how computers work. CS 101 helps students gain a deeper appreciation of the capabilities and limitations of computing. Questions addressed include: What is a computer? How does computation happen? How is information represented within a digital computer? What is computer programming? What are algorithms, how do we measure their efficiency, and why does this matter? Why does a computer have an operating system, and what does it do? What is the Internet, and how does it work? How do applications like Google and Facebook perform their magic? For more information, please refer to the CS 101 information page.

CS 103: Introduction to Internet Technologies and Web Programming

CS 103 invites students to engage with the Web in order to gain an understanding of what it is, how to use it, and how to contribute to it. Students learn to view the Web and the underlying Internet architecture as instances of the mathematical abstraction of a network. They learn how modern Web technologies like search exploit fundamental aspects of networks, and they thereby become more effective users of these technologies. Finally, students become active contributors to the Web by learning the basics of Web programming and by creating a full-blown original website as an independent semester-long project. For more information, please refer to the CS 103 information page.

CS 105: Introduction to Databases and Data Mining

Databases are everywhere. Retailers use data about customers and purchases to increase profits. Researchers analyze genomic data to find treatments for diseases. Online music and video services use data mining to deliver customized recommendations. How does all this work? CS 105 examines how data is organized, analyzed, and displayed. Topics include relational databases and the SQL query language, the writing of programs to analyze data, the principles of data visualization, and data-mining techniques for discovering patterns in data. At the end of the course, students apply the topics they have learned to a collection of data that interests them. For more information, please refer to the CS 105 information page.

CS 107: Computational Systems

What is computing, exactly? What does it mean “to compute”? The answers to these questions open up intriguing connections between cells, brains, and computers. CS 107 explores a “computational” view of the world—looking at natural systems as examples of information processing devices. The course is centered on the idea that computation is a general phenomenon that occurs in many places and settings: in electronics, DNA, and neurons. This allows us to see the common thread of computing that runs through evolution, molecular biology, personal computers, behavior, and psychology. For more information, please refer to the CS 107 information page.

CS 108: Introduction to Applications Programming

As a society, we have become dependent on computer applications in our personal and professional lives—from email programs and database software to the programs that drive the websites where we shop online. But what is computer software, and how is it developed? CS 108 is an introduction to object-oriented and procedural programming that covers the fundamental constructs and patterns present in all programming languages, with a focus on developing applications for users. While learning to program, students also develop problem-solving skills and ways of thinking that can be applied to a variety of disciplines. (Cannot be taken for credit in addition to CAS CS 111.) For more information, please refer to the CS 108 information page

CS 109: The Art and Science of Quantitative Reasoning

Buying music online, making phone calls, predicting the weather, or controlling disease outbreaks would be impossible without mathematics, statistics, and computer science. This class, offered jointly with mathematics & statistics, focuses on methods of reasoning common to these disciplines, and how they enable the modern world. For more information, please refer to the CS 109 information page.

CS 111: Introduction to Computer Science I

The first course for computer science majors and anyone seeking a rigorous introduction. Develops computational problem-solving skills by programming in the Python language, and exposes students to variety of other topics from computer science and its applications. Carries MCS divisional credit in CAS. For more information, please refer to the CS 111 information page.

CS 112: Introduction to Computer Science II

Prereq: CAS CS 111 or equivalent. Covers advanced programming techniques and data structures. Topics include recursion, algorithm analysis, linked lists, stacks, queues, trees, graphs, tables, searching, and sorting. For more information, please refer to the CS 112 information page.