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 every student's education, not just in the sciences and engineering but in the arts, social sciences, and humanities. 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). We intend to teach programming to those who need or want to learn it in a scientific context.

We introduce 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 computational problem-solving skills applicable to many modern computing environments. Proficiency in Java is a goal, but we focus on fundamental concepts in programming, not Java per se. 

Course Status

In Session

What Learners Say

"This course is taught by an excellent professor, Robert Sedgewick from Princeton University. The learning curve is steep but that's totally worth it. The course introduces you to programming in Java in a succinct manner. The concepts learnt are applicable across many other programming languages. The modules are presented in a practical manner so that the learner isn't burdened with the material all at once. All in all, an excellent course and it is totally worth taking it."