College: Princeton University
Certificate Price: No Certification
Length: 10 Weeks
Instructors: Robert Sedgewick, Kevin Wayne

Computer Science: Programming with a Purpose

The basis for education in the last millennium was “reading, writing, and arithmetic;” now it is reading, writing, and computing. Learning to program is an essential part of the education of every student, not just in the sciences and engineering, but in the arts, social sciences, and humanities, as well. Beyond direct applications, it is the first step in understanding the nature of computer science’s undeniable impact on the modern world. This course covers the first half of our book Computer Science: An Interdisciplinary Approach (the second half is covered in our Coursera course Computer Science: Algorithms, Theory, and Machines). Our intent is to teach programming to those who need or want to learn it, in a scientific context.

We begin by introducing basic programming elements such as variables, conditionals, loops, arrays, and I/O. Next, we turn to functions, introducing key concepts such as recursion, modular programming, and code reuse. Then, we present a modern introduction to object-oriented programming.

We use the Java programming language and teach basic skills for computational problem solving that are applicable in many modern computing environments. Proficiency in Java is a goal, but we focus on fundamental concepts in programming, not Java per se.

All the features of this course are available for free. It does not offer a certificate upon completion.

Similar Courses

Computing for Data Analysis

The modern data analysis pipeline involves collection, preprocessing, storage, analysis, and interactive visualization of data. The goal of this course, part of the Analytics: Essential Tools and Methods MicroMasters program,…

Computer Hardware and Operating Systems

This is a self-paced course that provides an Introduction to Computer Hardware and Operating Systems This course will cover topics including: Fundamentals of system hardware Introduction to OS concepts OS…
C Programming: Advanced Data Types

C Programming: Advanced Data Types

In this course, part of the C Programming with Linux Professional Certificate program, you will define your own data types in C, and use the newly created types to more…
Saving Schools

Saving Schools

This course seeks to answer the question: how did a school system, once the envy of the world, stumble so that the performance in math, science, and reading of U.S.…
The Quantum World

The Quantum World

Welcome to The Quantum World! This course is an introduction to quantum chemistry: the application of quantum theory to atoms, molecules, and materials. You’ll learn about wavefunctions, probability, special notations,…
China and Communism

China and Communism

How did the Communists conquer China? What role does culture play? What are the successes and failures of the Chinese Communist Party after seizing power in 1949? What constitutes liberation?…
Big Data and Education

Big Data and Education

Online and software-based learning tools have been used increasingly in education. This movement has resulted in an explosion of data, which can now be used to improve educational effectiveness and…
Lending

Lending, Crowdfunding, and Modern Investing

In this course, you’ll learn the foundational theories behind robo-advising, crowdfunding, and marketplace lending, and how to apply these theories to optimize your investments. Professor David Musto of the Wharton…