Reaction for: Harvey Mudd College by Danah

Basic Course Info

Taught in Java using UNIX. No lectures, only recitations and labs. First few lecturs are about history of programming, computers and Java.

Nice things outside of assignment

Their webpage has "lessons" that have code inside them. All of the code is runnable from the website and is just basic info to test everything (loops, conditionals, baic syntax). One of the nicest thing about this is that it would show off what people could do early on (like how to use System.out.println!). This would be outright amazing for students.

Not-so nice things

Nothing is graphical. The first three assignments are about printing things out and getting in input. The rest are still about input/output.

Things to steal

Although I expected to find awe inspiring replacements for programs, etc., I found something totally different! First, let me explain what is there. Throughout the website, there are small programs. The students are asked to do programs that print something out, programs that add numbers, etc. Although I cannot imagine replacing our programs with these, a little light went off in my head. Why not use these simple programs to allow people to get used to different concepts in syntax and programming (ie: loops).

So here is my stealing idea. Each week, put a new program on the web for students to do. Each program should take no time at all. In fact, they should be 10 minute programs for the students. A concept is explained above the program and they have to do the small program and turn it in. TAs would test functionality and send the students an email with their grade (5 points for working, 0 for not). TAs would grade them as they came in and turned them back with quick feedback. Effectively, they would be graded on effort/functionality.

The idea behind this would be to allow the students to get a feel for a non-graphical interaction as well as to teach them SIMPLE syntax. These mini-programs would end long before Tetris.

With that in mind, here are some suggested programs:

Basically, use the VERY traditional approach to allow people to write itsy programs and see how to use things. It may seem as though the idea is ridiculously simple but I think that it would be helpful for students to see what is going on in something simple (particularly ones who had never seen this before).

Now, the only problem would be that we never teach math or integers or anything like that until very late in the semester. What are the benefits/downfalls of explaining that earlier on? Would students catch on to things as easily as I think they would? [Maybe simple sample code should also be handed out.]

In addition, I suggest that we put tons of small sample code (with runnables) up for the students to play with. Non-graphical things as well as graphical.

Problems as I see it

So, teaching input/output has a few problems. For example, is ugly as are more of the classes. How could we get around those? The only possibility would be to create wrappers. Even then, we would need to teach booleans, math, etc. What are the philosophies behind not teaching that? Would that be problematic (too much information at once, confusion for students, letting the advanced students go back to old ways).

A sample thought

Silly Premise

I am soo not that funny. Hire humor TAs.

Concepts Covered


The idea behind this program is to show you that not everything is large and beautiful like most CS15 programs. In some cases, you want to create miniscule programs (ie: to do small tests). This program should take you very little time. The idea is just to introduce you to something different. The regular programs should be much more fun!

Here is some information about math libraries. (Ugg! thoughts...)

Here is some information about the main function (I don't know if I know much about this except how to use it!) and the difference between an application and an applet.

Here is an example of input and another of output (how to get around try/catch blocks without obscene amounts of support code or if statements? Should this wait until if statements are taught?)

Assignment Specifications

Tell the user a short story. Ask for at least two pieces of information (in different forms). Use the math libraries to manipulate at lease one of the inputs and tell the users something different.

A sample run could be:

>Hello and welcome to my conversion program!  
>What is your name?
>Hello Danah!  
>What is the temperature right now (in degrees Fahrenheit)
>Danah, it is -12.2 degrees Celcius!

Back to you..

Yes, this simple program looks very much like what CS15 does not teach. I agree with 15's philosophy but I think that there is also advantages to such a text philosophy. Teaching it in the summer of '97 certainly helped me when doing other classes. Programs this "basic" could be rather beneficial, especially if they are not the focus of the course. Again, we are dealing with personal opinion.

So, those are my thoughts. Does anyone agree / disagree?

Other People's Reactions