Latest Courses
ISTQB Artificial Intelligence Tester Sample ExamsCheck course
JAVA Programming Online Practice ExamCheck course
Programming for Kids and Beginners: Learn to Code in PythonCheck course
Practice Exams | Codeigniter 4 developer certificationCheck course
WordPress Practice Tests & Interview Questions (Basic/Adv)Check course
Git &Github Practice Tests & Interview Questions (Basic/Adv)Check course
Machine Learning and Deep Learning for Interviews & ResearchCheck course
Laravel | Build Pizza E-commerce WebsiteCheck course
101 - F5 CERTIFICATION EXAMCheck course
Master Python by Practicing 100 QuestionCheck course
ISTQB Artificial Intelligence Tester Sample ExamsCheck course
JAVA Programming Online Practice ExamCheck course
Programming for Kids and Beginners: Learn to Code in PythonCheck course
Practice Exams | Codeigniter 4 developer certificationCheck course
WordPress Practice Tests & Interview Questions (Basic/Adv)Check course
How to Code: Simple Data

How to Code: Simple Data


Add your review
Add to wishlistAdded to wishlistRemoved from wishlist 1
Add to compare
8.3/10 (Our Score)
Product is rated as #114 in category Programming

This programming course takes a unique approach, as it focuses on learning a systematic programming method rather than a programming language. This practical approach will help you channel your creativity so that you can program well in any language. This course, part of the Software Development MicroMasters Program, presents a core design method with a focus on numbers, strings, images and lists. You will learn techniques to: Develop program requirements Produce programs with consistent structure that are easy to modify later Make your programs more reliable by building tests as an integral part of the programming process. This course concludes with the design of a simple interactive game. 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 “I have taken and completed tens of MOOCs on programming and computer science, I have even been and I am currently a TA in some of these courses. Among them are a few that deserve without hesitation the highest rate. But if I had to choose only one at the top of them it would be these two courses on systematic program design.” – edX Learner

Instructor Details

Gregor is Professor of Computer Science at the University of British Columbia and a Fellow of the Association of Computing Machinery. His career long research goal, continued in this course, is to enable programmers to write programs that, as much as possible, look like their design.

Specification: How to Code: Simple Data


17.5 hours









10 reviews for How to Code: Simple Data

