Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

The University of British Columbia

How to Code: Complex Data

The University of British Columbia via edX


As your program requirements get more complex, you will find that simple additions to the design method make it easy to write well-structured and well-tested code that is easy to maintain.

By learning how to capture common data and control structures using abstraction, your programs will get shorter and better tested.

Building on the core methods from How to Code: Simple Data, this programming course, part of the Software Development MicroMasters program, quickly expands to cover more complex programs on more complex data. Towards the end of the course, you will design programs that even experienced developers would find challenging.

You will also learn how to design search programs. You will design a program to solve Sudoku puzzles, and will be able to design many other puzzle solvers as well.

Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructor and staff.

Learner Testimonial

"It's a great course and maybe one of the most important topics to master if you're a programmer (any level). This course will teach you how to design better, cleaner and faster programs."
- Previous Student

Taught by

Gregor Kiczales


5.0 rating, based on 4 Class Central reviews

Start your review of How to Code: Complex Data

  • Profile image for Estefania Cass.
    Estefania Cass.
    This course is really extraordinary! I totally recommend both courses in the How to code series. I learned concepts that were completely new to me, and that will sure be very important for my career. You will work with functional programming langu…
  • Great having this course content here because it gives a vast experience in the iT industry mainly in machine learning department. And prepares you for the machine learning algorithms
  • Profile image for Christian Paez
    Christian Paez
    The theoretical concepts explained in the course are going to be very useful regardless of what kind of software you want to do, the purpose of the course is to teach how to write efficient and professional code, something that I have not seen in other courses I have taken in python, JS, etc. Highly Recommended.
  • Profile image for Clifford Isimoya
    Clifford Isimoya
    Learning programming or coding was a course I desired to engage myself in and, I am glad to have found it so easy through Class Central. The simplicity and flow is second to none.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.