Key Information
About the content
Computing is a science. It’s an art, at least for those who practice it well, and it still retains much of its magic.
Part 1 of this course introduced the fundamental concepts, preparing you for the more advanced topics covered in this course!
Throughout this course, you will learn programming concepts and techniques, and practice them immediately through advanced browser-based tools that let you write programs, compile, run and test them against predefined test sets. You will see your results right away in your browser!
In this Part 2, we will discuss:
- A major programming technique, inheritance, including Multiple inheritance: combining complementary abstractions
- Selective exports for solid modular design of large systems
- Functional programming with agents: going one level of abstraction higher or more
- Concurrency: how to build applications that, so to speak, walk and chew gum at the same time
- Design patterns: how you can benefit from the best architectural practices of the industry, ironed out over many decades
- What makes a loop do its job right, with the notion of loop invariant
- Important practical examples: how to write an interactive application with undo-redo, and the example of topological sort
- Software engineering-- the construction not just of individual programs but also of complex, ambitious software systems
Join us in this computing and programming course to better understand the power and beauty of modern computer programming.
Prerequisite
“Computing: Art, Magic, Science” (CAMS 1), or equivalent familiarity with topics covered there
Syllabus
- Multiple inheritance
- Selective exports
- Functional programming with agents
- Concurrency
- Design patterns
- Loop invariants
- Examples: undo-redo, topological sort
- Introduction to software engineering
Instructors
Bertrand Meyer
Professor
Politecnico di Milano and Innopolis University
Marco Piccioni
Carlo A. Furia
Content Designer

Platform

Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with EdX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be taught by David J. Malan, a senior lecturer on computer science at Harvard University for the School of Engineering and Applied Sciences. But there's not just one professor - you have access to the entire teaching staff, allowing you to receive feedback on assignments straight from the experts. Pursue a Verified Certificate to document your achievements and use your coursework for job and school applications, promotions, and more. EdX also works with top universities to conduct research, allowing them to learn more about learning. Using their findings, edX is able to provide students with the best and most effective courses, constantly enhancing the student experience.