3.7 out of 5
Write a review
Show all Most Helpful Highest Rating Lowest Rating
  1. Anonymous

    It’s a weird way to go about introducing well know design concepts like TDD, Design patterns, separation of concerns. Professor come up with different names for all those well know concepts and talks about them in a way like he just discover them. There is got to be a better course on program design.

    Helpful(0) Unhelpful(0)You have already voted this
  2. Marco

    Best course on program design. It is based on How To Design Programs by Mathias Felleisen.

    It uses a functional paradignem and the Racket language to teach you how to design your programs around your data.

    Helpful(0) Unhelpful(0)You have already voted this
  3. Robert Ndungu

    This is the first programming MOOC I have ever taken. Prior to taking it, I had attempted to read programming books with the intention of learning how code. It didn’t take long before I realized that I hated reading books about programming. Not because the books I read were uninformative (though there are plenty that I could nominate as morbidly boring) but rather they lack the type of interaction to be found in a MOOC; which as a beginner is crucial because when you get stuck you need help from your peers.

    The main lesson to take away from this course certainly has to be systems thinking which is emphasized throughout by the professor. As I build up my programming experience with each day that passes, I am slowly beginning to appreciate the massive advantages it offers. Whenever I wrote a program that didn’t do what was required, more often than not it was because of adopting “verbal reasoning” as I punched in the code. As soon as I started asking myself the “why” and “what” certain pieces of code in the program were doing, I quickly found where I’d veered off course.

    As a beginner, I did this course slower than most (just over a month) but I believe the extra time I spent on it will certainly pay dividends in the future. To sum up, I rate this MOOC very highly and look forward to completing SPD2 and SPD3.

    Helpful(0) Unhelpful(0)You have already voted this
  4. Anonymous

    Great course for learning program design. A gentle introduction to thinking functionally. This course is highly recommended. It has now been updated and is part of the MicroMasters in Software Development on edX.

    Helpful(0) Unhelpful(0)You have already voted this
  5. Estefania Cass.

    This is an extraordinary course that I totally recommend taking for everyone looking to learn how to code!!!

    You will start by learning BSL, the functional programming language used in the course. I promise you that learning BSL will be great, and that the simplicity of the language will soon prove itself to be very useful at the end of this course and in the next course in the series. How to code: Complex data. This is a functional programming language.

    You will learn how to follow certain steps to breakdown a problem that may seem be very complex at first but that after you follow theses steps will become a natural extension of your coding process.

    You will learn about recursion, functions, parameters, conditionals, type comments, templates, types of data and how data determines the structure of your code and how analyzing data in your problem determines how your program will look, Binary search trees and so much more.

    As a verified student, you can have the great experience of participating in live sessions with Professor Kiczales and with Miss Erika who will answer all your questions LIVE!

    At the end of the course, there is a final project where you will “Create your own game!” yes, that’s right. You will be making a full arcade type game all by yourself and you will see that by implementing what you’ve learned in the course, it will be so much easier than you initially thought.

    Trust me, this course is worth it, and if you wish to continue the Micromasters it will be the foundation for your next courses. I am currently on How to Code: Complex Data and this course was the foundation for the next course with is more complex and where you will lean so many interesting elements of programming.

    Helpful(0) Unhelpful(0)You have already voted this
  6. Chris Dziewa

    Interesting course that has taken much of the guess work out of working with data and designing functions. It teaches a systematic approach for programming with an emphasis on letting the data build the function as well as test driven development.

    This course was different than any I have previously taken. It uses Beginning Student Language which can feel tedious at times, but there is value in this choice. The course was very well organized. There were only a couple topics that could’ve used more explanation, though this is probably why the course was split into two (taking the second now).

    I am glad to have taken this course and only wish that I would’ve had this available 5 years ago when I started programming because it creates good habits from the beginning. If, like me, you have been programming on your own for a while but feel you could be better, I highly recommend this course. Just remember not to overthink recursion, trust it!

    Helpful(0) Unhelpful(0)You have already voted this
  7. Kochegarova Elena

    Perfect course for people who really want to start coding from the very beginning. This course helps you convert tough problems to very small yet functional and easy readable pieces of code with obvious structure. It focuses on the structure of the data that should be represented by a program which helps to maintain the same structure in functions. Design recipes allow you to break a problem apart and not to overthink before you start coding. Those algorithms are perfect for figuring out what should be the next step when you are still working on the current one. Data definitions, data driven templates for functions, tests of each small function are what make you solve really difficult problems without feeling stressed about stupid mistakes.

    Helpful(0) Unhelpful(0)You have already voted this
  8. Christian Paez

    The course offers very good information on designing simple programs in general, it is taught in Racket, a very simple programming language with easy syntax, this means that it does not take a long time to understand syntax to begin coding, instructor Gregor Kickzales does a great job teaching this course

    Helpful(0) Unhelpful(0)You have already voted this
  9. Anonymous

    This class teaches really basic concepts at a very slow pace. If you have ever written a function before, I would suggest taking something a bit more advanced. I believe the professor’s choice to use a custom language and IDE is ultimately doing a disservice to the students, as the syntax is bizarre and ultimately hard to apply to any reasonable language.

    Helpful(0) Unhelpful(0)You have already voted this
  10. Luis Galicia

    A very well organized, pleasing, and useful course. You will use Racket, a functional programming language. The course teaches a good deal of test oriented programming and some basic design principles. The exercises are very rewarding. I thoroughly recommend taking this course and the one that follows, HtC: Complex Data.

    Helpful(0) Unhelpful(0)You have already voted this

    Add a review

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Price tracking

    Java Code Geeks
    Register New Account
    Compare items
    • Total (0)