Code Monkey home page Code Monkey logo

Comments (14)

Alaharon123 avatar Alaharon123 commented on May 28, 2024 2

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.

edwinhung avatar edwinhung commented on May 28, 2024 2

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.

writeonlycode avatar writeonlycode commented on May 28, 2024 1

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.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024 1

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.

Jack203s avatar Jack203s commented on May 28, 2024

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.

zarry0 avatar zarry0 commented on May 28, 2024

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.

Jack203s avatar Jack203s commented on May 28, 2024

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.

zarry0 avatar zarry0 commented on May 28, 2024

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.

Takoulinos avatar Takoulinos commented on May 28, 2024

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.

Alaharon123 avatar Alaharon123 commented on May 28, 2024

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.

zarry0 avatar zarry0 commented on May 28, 2024

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.

ahsatan avatar ahsatan commented on May 28, 2024

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.

Neilord avatar Neilord commented on May 28, 2024

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.

pulkitkrishna00 avatar pulkitkrishna00 commented on May 28, 2024

@Neilord

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.