With these few words the legendary AIQUniverSity was launched. In case you weren't following the thread http://www.aiqus.com/questions/36439/shifting-courses , here's a recap of the possible student-initiated courses so far: Structure and Interpretation of Computer Programs - the Abelson and Sussman lectures (July 1986) MIT - http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ Linear Algebra - Gilbert Strang (1999) MIT OCW - http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/ Nothing is scheduled yet, it's all in the early stages of discussion. It might be a way to leverage the people we have here to do things we find interesting without waiting for someone else to offer it to us. This is just a thread where we can kick some ideas around without having to expand 33 comments. If you have an idea for a class, post it as an answer so comments can accumulate under it. We might consider upvotes on answers as a proxy for interest in doing those classes. Online education has quite an impressive pace of development ;)
(10 Feb '12, 14:27)
rhasarub
Well, I Googled "rseiter" for a picture to give us that "Our Founder" oil painting in the impressive virtual lobby - but no luck. If you skip the bricks-and-mortar, the lawyers, and the committees then you can move things right along ;-)
(10 Feb '12, 14:30)
robrambusch ♦
rseiter??
(11 Feb '12, 17:06)
jimgb ♦
@jimgb you are correct.
(11 Feb '12, 17:56)
rseiter ♦
The picture doesn't do you credit ;-)
(11 Feb '12, 18:07)
robrambusch ♦
I read the SICP book about 10 years ago, and loved it, and watched the Gilbert Strang lecture to prep for the AI class, and recomend them highly.
(16 Feb '12, 16:11)
EdK ♦
|
|
I've been thinking about how to do this and am convinced the best way is to just gather materials and try out some ideas. To that end I thought I'd start an example here for 6.001. Let's see what happens. Feedback appreciated. Structure and Interpretation of Computer Programs - the Abelson and Sussman lectures (July 1986) MIT - http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ Or http://sicp.csail.mit.edu/Spring-2007/ SICP OCW 2005 - SICP book online -
link
This answer is marked "community wiki".
Users with 100 karma points or above may edit this wiki. 1
I saw the first lecture and enjoyed it. I've been spoiled by the aiclass however. This lecture did not pass the three-yawn test as it runs over an hour. I kept thinking of where I'd insert quizzes and what they would ask.
Just for the sake of completeness: Here's the Youtube link to the lectures again.
|
|
I copied this from another thread. I thought it might be a good class to run for ourselves. There's no content here that's different from the original post, I just duplicated it here as a placeholder for us to follow up if there's any interest in doing this (after this round of classes - I'm fully booked). If you already know how to program and are just looking at other languages to fill in concepts, I'd suggest you look at Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages by Bruce A. Tate. I was planning to go through it before I got sucked in to online classes by aiclass.
It's not going to make you an expert in any of them but it sounds like fun/another chance to fry your brain with overwork. http://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X I'll second it on this thread to.
I have a tentative phone call scheduled with the author of this book tomorrow. Please let me know if there are any questions you'd like me to ask him.
I have not read the book yet, so I do not know what to ask.
1
I have not read the book either, but have some thoughts (not sure what the author may have covered in the book or if he has a website for the book). Does he provide suggestions for development environments (anything from heavyweight IDEs to suggesting "just use vi and gcc") for the languages? Development environment to use is a personal decision (and sometimes contentious) but an overview of what is available would be a big help. Does he discuss programming evolution and how the different languages he covers fit in? I'm assuming you will be bringing up the idea of basing an online "class" on his book and seeing how he feels about that. Does he have online code repositories for his book examples? Good luck with your call!
And here is his blog, Rapid Red
Chapter 3 (Io excerpt) and chapter 4 (Prolog excerpt) will give you some deeper idea about the book ...
Thanks, I'll read them this evening.
1
@rseiter - it is a grown up book for grown up programmers and grown up programmers don't need people to tell them what IDE to use or how to install the framework on operating system 'x'. He assumes that you can sort all of that out for yourself and if you can't, then you aren't ready for the book - he even has a section in the intro called 'Don't buy this book'
The book focuses on key features of the languages and the philosophy of the language. There are a lot of gaps in his syntax explanations, particularly in the basics - it's not a programming reference book, but again, grown up programmers will either be able to fill in those gaps with their own experience, make inferences about syntax from complex examples, or they'll know how to look it up on the internet.
It's hardcore. I just wish all programming books were this concise.
I read the sample chapter excerpts - @jholyhead is right, it is hardcore. I figure my chances of getting through the whole book would increase dramatically if I was studying it with other people. Sort of the "running-buddy" principle.
I'm definitely going to give this a shot after I clear this round of classes. I hope a few more people are interested as well.
1
@jholyhead as someone who has been a professional programmer for over 25 years I will ask that you think hard before making pronouncements about what "grown up programmers" do and don't need (and if you still feel the need to do so please try to be a little bit less insulting, especially when you know little about my background). I am capable of figuring out what I want to use, but when LEARNING A NEW LANGUAGE appreciate suggestions for good environments for that language. It saves me time to not have to chase this down. I've worked in proprietary scripting languages that failed to provide a debugger and believe that few things help productivity (in the real world of large bodies of code much of which I may not have written) as much as a good debugger. I feel this so strongly that when I implemented the scripting environment for a startup company I worked very hard to include debugger support. It made my life and my users lives much easier (guess who got to debug much of their code). For whatever it's worth, you commented in another thread "Simulation software is very very complicated and as a result very very expensive." I'll give you one guess what kind of software I was working on (if you like I can point you to the patents granted).
I can certainly use Google to search for something like this, but if you are going to the trouble of writing a book on the topic why not include a page for each language for suggestions/links?
1
Was forced to learn Erlang for a course I took last year, can't say i liked it.There is an official (?) Emacs-plugin for Erlang but since I’m not too fond of Emacs I searched the net for a better choice. Tried one plugin for Netbeans and another for Eclipse, both are in beta and have been so for a long time. None of them were any good but the Eclipse one sucked the least IMHO.
Guess that Eclipse has the best overall support for these exotic languages.
Doubt you will become an expert in any of these languages just by reading the short introductions in this book. If you just want the ‘hardcore’ information you can get it at the official websites http://www.erlang.org/, www.haskell.org etc and don’t need a 3rd party book like this.
To learn Haskell or Erlang a more laid back way try http://learnyouahaskell.com/ or http://learnyousomeerlang.com/
@jimgb thanks for posting the excerpt links.
@Ceda, thanks for posting your experiences. I used Eclipse when I started learning Python last fall so that sounds like a good place to start. Have you read the Seven Languages book? I am trying to understand what exactly it adds over just learning the languages individually.
1
@rseiter - The book doesn't get into editor/IDE recommendations much, with a few minor exceptions. For example, in the Ruby section he states "few people are using Ruby from full integrated development environments, but many are happy to use a simple editor with files.My favorite is TextMate, but vi, emacs, and many other popular editors have Ruby plug-ins."
He also explicitly states that he tells he "won't be your installation guide" or "your programming reference".
I suppose those points are not surprising given the size of the book and the breadth of material (i.e. seven languages) being covered.
I have skimmed the book but haven't read it in depth -- though I have read the intro and the hence the authors explanation of the purpose... but like you I find myself asking the benefit of doing this versus tackling a particular language one at a time. Perhaps it is because I have a similar background to you.
Thanks @egoots. After reading the excerpts @jimgb posted I can see the author was explicit about what he is not covering--fair enough.
The first review on Amazon is pretty detailed. Can you comment on the statement "I wish that the individual chapters went into significantly more depth comparing the motivations for and consequences of each language design."? My big hope for a book like this would be putting each language in a bigger picture context (e.g. he categorizes the languages as functional, OO, etc. but does he follow through and analyze the implications), but that review comment makes me think the book lacks in that area.
Again, based on skimming...
It seemed to be a matter of depth. Each Language section ended with a summary of the strengths and weakness of the given language so you got some of it there. It also had interview sections with the language designer (or expert) so you tended to get some background on design decisions.
Maybe someone who has actually read and worked through the book can be a bit more concrete.
1
@rseiter - you've taken offence where none was intended. I wasn't trying to suggest that you weren't a grown up programmer, I was simply trying to distil the essential attitude of the book - there is no hand holding of any kind. If my tone was excessively combative (bad habit), I apologise.
The book's author would consider a page of suggestions/links for IDE's etc a waste of a page that could be better spent exploring the language under study.
@rseiter - sry have only browsed the book briefly at the store. Can't give a fair review but got the impression that it show the strength of each language. Being unbiased it also show some of the shortcomings, something you usually don't get in books about a single language.
PS. Four of the seven languages in the book are functional; Scala, Clojure, Erlang and Haskell. Much hype about functional languages at the moment. Would like to learn Haskell (pure functional) and maybe some hybrid (more useful?) like Scala or F#.
2
I spoke with Bruce Tate on the phone today. He was incredibly gracious and pointed me towards a few resources that have popped up since the book was published.
@rseiter - "Does he discuss programming evolution and how the different languages he covers fit in? I'm assuming you will be bringing up the idea of basing an online "class" on his book and seeing how he feels about that. "
In all but one case, he prints a conversation with the inventor of the language discussing its origins, etc. In the one case where he doesn't, he prints a conversation with an early user of the language.
He was very positive about the idea of a class. If we decide to do this, maybe we can put together a list of ideas and resources to see what his reaction is. I mentioned the learn-quiz-learn nature of the aiclass and he suggested a few places we could look for quiz material.
I'll have more intelligent things to say after I read the book (in my copious free time).
showing 15 of 20
show all
|
|
Blogger Scott Young have taken up the challenge of learning M.I.T’s four-year computer science program on his own in 12 months (?) and chronicling his progress on his blog. Thanks for this, it's a good find.
Scott has some interesting things to say. He's setting himself a grueling pace. 33 classes at about 1 per week (from his week 1 video) where MIT estimates 120 hours for the class (I'm guessing this is for a 12 unit class over a 10 week semester) including about 30-40 hours of lectures. I'm interested to hear his thoughts on his current classes. I think 6.002 and 6.003 have caused a number of CS students to reconsider their majors (and 6.013 in his next set is even worse IMHO).
1
I thought this was a good post about studying from Scott.
http://calnewport.com/blog/2011/05/18/anatomy-of-an-a-a-look-inside-the-process-of-one-of-the-worlds-most-efficient-studiers/
Summary:
Learn by connections, not by memorization.
Learn things deeply the first time, don’t let confusion compound.
Handle concepts by creating metaphors and analogies.
Remember facts through association first, repetition second.
|
|
It's funny how all classes are named with standardized numbers in the US. We don't have that in Germany. Anyway, the 6.001 lectures are also available on Youtube, of course. I forgot to check, just started an over-night batch-download without much thought. I came to lecture 4a so far, and noticed that it does in fact go well together with the preparatory reading for the NLP class. NLP class starts with regular languages and pattern matching, while Abelson and Sussman start with implementing a pattern matching procedure in order to build an interpreter for Lisp (in Lisp ;) ). MIT is an outlier from the normal US practice. Most colleges in the US name classes more like Stanford (e.g. CS221). How are classes named in Germany?
MIT course numbers:
http://alumweb.mit.edu/clubs/sandiego/contents_courses.shtml
http://everything2.com/title/MIT+Course+Numbers
Stanford CS course numbers:
http://cs.stanford.edu/courses
MIT is also an outlier in how it describes (credit hours vs. units) and grades classes:
http://web.mit.edu/registrar/gpacalc.html
I noticed introduction to CS most of the time seems to be CS101. German universities pretty much all have their own names for classes, and it is rarely numbers (and even if there is numbers student won't use them). There is some kind of European university credit system to easily accredit and compare classes, which was introduced some years ago when they changed degrees to Bachelor and Master. This annoyed many people in Germany, though, because the system before had a five years 'Magister' or 'Diploma' system was more scientific and less like 'going to school'. The nine biggest technical universities (TU9) are now all offering Diploma again. This also means there is no division between 'Undergraduates' and 'Graduates'.
The 101 course number is so common (in many departments) it is often used as a joke. I might say "<something unpleasant=""> is like hitting your thumb with a hammer 101" or use "<something> 101" as a somewhat derogatory phrase meaning an overly simplistic interpretation, or in non-derogatory form as a basic overview (most common).
If I understand correctly the 'Magister' or 'Diploma' system has a different teaching style from a 'typical' Bachelors/Masters program. That sounds interesting. Can you elaborate or point me to a reference to learn more? How does the Doctorate fit into all that in Germany?
These online classes have gotten me more interested in educational practices. This was an interesting link: http://www.thedailyriff.com/articles/the-finland-phenomenon-inside-the-worlds-most-surprising-school-system-588.php
Magister and Diploma are / were full degrees similar to Masters, but without any intermediate degree before that, only some kind of intermediate exam you would take after about two or three years. Regular (minimum) time for finishing was something like five years, but there were not really fixed time constraints, it offered plenty of freedom for choosing your own path, combining different sciences and taking you time. You can do a doctorate afterwards, which is usually at least three years. If you are pretty sure you will do the Ph.D. and your professors agree you can do it, you don't even have to get M.A./Diploma before, and could do everything in one go.
Oh, by the way: Apart from some small administrative fees, university education in Germany is free at most places, if you do not exceed the regular time by more than two years ;)
Here in Munich, we can extend the MSc till 7 semesters. Failing to achieve all the credits during that period results in expulsion. And even exceeding the 4 semesters the study fees remain the same, as far as i know.
@ermalguni: Well, Bavaria and Lower Saxony are the only bundeslaender left where universities charge study fees, luckily ;) At other places universities only charge if you exceed regular time by two years, which usually means something like 13 or 14 half year terms for a full degree.
I still got the old Magister degree, without a time limit after the intermediate exams.
@rhasarub it seems they think that they have rich students :P. I have friends in RWT Aachen and they have a lot more free/cheap stuff as compare to me at TUM.
|
Of course you must check it carefully, here is one "review" I found ... |