[sticky entry] Sticky: Welcome post!

Oct. 27th, 2009 08:53 pm
chuck
[personal profile] elz
Taking advantage of DW's new community sticky feature:

This is a community for people following along with MIT 6.00: Introduction to Computer Science and Programming, which is part of their OpenCourseWare project; the lectures, reading assignments and problem sets are all free and available online. The goal is to do a first run-through from November 2009 - February 2010, although obviously you can go at your own pace, and it would be great to muster up enough people to support each other on different timeframes (one lecture a week or starting after the new year).

Feel free to join in at any point! No programming experience necessary.

ETA: If you don't have a dreamwidth account but would like one, check out [site community profile] dw_codesharing or drop me a line.

Lecture 6

Feb. 7th, 2010 09:28 pm
Maxfield Parrish
[personal profile] winterthunder
So, who thinks the other professor was better? I'm finding this guy harder to follow, though I did catch that computers can be wrong and paranoia is good.

Paranoia, paranoia everybody's coming to get me...

Er. Lecture video under the cut. )

I have to say, I understand the whole lists, appending lists, concatenating lists idea, but I'm not following the code. For the universities bit, what are all the raw_inputs there for? Is the for loop just there to show that appending lists is messy? And which line is the concatenate? Is it "Univs = Techs + Ivys"?

(Class handout is here, and I've pasted the relevant code section under the cut.)

Click for the code! )
Yoruichi is really hot
[personal profile] jetamors
As always, please feel free to critique my code, ask questions, or post your own code in the comments. I did problems 2-4 using iterative solutions, so I'd be especially interested in seeing recursive solutions for those problems. Also note that several of these functions call each other, so they need to be placed in the same file.

Solution to ps3 )
Maxfield Parrish
[personal profile] winterthunder
As of this week's readings, we're over halfway done with all the readings for the course! \0/ It gets a lot lighter, reading wise, from here on out, and I have to admit to being a bit relieved. Maybe now I'll actually manage to do the problem sets before I put up this post...

Anyway, for Lecture 6 we're supposed to read through Chapters Eight and Ten, using part of the Python Tutorial as a reference. I have one question to toss out for discussion. I know the long form came up in lecture last week, but I didn't realize until I did today's readings that you could force Python into the long form. I just thought it was something that Python switched into when the numbers got too long. Why would you want to start your calculations in long form? Wouldn't it be easier to let Python do it on its own?


Poll #2228
Open to: All, detailed results viewable to: All, participants: 2

PS 3 is

View Answers

roasted and ready to eat
1 (50.0%)

a little undercooked yet
1 (50.0%)

still raw
0 (0.0%)




Now, I'm still working on PS3 myself, and given that I'm fast approaching the point of garbled language exhaustion, it ain't happening tonight. Any volunteers to put up their code?

Lecture 5

Jan. 31st, 2010 06:23 pm
Maxfield Parrish
[personal profile] winterthunder
Hello hello hello!

Lecture five was a short one, and we did not find out about the mysteries of the Newton method. Based on the handout, it looks like they planned to go over it, so I guess that comes next week.

Lecture video under the cut )

Anyway, without the Newton method, this lecture was mostly stuff I understood from the readings. What about the rest of you? Anyone guess the bug in the squareRootBi code?

Readings

Jan. 29th, 2010 09:37 pm
Maxfield Parrish
[personal profile] winterthunder
No problem set this week! \0/

Instead, we get two readings to mull over: Floating Point Arithmetic and Newton's Method. Now, the first one I was all right with. I can't envision a situation in which I could possibly care that Python rounds to only seventeen significant digits, but hey, I guess it's good to know these things. But what does Newton's method have to do with programming?

On a side note (and out of curiosity on my part), we started out with 30 something people following along. How many are still with us as we go into the fifth lecture? Stand up and be counted!

Lecture 4

Jan. 24th, 2010 09:53 pm
Maxfield Parrish
[personal profile] winterthunder
Video behind the cut )

This lecture is pretty code heavy, so make sure you have the PDF available for reference. Also, [personal profile] jetamors has graciously put up the solutions to PS2 here. I am being a good student and ignoring them until I've finished my own code. :D
Yoruichi is really hot
[personal profile] jetamors
Putting my code for ps2 behind the cut. Please feel free to critique it, ask questions, or post your own code in the comments.

Solution to ps2 )

(Also a question: when I have a really long print statement like this, how do I break it up so it doesn't stretch the screen? I looked through some of the documentation, but I couldn't find anything on it.) ETA: Figured it out and updated my code :)
Maxfield Parrish
[personal profile] winterthunder
Hello everyone!

The readings weren't too bad this week, I thought. What about you guys? I'll need to go back and re-read some parts of Chapter 3, but my notes this week didn't look like I'd upset red ink over them. :)

Any questions, feel free to toss them out in the comments, as usual.

And about that problem set...

Poll #2145 Problem Set Two
Open to: All, detailed results viewable to: All, participants: 3

This one is...

View Answers

done done done!
3 (100.0%)

will be done done done!
0 (0.0%)

is stuck in the Great Dismal Swamp of Confusion
0 (0.0%)



