Today I viewed lecture 1 of the Stanford CS106A course on iTunes U. No programming was done on this introductory lecture but instead, a lot of details about the course, about what will be learned as well as a number of items relating to the students at Stanford who actually take the course.
Although I have made a lot of notes, I wont be going in to detail on some of the points as parts of the lecture relate to students at Standford only.
Prerequisites of CS106A – ie… what do you need to know?
For those who haven never programmed before, you’ll be glad to learn that there are no prerequisites at all for this course, other than the lecturer hinting that it would be good to know how to switch a computer on. As no experience is needed, that means that most people should be able to work through this course although I’d expect that those wanting to take the course will have a reason for wanting to take it and therefore, might have some background.
Programming Methodology and what it means
The CS106A course is titled Programming Methodology. The reason for this is that it will teach you good software development principles rather than just how to program. The language used on this 10 week course is Java. Although you will learn Java as part of the course, you will be using the language in a way that you learn how to write code and how to create good programs. The Methodology part of the course title is all about good principles of programming. If you were to learn just how to use Java than you might not necessarily become a good programmer.
As there are no prerequisites on this course, it could mean that you have to un-learn some styles and drop some bad habits. Either way, the course looks to be created well so that whatever level you are at, you should benefit from taking it.
Be Motivated – There are no Section Leaders to Help on iTunes U
One of the items that stood out to me was that on iTunes U, you are almost on your own. The staff and lecturers at Stanford can only help the students who are actually enrolled and attending Stanford. For those who are not, you need to keep yourself motivated. What I recommend for doing that is simply keeping up with the course and matching the time scales between assignments and putting the right amount of work in. Having a course at Stanford or any college or university helps keep you motivated because you have deadlines. If you don’t complete an assignment, it effects your grades. Studying on iTunes U doesn’t have that encouragement as you don’t need to hand anything in. Instead, you are on your own and need to motivate yourself to keep up.
If you watch lecture 1 and don’t think this course is for you then check out CS105 or CS106X. CS106X is a combination and faster paced version of CS106A and CS106B.
Where to find CS106A Assignments and Handouts
The web address to find all the assignments for this course is http://cs106a.stanford.edu.
Required Text Books for the CS106A Course
There are two books (readers) that you need for the CS106A course. The first is a reader called Karel the Robot which can be downloaded as a PDF (works well in iBooks on the iPad).
The second is a paperback book titled Art and Science of Java which was written by Eric Roberts. This book is available from varios places such as Amazon although the price tag is $90.99 at the time of writing this. I have seen an early version online as a PDF, but comparing it to lectures and readings, the final full version appears to be the best as chapters have been rearranged on the PDF and some chapters are missing.
There are 7 assignments on CS106A with each of them increasing in difficulty. Although nobody will ask you why your assignment is late and nobody will be marking your assignment, I still recommend that you complete the assignments as you would if you were sat in class. You can’t cheat yourself by skipping over it and you can’t cheat yourself by copying the work of someone else. At the end of the day, you are cheating yourself if you decide to skip over them.
Required Software for CS106A
To write code and create programs, you need to install software to do this. This course requires you install Eclipse. It is available for both OS X and Windows. Good news is that it is free. Stanford recommend you download and install their version of Eclipse which includes some of the libraries you need to work with the course. The downloads can be found on the CS106A website.
Grading – Not too Relavent
When students at Stanford submit assignments they are graded out of a possible 8 options with a 9th option of a zero if nothing is submitted. Although grades do not apply here, I still recommend striving for the top grades as it will force you to stretch yourself and put that extra effort in. You wont be rewarded with a certificate, but you will get rewards in that your skills will increase and you will become better at programming.
Grades follow this pattern:
++ Exceptional. You have gone beyond the requirements of the course.
+ Well thought out and well planned. Very good.
Check+ Does what it needs to do.
Check Fairly good
Check- Significant problems
– Bad or bad style of programming
– – Doesn’t work and is just a shell… very bad.
0 Not submitted
I mentioned earlier that copying is not allowed at Stanford. They have systems in place and can check when code matches. You are allowed to discuss but not view other peoples code. But, this doesn’t really apply for iTunes U because you are not submitting code to anywhere and you are not getting graded. You are simply cheating yourself if you decide to copy someone else’s code you found on the web. Because of this reason I am hesitant to post my solutions online and instead, might just make up some mock assignments with sample code so that you can’t copy and cheat on the iTunes U tests.
It begins with Karel the Robot
I mentioned a few paragraphs ago that one of the course materials is Karel the Robot. Karel is a simplified version of Java that introduces you gradually in to the basics of programming. Karel lives in a grid and can move around that grid when you issue him with commands. He cannot move through walls. He carries a bag and sometimes it has beepers in it and sometimes those beepers are infinitely available. Other times it is empty but you can have him pick beepers up. Skimming over the first few lectures it appears that the first assignment will be to have you control Karel to perform various tasks which vary in complexity.
Karel will only be used for a few lectures and after that, you will move in to the world of Java.
I recommend that you keep up with the lectures and try your best to study as though you were a student in a class. Complete all assignments and do them well. The recommended programming time each week is about 10 hours as well as another 3 hours of lectures. Some of the earlier assignments might be done quicker than 10 hours and some of the later might take significantly more time, but the average you can expect to spend on CS106A weekly for the next 2.5 months is around 13 – 15 hours.