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 tau...
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.
This course, part of the Software Development MicroMasters program, will dig deep into the principles of object oriented design, and introduce new abstraction techniques and design patterns. You will use these techniques to build an application that makes use of popular online services and APIs – the most complex software design project so far.
By the end of the course, you will have a solid foundation in Java and Object-Oriented Design, as well as many software development concepts that can be applied to any language.
Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.
Instructors
Instructors:
Gail Murphy, Elisa Baniassad
University
University:
University of British Columbia
Instructors
Instructors:
Gail Murphy, Elisa Baniassad
University
University:
University of British Columbia
Reviews8/10 stars
17 Reviews for Software Construction: Object-Oriented Design
Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.
Compared to the How to Code courses (HtC1x and HtC2x) and Software Construction: Data Abstraction (SoftConst1x), this course felt not as tightly-knit as the prerequisites.
The learning curve is definitely steeper than SoftConst1x and, in my opinion, comparable to HtC2x, but I personally don't think the same level of rigorousness in teaching complex concepts that is demonstrated in HtC2x is maintained in SoftConst2x (even though it's a different course and a different instructor).
The final project is probably the most disappointing part of the course—in my case, I spent more time learning the Java language and utilities, setting things up, and trying to get around outdated, insecure download links than practising the concepts that was taught throughout the course.
In any case, and criticisms aside, I still think this course does teach some useful OOP concepts and does an okay job in introducing design patterns using practic...
Compared to the How to Code courses (HtC1x and HtC2x) and Software Construction: Data Abstraction (SoftConst1x), this course felt not as tightly-knit as the prerequisites.
The learning curve is definitely steeper than SoftConst1x and, in my opinion, comparable to HtC2x, but I personally don't think the same level of rigorousness in teaching complex concepts that is demonstrated in HtC2x is maintained in SoftConst2x (even though it's a different course and a different instructor).
The final project is probably the most disappointing part of the course—in my case, I spent more time learning the Java language and utilities, setting things up, and trying to get around outdated, insecure download links than practising the concepts that was taught throughout the course.
In any case, and criticisms aside, I still think this course does teach some useful OOP concepts and does an okay job in introducing design patterns using practical examples and code (much better than Software Engineering: Introduction). It's just not as much fun and clear as the prerequisites for the reasons stated above.
Great follow up of previous courses. As you should expect learning curve increases but it's great! I hope I will learn even more on following courses.
Also jumping from DrRacket to Java was very nice surprise for me (as I haven't checked details about the whole program before I've started) :)
This course gives basic understanding of code design in Java .But I think Observer pattern , Composite pattern should be explained more rigorously . The final project is ok for practicing but i was expecting this to be similar to CS50x Web Programming course on EdX . This course can be made more rigorous and engaging like CS50X . I strongly recommend reading Head First Design Pattern book before taking this course .
The course content is very informative and nicely presented with many useful samples and codes.
I would like to attend much more advanced courses on the object oriented design with much more real life samples.
The first two HTC courses were great and were worth the time and effort. This course and the previous (Data Abstraction) are nice for a brief introduction to the topics in each model, but there are much better resources/courses out there (ex: Head First Design Patterns). I would say the course is definitely worth breezing through, but I would not recommend paying for the course.
Very good introduction into the deeper aspects of Software Development for anyone planning a career in the field. The first two were okay in terms of quickly developing the mental stance of thinking computationally but this course bridges the gap between theory and practice by using one of the most popular languages to demonstrate solutions to conceivably real live situations
I liked this course, but it wasn't as rigorous as I wish it was. At first I didn't like How to Code (the earlier course in the series), but that turned out to be one of my favorite classes. I wish this class had some of the same rigor as that course. Overall the class was great and gave me a good intro to OO.
Here's my review that I gave directly in EdX:
I thought the patterns portion was the most interesting and I felt like I learned the most from that. I like how it extends HtC toward OOD and helps me digest larger programs. While it was a difficult section, I'd love more practice in it. I felt like I engrained HtC design patterns more into my brain through repetition. It would help to have both more challenging Design Pattern practice problems, and just more of them. I think have a lot of patterns ingrained in my head will make me a much better programmer, both in designing, improving, and understanding programs.
I thou...
I liked this course, but it wasn't as rigorous as I wish it was. At first I didn't like How to Code (the earlier course in the series), but that turned out to be one of my favorite classes. I wish this class had some of the same rigor as that course. Overall the class was great and gave me a good intro to OO.
Here's my review that I gave directly in EdX:
I thought the patterns portion was the most interesting and I felt like I learned the most from that. I like how it extends HtC toward OOD and helps me digest larger programs. While it was a difficult section, I'd love more practice in it. I felt like I engrained HtC design patterns more into my brain through repetition. It would help to have both more challenging Design Pattern practice problems, and just more of them. I think have a lot of patterns ingrained in my head will make me a much better programmer, both in designing, improving, and understanding programs.
I thought the part about exceptions and assertions was the most difficult. It wasn't too hard to get through the module and practice problems, but I just don't feel confident that I'll know how to use them on my own projects.
I think the lectures and the practice problems help the most in understanding the material. The long form problems are helpful, too, but sometimes it seems like it makes the practice problems too easy. It would be nice to have the long form, but then have different levels of difficulty for practice problems.
I plan to use these skills in general when designing. I didn't have any OO language experience before this, so I just feel more confident building and reading through programs that are OO.
In the future, I hope to get a strong grasp on patterns, both in breadth and depth.
Join our mailing list for course updates, discounts and more.
Enter your email address here.
student
10/10 starsCompleted
1 year, 8 months ago
The content was good especially the focus on practical system design and object oriented approach towards the software. Examples and practice projects were very helpful in developing a full understanding of the concepts and different kinds of scenarios they can be applied. Instructor also did a good job in highlighting the common practices and common problems faced during the OOP and OOD design.
This course was okay. Introduction to design patterns was nice, but the content is a bit outdated and there was no testing of any diagramming done. The final project seemed easy compared to some of the homework, and the setup was out-of-date.
Great course for beginners!! Instructor were great. Principles and patterns are very important and there are very few courses which helps student learn and implement them.
Great course for any software developer who is new to object-oriented programming or doesn't know how to get about designing a large software program. I have a few years of experience in programming and I was looking for a course with a little in-depth knowledge about the topics in the course. But still, I found it easy to understand and follow along with the lectures and practice problems.
Explained Object Oriented design with example. Its great for beginners starting to learn coding as well as experienced professional to learn design principles.
i have completed 2/3 of this micromaster and looking for continuing it all. as we get from Functional programming languages like Dr Racket moving to Java (imperative language) and building on what we learnt on the first 2 courses to make the micro master so cohesion and coherence in its content.
This was tough to get through after the two How to Code classes, which left you feeling bulletproof when it came time to tackle the final project. Throughout the course several questions cover items not addressed in any lectures, and large chunks of the implementation involved in the final project were also not covered. Luckily, I was able to complete it but no thanks to the lectures.
The edX`s "Software Construction: Object-Oriented Design" course has bad explanation of material, Lots of unexplained code and silly questions where only random may help you.
This is an excellent beginning for Object Oriented Design. The content of the modules are so well structured that it is worthwhile to extend the subjects through more personal studies for someone who is really interested. Congratulations!
This course builds on UBC's previous MOOC titled "Software Construction: Data Abstraction" as part of their Software Development MicroMasters. If you complete them both successfully you will be in a good position to start a career in software development.
Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.