Now, I'll admit that I still haven't gotten to the problem set, so I'll be tackling that along with the lecture tomorrow. In the meantime, does anyone want to volunteer to post their code under a cut?
Maxfield Parrish
[personal profile] winterthunder
I'm sorry, but the reading/PS2 post is going to have to go up sometime tomorrow, unless someone who's finished it wants to put it up for me. It's been a hellish week, and even if I can finish this health insurance application tonight, I'm not going to be in any mental condition to read, code and comment. Better all around if I come at it with a full night's sleep.

Lecture 3

Jan. 17th, 2010 07:05 pm
Maxfield Parrish
[personal profile] winterthunder
Well now, PS1 would have been a lot easier if I had watched this lecture first. I even went and checked the schedule again after I watched it, thinking that I must have misses something and gotten the due date wrong on the problem set. But no, it appears the problem sets are due the day of the lecture, and then the lecture hammers home the info in the problem set. Methinks, since I control when I "go" to lecture, that I'll be watching prior to doing my homework in the future. :D

Anyway, thanks to the very helpful explanations of [personal profile] jetamors and [personal profile] aranthe, I had no trouble understanding this lecture. What about the rest of you?

The video is under the cut, as is a link to the class handout. )

If you haven't had a chance, go and vote in the poll from the PS1 post and have your say about whether and when we do the quizzes. Also, if you're confused, there is a *lot* of information in the comments on the last two posts! Read through that, and feel free to ask if you have more questions. :)
Yoruichi is really hot
[personal profile] jetamors
The solution I wrote is behind the cut. Please let me know if you have any questions about the math or the code itself, or feel free to share your own solution in the comments.

ps1.py )
Maxfield Parrish
[personal profile] winterthunder
Hi everyone!

First, class business... I went poking around the website, and I found a suggested schedule for the problem sets. They actually correspond to the lectures, imagine that! Anyway, armed with this new info, I've made some tweaks to the problem set schedule.

They're below the cut, if anyone's interested. )

I also discovered that there are three quizzes associated with this course. So I'm putting the question to you all - do you want to do them?

Poll #2096 Quiz? What Quiz?
Open to: All, detailed results viewable to: All, participants: 7

I would like to include the quizzes in the course.

View Answers

Yeah, sure, extra practice is good.
7 (100.0%)

No way, I've got enough on my hands with the problem sets.
0 (0.0%)

If you would like to do the quizzes, how should we incorporate them?

View Answers

Add them on top of the lecture and reading in the week where they fit in the sylabus.
7 (100.0%)

Push the lectures back a week to make time for the quiz
0 (0.0%)

Some other idea which I'll tell you about in the comments
0 (0.0%)



Okay, that's out of the way, on to the readings.

I gotta say, this week kicked my ass, and these readings were right there with work and family issues, putting their prints on my bum. The wikibook chapters in particular just are not working for me. Is anyone else having that issue? My notes on those chapters are scattered with big red question marks and underlines with "What does this mean??" written off to the side. Part of this, I think, is that I really don't do numbers. I had to go look up the definition of a prime for the problem set...

Anyway, I've got some questions to toss out for discussion.

1- From the Data Structures reading, what are stacks and queues and why do we care about them? The reading just goes, 'This makes it easy to use lists in stacks and queues, whee!' (Or at least, that was my impression...)
2- From the same reading, why is it useful to be able to unpack a tuple?

Anyone else have questions for the class? This set of readings certainly provides fertile ground for questions. All of section 5.8 of the Data Structures had me going, "Bzuh?" And I just gave up on the wikibook...

Poll #2097 Who rocked problem set one?
Open to: All, detailed results viewable to: All, participants: 1

I have...

View Answers

Knocked it out of the park.
1 (100.0%)

Struck out.
0 (0.0%)

There's still another at bat to go!
0 (0.0%)

I thought problem set one...

View Answers

Was easy peasy
0 (0.0%)

Was a pain, but achievable
1 (100.0%)

Was way too hard... when did we learn how to do this stuff, again?
0 (0.0%)



Now, [personal profile] aranthe has generously posted answers to some of the exercises in the readings. Anyone want to volunteer to do that for PS1?
[personal profile] aranthe

I've annotated the code fairly liberally, but if you have any questions, just ask. I'll be happy to explain anything that seems confusing.

I just realized that in an effort to make Exercise 1 less boring, I included some extra print statements that weren't required. To avoid confusion, I've replaced my first solution with a simplified one. For those who are interested, I'll post the embroidered one in a reply to this thread.

Exercise 1 sample solution (edited, simplified). )
Exercise 2 sample solution. )
Exercise 3 sample solution. )

Lecture 2

Jan. 10th, 2010 04:43 pm
Maxfield Parrish
[personal profile] winterthunder
All right! Hopefully we've all successfully completed Problem Set 0 and are ready to tackle Lecture 2. Note that there is a handout associated with this lecture, and having it printed out before starting is a really helpful thing. Not that I had to stop and print it in the middle of lecture or anything...

