Computer Science
Learn the basics of Information Technology and how to write quality programs in this introductory computer science course. This self-study course is not actively moderated. You can view the course for free, but questions will not be answered and there is no guarantee that the content will be available or updated.

Course Details

Language English
Duration 7 weeks
Effort 5-10 hrs /week
Description

Information Technology (IT) is everywhere. Every aspect of human activity depends on it. All IT processes, whether they drive mobile phones, the Internet, transportation systems, enterprise systems, publishing, social networks or any other application, rely on software.


In this new and improved version of the course, you will learn to write software with a progressive hint system for first time programmers. The core skill is programming; not just the ability to piece together a few “lines of code,” but writing quality programs, which will do their job right, and meet the evolving needs of their users. Anyone can write a program; this course teaches you to write good programs.


The course starts from the basics of computing and takes you through a tour of modern object-oriented programming, including classes, objects, control structures, inheritance, polymorphism, and genericity.


Throughout the course, you will have the opportunity to learn the principles of programming as well as the techniques for designing correct and reliable programs by using the Eiffel programming language and notation. You will be trying out example problems to provide your solution, and see it immediately compiled and tested from within your browser. To this end, we are using the Codeboard;web-based IDE, developed at the Chair of Software Engineering (ETH Zurich).


Beyond programming, you will also get a glimpse at theoretical computer science, the set of mathematical techniques that underlie computation and makes today’s IT-based world possible.


In this third edition of the course we specifically focus on helping students with little or no programming experience. To this end, we have improved the introductory material about the Eiffel language, and we have implemented a progressive hint system students can use to get guidance on how to solve the programming exercises.

Prerequisites

none

Course instructors

Bertrand Meyer

Bertrand Meyer, formerly from ETH Zurich, is a professor at Politecnico di Milano and Innopolis University, and Chief Architect at Eiffel Software. He is an authority in software engineering, programming languages and object-oriented programming. He is pa…

Marco Piccioni

Marco Piccioni is a postdoctoral researcher at the Chair of Software Engineering, ETH Zurich. After having received a Ph.D. from ETH for his work on API usability, persistence, and object-oriented class schema evolution, his research interests are now foc…

Nadia Polikarpova

Nadia Polikarpova earned her PhD at ETH Zurich (Switzerland) in April 2014. Her research interests lie in the area of software correctness, at the intersection of formal methods and software engineering. In particular, her research has contributed to auto…

ETH Zurich

Freedom and individual responsibility, entrepreneurial spirit and open-mindedness: ETH Zurich stands on a bedrock of true Swiss values. Our university for science and technology dates back to the year 1855, when the founders of modern-day Switzerland crea…

58 instructors