How to Code
Complex Data
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
What you'll learn
- How to identify commonalities in data definitions and functions
- How to avoid repetition using abstraction
- How to design functions that operate on graphs
- How to design programs that search a given problem space to find a valid solution
Get a Reminder
Rating | 4.8★ based on 5 ratings |
---|---|
Length | 6 weeks |
Effort | 6 weeks, 2–3 hours per week |
Starts | On Demand (Start anytime) |
Cost | $125 |
From | University of British Columbia, UBCx via edX |
Instructor | Gregor Kiczales |
Download Videos | On all desktop and mobile devices |
Language | English |
Subjects | Programming |
Tags | Computer Science |
Get a Reminder
Similar Courses
What people are saying
automatic marking rather than
The course would really benefit from automatic marking rather than self-assessment.
brings an engineering discipline
This brings an engineering discipline and mindset to software development.
handle complex data structures
This course really helped me with how to handle complex data structures and their functions.
more difficult assignment came
The material is presented in a logical progression with excellent pacing and just enough repetition so that when a more difficult assignment came up I was surprised to find that I had the tools!
logical progression with excellent
totally recommend both courses
I totally recommend both courses in the How to code series.
really benefit from automatic
enough repetition so
instructor speaks well
The instructor speaks well and the content holds students' attention.
highly recommended
Highly Recommended.
it builds
It builds you up by going step by step through the course, therefore by the end of the course it is quite a surprise that you can do what you learned.
artistry out
The method takes all the guesswork and artistry out of it (which is a good thing).
Careers
An overview of related careers and their average salaries in the US. Bars indicate income percentile.
Requirements Specialist $58k
Data Requirements Analyst $69k
Revenue Requirements Analyst $71k
Business Requirements Analyst 1 $81k
System Requirements Engineer $92k
Requirements Analyst 3 $94k
Technology Requirements Analyst $99k
IT Requirements Analyst $100k
Requirements Management $116k
Test Requirements Engineer $117k
Legal Requirements Attorney $124k
Software Requirements , Program Management Lead $130k
Write a review
Your opinion matters. Tell us what you think.
Please login to leave a review
Rating | 4.8★ based on 5 ratings |
---|---|
Length | 6 weeks |
Effort | 6 weeks, 2–3 hours per week |
Starts | On Demand (Start anytime) |
Cost | $125 |
From | University of British Columbia, UBCx via edX |
Instructor | Gregor Kiczales |
Download Videos | On all desktop and mobile devices |
Language | English |
Subjects | Programming |
Tags | Computer Science |
Similar Courses
Sorted by relevance
Like this course?
Here's what to do next:
- Save this course for later
- Get more details from the course provider
- Enroll in this course