STUDENT // Natasha
BEST COLLEGE COURSE // Introductory Computer Science
COLLEGE // Harvard University
CLASS SIZE // 400 Undergraduate Students
Course Qualities //
- The professor would always start the class with some sort of web joke, so right away he indoctrinated us into the computer programming culture. He showed us funny clips of different people commenting on technology, like a video of some idiot politician talking about how the Internet is a system of tubes.
- The professor kept us always feeling like what we were learning was interesting and applicable. I find that I retain the most information when I’m enjoying it, and the class never felt like a chore.
Optional Challenges »
- For each problem set, there was a regular edition and a hacker edition. So you could do the harder one if you wanted to.
Diversity of Teaching Methods »
- He changed his ways of teaching all the time — from lecturing, to videos, to visualization, to showing us code step by step. He did a good job of building up to the new and difficult concepts. And he would present several programming examples with bugs where he would ask us to debug them in class — to piece by piece figure out what the errors were. When we got to sorting algorithms, he’d bring people to the front of the class and give them large numbers to hold up. Meanwhile, the rest of the class formed algorithms by telling the people in the front to swap places.
Documented for Later »
- His classes were filmed, live streamed, and podcasted. He had lots of office hours after class, and there were virtual office hours online with our 55 teaching fellows. They purchased a cloud for the class so we could all program on the same cloud, so it was super well-organized and orchestrated. The lecture slides, lecture notes, and every program he ever showed us was posted online, with extra links you could learn from. I ended up not needing to take notes because all the information was waiting for me online. We could just sit in class and pay attention — we didn’t have to worry about forgetting.
- Each week, the teaching fellows walked through the problem sets, which was good for beginners like me.
Students Put the Time In »
- Most of the students spent a lot of time talking through the work with their teaching fellows and other students, as well as doing extra research to understand the concepts. It took me 15 to 30 hours a week to complete each problem set. That was the trade off — it wasn’t easy, but we got a lot out of it. And it was fun the whole time.
- The professor started the course by teaching us a fake programming language called Scratch, and taught us basic concepts like if-then and while. From there we did a block programming language where you could arrange physical blocks that worked as if-then, so our first assignment was to make a game out of that.
- One of our problem sets involved using full text files, such as the book “Alice in Wonderland.” We uploaded a dictionary and spell checked those files, and then we competed to see who could program the fastest spell checker!
- One of our group projects required figuring out what a series of ones and zeros represented, and then going on a scavenger hunt. We quickly discovered that the ones and zeros were jpeg files from a camera. So we turned them back into images, and then we ran around campus to figure out where the photos were taken. The team that found all of the locations before any of the other teams won a pizza party!
- The computer science department made “Harvard Computer Science” shirts and sweatpants, just like the standard Harvard ones that athletes wear. People purchased them and got really into them in a nerdy, cult-like way, and wore them in class.
- Our last project involved using a Google Maps API. We had to design a program that worked as follows: Someone would type a location into Google Maps, the program would zoom in there, and the five most populated cities within the map view would come up with a red marker. Then, the program would download the RSS feed from Google News to post the ten most relevant articles for each of those five cities. It was cool that introductory programming students were taught to program within Google Maps.
- A playful professor and 55 teaching fellows for 400 students.
- Diverse teaching methods.
- Challenging problem sets were always available, but optional.
- It was crucial to devote time to the problem sets outside of class in order to learn the concepts.
- Some of the projects were driven by friendly competition and prizes.
- The large class received lectures all together and then broke up into small groups led by energetic teaching fellows.
- There were lots of office hours, in person and online.
- Projects were contemporary and relevant to everyday life.
- Most students were engaged and motivated.
- The class developed a nerdy cult-like feeling and had fun.
Interviewer: Cloe Shasha
Photo Credit: Lois Parshley