Comments (14)
Quick note, you refer to Fundamentals 2 has CS 2500 throughout the op. CS 2500 is actually Fundamentals 1. CS 2510 is the course you mean.
Some notes on CS3500 vs CS5004:
CS3500 | CS5004 |
---|---|
For undergrads who have taken CS2500, which is a HtDP course like How to Code, CS2510, a course that teaches Java from the perspective of someone who only knows Racket Student Langugage | For masters students from a non-CS background who have taken CS5001, a course I'm not very familiar with beyond it using Python and being from Northeastern, a school that likes HtDP |
Assumes knowledge of Java, starts from later and thus goes further. If this were from a textbook, this is the second half | Assumes you only know Python and starts with teaching Java. If this were a textbook, I think it'd be a selection of chapters and sections from throughout |
Very good lecture notes. Many students in person learn from them rather than lecture because lecture often doesn't add much | lecture notes are adapted from CS2510 and CS3500, both of which have great lecture notes |
I have taken this course | Has course charter available that says what in CS2013 it covers! https://www.khoury.northeastern.edu/cs5004-object-oriented-design-course-charter/ |
from computer-science.
Thank you for addressing this. I am struggling with the current Object Oriented Design and Design Patterns courses. I will try the alt courses you mentioned and come back for feedback, hoping that would help. 😊
from computer-science.
I think it's a good idea to replace Object Oriented Design, Design Patterns (and maybe Software Architecture). I did OOD and I'm currently doing DP, and I can confirm that the courses are not very good.
from computer-science.
It also has full lectures and assignments.
Does it have lecture videos? I can't seem to find them. The lecture notes are good, though.
from computer-science.
Should I try CS5004 or NEU CS2500 Fundamentals II: Intro to Class-based Program Design and NEU CS3500 Object Oriented Design? Please let me know
from computer-science.
Should I try CS5004 or NEU CS2500 Fundamentals II: Intro to Class-based Program Design and NEU CS3500 Object Oriented Design? Please let me know
Well, I may not be able to give you a straight answer. It depends; I believe the CS2510 and CS3500 combo is the better alternative. The transition from PLC to CS2510 feels really gentle (kinda similar to the transition from HtC: Complex Data to PLA) as it begins by translating data definitions in Racket to Java; it feels like a continuation of those courses. And in this option, we replace two courses with another two so the net amount of courses remains the same. Also, based on @Alaharon123's comment, this approach should leave you better prepared (as taking CS3500 is like "the second half of a textbook," and I imagine CS2510 should be like the first half of that textbook)
CS5004 should also be easy to pick up as it is meant for students with a non-cs background, but I'm worried as to how in-depth the course covers the topics. Also, I took a look at some lectures from CS5004, and while they're clearly based on lectures from 2510 and 3500 the fact that some examples (HtC-like examples) are given in Python feels less natural than seeing them in Racket (I think using Racket instead allow us to compare the fp vs oop approaches); although this last point is really not a big deal, the examples are simple enough to follow (it's just that I find easier to think about design recipes in Racket and then translating them to java, as opposed to seeing them in Python first).
So, for now, and until more people do these courses, the main difference between the two paths would be depth and length. If you want to go more in-depth and have the time to do two courses, do CS2510 and then CS3500; otherwise, take CS5004; I don't think you would miss some vital piece of information anyway.
For me, the 3500 route makes more sense (although I might end up taking all three courses just to be able to compare them), but again you should do what you think will work best for you.
from computer-science.
Should I try CS5004 or NEU CS2500 Fundamentals II: Intro to Class-based Program Design and NEU CS3500 Object Oriented Design? Please let me know
Well, I may not be able to give you a straight answer. It depends; I believe the CS2510 and CS3500 combo is the better alternative. The transition from PLC to CS2510 feels really gentle (kinda similar to the transition from HtC: Complex Data to PLA) as it begins by translating data definitions in Racket to Java; it feels like a continuation of those courses. And in this option, we replace two courses with another two so the net amount of courses remains the same. Also, based on @Alaharon123's comment, this approach should leave you better prepared (as taking CS3500 is like "the second half of a textbook," and I imagine CS2510 should be like the first half of that textbook)
CS5004 should also be easy to pick up as it is meant for students with a non-cs background, but I'm worried as to how in-depth the course covers the topics. Also, I took a look at some lectures from CS5004, and while they're clearly based on lectures from 2510 and 3500 the fact that some examples (HtC-like examples) are given in Python feels less natural than seeing them in Racket (I think using Racket instead allow us to compare the fp vs oop approaches); although this last point is really not a big deal, the examples are simple enough to follow (it's just that I find easier to think about design recipes in Racket and then translating them to java, as opposed to seeing them in Python first).
So, for now, and until more people do these courses, the main difference between the two paths would be depth and length. If you want to go more in-depth and have the time to do two courses, do CS2510 and then CS3500; otherwise, take CS5004; I don't think you would miss some vital piece of information anyway.
For me, the 3500 route makes more sense (although I might end up taking all three courses just to be able to compare them), but again you should do what you think will work best for you.
Thanks for your suggestion. I will do CS2510 and then CS3500.
from computer-science.
It also has full lectures and assignments.
Does it have lecture videos? I can't seem to find them. The lecture notes are good, though.
Sadly no. The only lectures available for all listed courses are the written ones. I think the notes are good enough that videos are unnecessary, but perhaps that depends more on your learning style than the notes themselves.
Edit
I was wrong; the CS2510 version I linked above has video lectures and notes, but they're still missing for CS3500 and CS5004.
from computer-science.
I decided to do CS3500 instead of OOP and Design Patterns and so far it is very solid. My only issue is that you can't use the university's autograder to test your solutions to assignments.
from computer-science.
There is no autograder for the course, only a style checker that tests for little more than if you put the config file they give you into IntelliJ and ran the autoformat. I think you also have to change a setting relating to line length or something, but that's about it, just read and follow the Google Java Style Guide that's linked. All other grading is done by humans and yeah you don't have a human to grade you. The style points are something like 15% of the grade
from computer-science.
I decided to do CS3500 instead of OOP and Design Patterns and so far it is very solid. My only issue is that you can't use the university's autograder to test your solutions to assignments.
The main disadvantage of these courses is the lack of an auto grader and/or reference solutions for the assignments. One solution I can think of is if the RFC gets implemented and the courses are added to the curriculum, and once a few people have finished the courses; we could reach a consensus about how the solutions to the assignments should look (according to the course design guidelines). That way, we could generate a "solutions bank" for future reference, like we had on the HtC courses. But, for now, it is possible to self-assess the quality of your solutions using the tester library and following the design principles laid out on the course page.
from computer-science.
Glad it's not only me - the current recommended OOP classes are a major disappointment and turn-off for progressing through OSSU. The lessons drag and are minimally informative for the time required. While I understand the value of planning your project out, the emphasis on UML here is so opposite to my experience in modern software jobs (I'm going through OSSU to re-skill after being a SAHP for a number of years). It's actually hard to not zone out in these lectures and I generally love school and learning.
The tedium of watching somebody who clearly doesn't care about the topic and can't pronounce 'Java' nor 'attributes' was infuriating. Passion is so valuable towards engaging your audience and this class falls flat after Professors Kiczales and Grossman.
Will check out the suggested alternate classes and be back with feedback!
from computer-science.
Hi! Why OSSU curriculum still have Object Oriented Design and Design Patterns courses if they are bad (or not that much?). After all which courses to complete "Core Programming" should be taken? Could you please reach a consensus on this topic? Thanks!
from computer-science.
Hi! Why OSSU curriculum still have Object Oriented Design and Design Patterns courses if they are bad (or not that much?).
Because an alternative course which has been validated by multiple people has not been found yet. This RFC lists an alternative, but it does not have lecture videos, which can be a bit of a problem, especially this early in the curriculum. But it has very excellent lecture notes, so it might not be that much issue. The main concern is that we do not have enough analysis from people who have done this course yet.
You are welcome to try this and report your findings.
from computer-science.
Related Issues (20)
- RFC: HOT 1
- RFC: Add Human-Computer Interaction Book or MOOC to Additional Resources HOT 4
- RFC: Replace Py4E with CS50P HOT 27
- RFC: Adding another optional introduction to cs harvard CS50 2023 HOT 4
- RFC: Object-Oriented Design Course is Prerequiring basics of JAVA HOT 1
- RFC: problem on course Software Testing HOT 9
- RFC: Replacing edX: Software Engineering: Introduction with Coursera: Introduction to Software Engineering HOT 6
- How to Enroll into OSS HOT 1
- Software Testing course link gives 404 HOT 2
- RFC: Consider adding physics courses HOT 5
- The advanced math section on cs.ossu.dev is broken HOT 1
- RFC: Link for Software Testing course is broken - 404 (under Advanced programming section) HOT 2
- ENHANCEMENT: Can I provide a small website hosted using github pages ? HOT 1
- README link to Discord is outdated HOT 4
- Ossu masters
- google spreadsheet "OSSU CS Timeline" has small error in timeline estimate HOT 1
- RFC: Math Prereqs are not recommended on the Discord HOT 6
- Proposal for Adding Arabic Translation to OSSU Computer Science Curriculum HOT 13
- RFC: A better theme for the OSSU CS website HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from computer-science.