Road Analysis – Part 1

Hello everyone! Merry Christmas (as it seems to be right now)! In this post, I’m going to analyze the subjects I’ve studied so far and rethinking my exams for everyone who wants to follow my path!

Freshman – Fall

During the fall, I’ve done

    Introduction to Programming
    Programming thinking (or something like that, see my previous review for that)
    Introduction to Physics
    Single Variable Calculus (just a part of it)

My degree was different, presenting 5 exams (game development in html5 and js, which I’ve never done after that). Right now, a good degree should attests

    Introduction to programming
    Object Oriented Programming
    Single Variable calculus
    Physics
    May be an elective course (but it’s not that useful, imo)

Reviewing

Leaving out the fact that I haven’t finished my set of exams, let’s talk about the exams:

    Introduction to Cs:

    I think right now that a good introduction course should be made in 2 ways: one, using a good programming language, easy to understand and to manage, and from that talk about all the topics usually related to a intro cs course (starting from the basics, arriving to recursion and some basic but useful algorithms). Introduction to cs done by MIT does this very well, using python (which I love) and using that kind of approach, so a really good way to start.

    The other approach is the “inverse” of that, using a complicated language, which works at lower level compared to other languages and hard to deal with by a newbie (coff coff C coff coff). Using this approach, a student taking it’s first introduction to cs course, will learn a lot about computers, programming basics, the logic of a programming language and literally, how cs works. All of that from the basics, which is great. I’ve got some C background (see learning C), but I think that the most valuable course on the net using this approach is the Harvard Introduction to Cs, findable on Edx for free.

    The choice is yours, the 2 choices are good as well
    Calculus

    Calculus is a fairly important topic for a Computer Science, so it need to be good. There aren’t many calculus courses one the web (probably you can find one or two on Coursera, but I don’t really know if they’re good). The course I’ve done was simply a set of lectures done by an Italian professor named Massimo Gobbino (set my previous review about it). For everyone who don’t came from Italy, a great alternative is the MIT OCW course on single variable calculus. It isn’t a real MOOC, but I think it does its work pretty damn good. The course is MIT level, so I think (don’t taken it) it’s pretty hard, long, and full of exercises, exams, and weeks assignment, but worth the time spent on it.

    Object Oriented Programming

    This is, imo, another important topic in cs. I’ve obviously studied OOP but mainly after this online bachelor, so it was only a refresh for me, and some things now starts to be a bit “lacunous”. The data thinking course done by MIT covers the OOP logic and basics (pretty well actually), but I think python isn’t the good way to cover it, mostly because python is “too easy” and OOP in other languages can be tricky. I suggest in fact that OOP should be in a “high but lower” level language (like Java, for example) for the better understanding of the paradigms and further better understanding of ds and algorithms. Java would be ideal, but I haven’t found any free OOP course in java on the web, so the only remaining choice is a course done by IIT madras (I think it’s a good course) in C++ (2 part course). The main Problem with C++ is that requires (imo) C as a presequisite, so now the only path “available” (which, of course, isn’t) is introduction in C and OOP in C++. Which isn’t that bad, if you think of it.

    Introduction to Physics

    Physics is important (but imho not that much) for a Cs. In my schedule, mostly due to time (Biotechnology exams were coming) I’ve done an easy course (but really enjoyable) on physics done by Udacity (see the review). If you aren’t really interested in it, Udacity course is good. Easy, enjoyable and catchy. If you are interested by this topics, I think that the Yale Course is what you need. It’s basically an Yale physics course online for free! Awesome! (hope it’s good, btw)

Right now, if you want to dig into Cs and follow my path, I suggest

    Introduction to Cs by Harvard (you can previously do the course by MIT! It’s great!)
    Single Variable Calculus by MIT (findable in MIT OCW scholar)
    OOP by IIT Madras (on Edx)
    Physics by Yale (depends on you, Udacity however is free n good!)

Freshman – Spring

During the fall season, I’ve done

    Single Variable Calculus (the other half of the course done by Massimo Gobbino)
    Data Structure (ds) and Algorithms (just a part of one course, the whole course is a 2 part course)
    Linear Algebra, done by Brown (Just a part of the course, I’ve managed to do only 30%)
    Databases, done by Stanford (Managed to do somewhat like 50%)

The real set of exams in my bachelor was

    Multi Variable Calculus
    Linear Algebra
    Ds and Algorithms
    Databases

Reviewing

As you can see, even though I’ve completed only partially the courses , I think I can review the season anyway.

The freshman – spring season has been very hard for me. The previous set of exams, or at least most of them, was more “guided” compared to most of the courses in the spring season (the problem solving in the Princeton course was, at least for me , one of the hardest challenges in my entire life). Moreover, the amount of hours spent studying those subjects was barely enough to complete 2 courses (studying from 30 to 35/40 hours/week) out of 5.

    Data Structures & Algorithms

    The course built by Princeton (findable for free on Coursera) is very important for a self made Cs. It’s amazing to develop testing and coding abilities related to algorithms, is also useful for a better understanding of OOP paradigms. A must have. Period.

    Another great course on the same topic (and really useful for a better understanding of data structures and algorithms) is the Stanford design and analyses of Algorithms, which I have completed (see the review), and the combination of the courses is truly terrific. Sadly, the course is no more available, so some alternatives are design and analyses of Algorithms done by MIT (findable on the MIT OCW page) or some algorithms courses on Edx or on Udacity, but I don’t really know at that point

    Linear Algebra

    The course by Brown isn’t that great imho (also it isn’t more available on the Coursera platform), some great alternatives are Linear Algebra – Foundation to Frontiers (on Edx, you can see my review of this MOOC) or aother great MIT course (always findable on the OCW page)

    Databases

    I’m not really sure about this course. It’s really well built and challenging to, but I don’t really know if it needs to be done during the junior/senior year. Moreover, I haven’t completed it. An interesting alternative to this course, is a logic course or even the mathematics for computer science course, done, again, by MIT and completely free on their website (useful for a better understanding of design and analysis of Algorithms)

    Multi Variable Calculus

    Still in progress. The only great alternative on the internet to the lessons of Massimo Gobbino comes, again, from MIT. The course is also a scholar, so similar (in some kind) to a MOOC. Probably great.

For the fall season, the recommended exams are

    Data Structure and Algorithms by Princeton (with the combination of a more advanced MOOC on algorithms, after ending both courses, imo)
    Linear Algebra (from MIT or UTAustin on Edx, depends on you)
    Multivariable Calculus (or like me, keep doing Single Variable Calculus)
    Databases (not really sure with this course, as above, depends on you, a great alternative is a mathematic course, for example logic (a mooc findable on stanford lagunita) or mathematic for computer science (done by MIT)



Stay tuned as always for new posts and updates!

Comments

Popular posts from this blog

Exam Review – Design and Analysis of Algorithms (Stanford – part 1)

I'M BACK BITCHEEEESS

Exam Review – MIT’s 6.00.2x (Comp. thinking and data science)