Java Programming
Principles of Software Design

share ›
‹ links

Below are the top discussions from Reddit that mention this online Coursera course from Duke University.

Offered by Duke University. Solve real world problems with Java using multiple classes. Learn how to create programming solutions that scale ... Enroll for free.

Reddsera may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Coursera. Thank you for using these buttons to support Reddsera.

Taught by
Robert Duvall
Lecturer
and 3 more instructors

Offered by
Duke University

Reddit Posts and Comments

0 posts • 4 mentions • top 4 shown below

r/WGU_CompSci • post
35 points • Aleriya
WGU CS Free Study Resources

I'm putting together a list of free resources for WGU CS students, especially for those looking to study ahead before starting the program. Please let me know if you'd recommend any resources to add to the list.

Calc 1

Discrete Math 1

Data Structures and Algorithms

Software 1-2 (Java)

Unofficial:

Computer Architecture

r/learnprogramming • comment
3 points • swutch

In my CS degree, the course that most matches what you are asking for was called "Software Engineering". I don't know how common that is, but looking on Coursera I found the following classes which match what I think you are looking for:

  • https://www.coursera.org/learn/software-processes
  • https://www.coursera.org/learn/java-programming-design-principles?specialization=java-programming

And of course there also some deeper abstract principles that apply here. I have heard wise people state that the central problem of Software Engineering is problem decomposition. Knowing how to break a big problem down into smaller chunks is fundamentally what it is all about.

r/UIUC • comment
1 points • 6prometheus7

It’s kinda hard to just learn without getting the feedback that you get by taking the course and going to code review. Basically what I learned from the class is that everything should be clear and easy to understand (if not it needs comments but you can’t over-comment either), all variables and methods need to be named completely appropriately, and all methods should be modularized and and only do one thing. Also only give user control or access to variables and methods that he will use otherwise you have to perform unit tests we used junit you can learn about that online. I found a link to a coursera course that looks kinda applicable if you want. https://www.coursera.org/learn/java-programming-design-principles. Also you can look at official github repositories for big projects to get an overiview although some of them don’t give af about design so you have to be careful

r/learnprogramming • comment
1 points • shhh-quiet

There are countless places online to learn about this. Probably numerous MOOCs that teach OOP and probably Java. Here is one possibility, I have no idea how it compares to others, that's just from a quick google search.

A few things I'd also highly recommend you spend some time wrestling with, after you learn some of the basics of Java:

SOLID principles (wiki (article)

Software design patterns (wiki) (java examples)

(Keep in mind that the design patterns should not be overzealously used. A lot of people go nuts trying to wedge them into every solution, as if they'll reach Nirvana if only they combine the right design patterns the right way. 80-20 rule comes to mind here, as well as using the right tool for the job, and KISS principle. Do what is most effective given what the problem actually demands. This doesn't mean take shortcuts on writing clean code, though.)