Also, since our problem set numbers started with 0, I'm going to put up a post for PS1 this Friday. From that point on, problem sets will go up every other week.

The lecture video is embedded under the cut )

I had one problem with this lecture, and I'm hoping you all can facilitate a light bulb moment. The code example with x, y and z, the fourth one down the page... I can't figure out what the bug was. Is it just because the statements aren't indented, or is there something else?
Maxfield Parrish
[personal profile] winterthunder
All right! Looking at my schedule for the coming weeks, I think I'm going to add a readings and problem set post on Fridays, just to keep them separate from the lectures and to give everyone time to digest and discuss the information before we dive into the next lecture. (This will also give me an extra kick in the rear mid-week to get everything done!)

Thusfar, I've read through chapter 1 and chapter 2 of How to Think Like a Computer Scientist, the variables and strings and input and output sections of Python Programming, and the variables tutorial on Pythonista. They're a bit repetitive, but repetition is good for my brain! If you're a visual learner, do the tutorial on Pythonista first, because there's a really nice series of images there.

Out of the readings, the only thing that gave me pause was the minutes since midnight program in Chapter 2. I'm not sure exactly why... I didn't define hours and minutes when I first ran the example, and then after defining them it seemed a bit useless to write a program that only gave the correct answer at that exact moment. (Anyone watch Alice in Wonderland as a kid? That scene where they're cleaning the attic - "This old clock; it tells the right time twice a day. As for the rest? While, maybe not...") Regardless, I ought to go back to that when I'm not tired and trying to do all the readings in one chunk. Did anyone else have trouble with that one, or with anything else in the readings?

And then, PS0! As [personal profile] smc1225 graciously pointed out, you have to open a new window to write your code and then run it. This link, which she (guessing gender from the list of feeds on your profile, [personal profile] smc1225; my most humble apologies if I'm wrong) found when the November group went through PS0, is massively helpful.

So, who's finished PS0? I can't create polls, apparently, but let's report in on our successes and mistakes before we plunge onward into lecture 2!

Edit: Oh, wow, someone gave me paid time! Thanks, oh anonymous benefactor!

Edit 2: Ok, it appears I'm not allowed to insert polls into pre-paid time posts. But, in the future, there will be fun with polls! :D

Lecture 1

Jan. 3rd, 2010 03:34 pm
Maxfield Parrish
[personal profile] winterthunder
All right! Computer science skillz, here we come!

If you haven't already, take a look over at this page and make sure you have the correct version of Python installed on your computer. Remember, if you install 3.0 the code you write in this course will not be compatible.

Lecture 1 video is here, and covers definitions and other introductory things. In an ideal world, I would have watched it already, but it's currently playing in another window while I multi-task, and I didn't want to wait any longer to put this post up. It seems basic thus far, but I shall edit this post if I come up with any questions. Also, feel free to comment with anything that doesn't make sense to you. We have over 25 people following along and we're all beginners, so we should be helping each other out. :)

Edit 1:

Ok, I've watched the lecture, and aside from not being able to see what he's typing on the computer screen, I'm feeling pretty good. I'm going to take some time over the next few days to dig into the readings and see if I can't get an idea of what was on the screen.
Maxfield Parrish
[personal profile] winterthunder
Is anyone out there still interested in starting this in January? I'm happy to lead a group, so to speak, as I'm definitely still interested. I'd like to do one lecture a week, though, as opposed to two...

Lecture 5

Nov. 30th, 2009 05:10 pm
ada-tubes
[personal profile] elz
Link to video and handout

Floating point numbers, successive refinement, finding roots )

Poll #1798
Open to: All, detailed results viewable to: All, participants: 2

Post-Thanksgiving Tickybox

View Answers

Finished lecture 5!
2 (100.0%)



(Got a bit of catching up to do myself after last week!)

Lecture 4

Nov. 19th, 2009 05:49 pm
ada-tubes
[personal profile] elz
Link to video and handout + Problem set 3

Decomposition and abstraction through functions; introduction to recursion )

Poll #1733
Open to: All, detailed results viewable to: All, participants: 6

Revenge of the tickyboxes

View Answers

Finished lecture 4
6 (100.0%)

Finished problem set 3
1 (16.7%)



Also! I was thinking, Google Code has some handy code review and commenting features, and who doesn't love version control, right? *g* So I set up an intro-cs-dw Mercurial project over there. I've never actually used Mercurial before, but I like having excuses to learn new things.

To get set up:

1) Email or pm me or leave me a comment and I'll add you as a project committer.

2) Add a folder with your name on it and put your problem set solutions in there.

That way if you want to collaborate with someone or leave helpful feedback or read other people's code, it should be a little easier than using the DW comments.
ada-tubes
[personal profile] elz
I'm planning to post lecture 4 today, but I also thought maybe we could do some brainstorming. How are you doing so far? Finding anything confusing or the pace too fast? Would it be helpful to have some simpler, less MIT-ish problems to warm up with? A weekly chat option to go over things or watch the lectures? Partners to work on the problem sets with?

Fire away with any ideas and suggestions!
Page generated Feb. 9th, 2010 10:26 pm
Powered by Dreamwidth Studios