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!
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
Post a Comment