Software Construction in Java

Provided by:
8/10 stars
based on  2 reviews
Provided by:
Cost FREE
Start Date On demand

Course Details

Cost

FREE

Upcoming Schedule

  • On demand

Course Provider

edX online courses
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.

Provider Subject Specialization
Sciences & Technology
Business & Management
23866 reviews

Course Description

This computer science course is the first of a two-course sequence about writing good software using modern software engineering techniques.

In this course, you will learn what software engineers mean by "good" code -- safe from bugs, easy to understand, and ready for change. You will also learn ways to make your code better, including testing, specifications, code review, exceptions, immutability, abstract data types, and interfaces.

This is a challenging and rigorous course that will help you take the next step on your way to becoming a skilled software engineer.

Photo by Wizou on Flickr. (CC BY) 2.0

Reviews 8/10 stars
2 Reviews for Software Construction in Java

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

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.

Sort By
Mirza Ibrahimovic profile image
Mirza Ibrahimovic profile image
8/10 starsCompleted
  • 12 reviews
  • 11 completed
3 years, 8 months ago
According to the professor, the goal of the course is to learn to write code that is: Safe from bugs Easy to understand Ready for change By those standards, I would say he does a good job with some caveats. The good: The content generally is of very high quality. The professor presents the material both in video and written form. Presentation is clear and logically structured. Quizzes that accompany lectures are not great but decent, more on that later. The 3 problem sets get progressively more challenging at an appropriate pace. They are innovative in that they require the student to write comprehensive tests. Not only is the student judged on code written and problem solving abilities, but also how well they write tests. Great idea and decent execution. Java Tutor, which allows you to quickly learn the fundamentals of java by solving small problems in the code-editor was again innovative and decently done. The ... According to the professor, the goal of the course is to learn to write code that is: Safe from bugs Easy to understand Ready for change By those standards, I would say he does a good job with some caveats. The good: The content generally is of very high quality. The professor presents the material both in video and written form. Presentation is clear and logically structured. Quizzes that accompany lectures are not great but decent, more on that later. The 3 problem sets get progressively more challenging at an appropriate pace. They are innovative in that they require the student to write comprehensive tests. Not only is the student judged on code written and problem solving abilities, but also how well they write tests. Great idea and decent execution. Java Tutor, which allows you to quickly learn the fundamentals of java by solving small problems in the code-editor was again innovative and decently done. The bad: My biggest complaint is the quantity of programming exercises. There simply is not enough to practice the concepts. In my opinion, the biggest crime in technical courses is a lack of exercises. They are crucial to understand concepts and to make them "stick". For the quizzes I would have liked them to be both more numerous and challenging. For the problem sets, a few more would be nice. Grading for the problem sets, which constitute 45% of the final grade are polarizing. You either get full score or nothing at all. This is silly as it means someone who figuratively fails at the finish line receives nothing for their efforts. Binary scores are fine for smaller exercises, but not for problem sets which require many days of work and count for a large part of the final grade. The conclusion: Great content and presentation. Great course overall, but insufficient amount of exercises prevents it from being excellent.
Was this review helpful? Yes0
 Flag
Steven Frank profile image
Steven Frank profile image
10/10 starsCompleted
  • 59 reviews
  • 57 completed
3 years, 8 months ago
Eat your peas! That's the message of this introduction to good programming practice and hygiene, which includes writing specifications, avoiding bugs, designing and running test suites, and creating abstract data types. The course focuses on the Java programming language, which formalizes and exposes these elements to the programmer to a much greater degree than, say, Python. So while this course will teach you Java if you're new to it, think of it as a course in programming principles rather than programming. That means the coding assignments focus on anticipating edge cases and what can go wrong rather than cool functionality, but again, it's about eating your peas. The course materials include 12 "readings" or textbook-like chapters, three programming assignments, and a final exam. Each reading is broken into segments with exercises between them. The final exam draws heavily from these exercises and is not difficult. You'l... Eat your peas! That's the message of this introduction to good programming practice and hygiene, which includes writing specifications, avoiding bugs, designing and running test suites, and creating abstract data types. The course focuses on the Java programming language, which formalizes and exposes these elements to the programmer to a much greater degree than, say, Python. So while this course will teach you Java if you're new to it, think of it as a course in programming principles rather than programming. That means the coding assignments focus on anticipating edge cases and what can go wrong rather than cool functionality, but again, it's about eating your peas. The course materials include 12 "readings" or textbook-like chapters, three programming assignments, and a final exam. Each reading is broken into segments with exercises between them. The final exam draws heavily from these exercises and is not difficult. You'll notice I haven't said anything about lectures. There are video lectures, but in these, Prof. Miller essentially reads the readings -- and since the readings are quite well-written, I suspect not too many students watch the lectures. That's too bad -- the course can sometimes feel more like a great self-study resource than a class, but there's no question that the material is both important and well-presented. Some of the topics dip generously into computer-science theory, but with the practical goal of avoiding traps and achieving efficient coding. 6.005.1 covers the first half of the one-semester residential 6.005 course, spreading it over 12 weeks -- much more time than is necessary, so you'll likely find yourself idle now and then. Overall, another great Course 6 offering from MIT.
Was this review helpful? Yes0
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

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.