About this course
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.
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.
"Really good course. Followed it with a couple of experienced colleagues all of them having a computer science background. They really liked the concepts and programming in Eiffel a lot. Many thanks to the team making this course available! Can not wait to start with the advanced course!" --Previous CAMSx Participant
Previous edition course evaluation:
Overall course rating (1: worst grade, 6: best grade):
Grade Resp. %Resp
1 1 2%
2 0 2%
3 3 6%
4 9 18%
5 20 40%
6 17 34%
Total respondents: 50
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 particularly known for his books, which have exerted a profound influence on the evolution of programming, and for his introduction of the concepts of Design by Contract.
Marco Piccioni has been 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 focused on online education, and MOOCs in particular. Previously he worked for Sistemi Informativi S.p.A. (an IBM company) for ten years as a technical trainer and software developer. He has a Laurea degree in Mathematics from Università La Sapienza, Roma, and a Master degree in Economics from Università L. Bocconi, Milano.
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-active verification, behavioral interface specifications, automated testing, dynamic invariant inference, and user interface for verification. Nadia received an undergraduate and master's degree in applied mathematics and informatics at SPb SU ITMO (St. Petersburg, Russia) in 2008.
Nadia has received a Best Paper Award at FM'11, a Bronze Medal at the VSComp 2012 verification competition, and an ACM SIGSOFT Recognition of Services Award for the contribution as a Deputy General Chair of ESEC/FSE'13.