Some general questions.
December 6th, 2007These are questions really about the next incarnation of the class: you’ll of course be able to put in comments in the teaching evals, but I had my own questions:
- I want to introduce a programming element into the class, and came up with a couple of ideas
- one programming question in each assignment
- one full assignment with purely programming questions (probably towards the end of the semester)
- a project (in lieu or in addition to a final) that would involve programming (some kind of web demo/algorithm comparison etc)
Which of these do you think would be most useful ? Moreover, what languages are you comfortable programming in. A web demo is probably limited to Java/Flash, but other assignments could be in other forms.
- I know of suggestions you’ve made about topics to be covered. How about topics we *did* cover ? Was the distribution of time/progression of material to your liking, or are there things you’d change (”remove this”, “spend more time on that” etc).
December 11th, 2007 at 10:54 pm
Prof. Suresh, one suggestion for improvement is the final exam style. This test was really gruelling. This should also have been done in the Midterm style with some choice. Also, some questions would best have been asked in assignments, where we have more time (>4 days) to think and may be learn some math, without so much heat from other exams. Hope you find this useful.
December 11th, 2007 at 10:56 pm
Duly noted. thanks for the feedback.
December 12th, 2007 at 6:54 pm
I’ve always really liked projects, and something team-based (maybe with presentations) would seem very beneficial for this class. That way, if some team is really interested in sorting (for a simple example) they might show the details of different sorting algorithms beyond big-oh complexity (for example often you’re given an almost sorted list so different algorithms work better with certain inputs, or for small n constants matter, etc).
I think anything that can be demoed would be cool, limiting it to web-demos only seems to knock out a lot of power that the other languages have.
As far as what we did cover, I really liked the demos shown in class (the day we were in 3147). It seemed like the randomized algorithms portion was a little rushed - I would have liked to spend more time on that, because I think it’s the part of the course I now understand the least (admittedly that might just be because I associate it with the PCP stuff).
As far as my comments as to the final…I really liked how we could answer sub problems independently (answering 1.b without answering 1.a, etc.). I didn’t like how much it differed from the homework. It seemed like the HW problems were all along the lines of “here’s a problem, what’s an algorithm that would solve it?” whereas the test had “here’s an algorithm, analyze the smeg out of it”. (I do realize that this format is what allowed the independent answering, but hey - double edged sword).
Going back to programmin’, one advantage of having programing problems for each assignment is that we’d have a better sense as to whether or not we got the question right. If questions were along the lines of “Here’s a problem, here’s what your input looks like, here’s what you output should look like, and here’re some examples, go.” (much like the ACM problems) then I think that would be cool. A problem is (and maybe (although I’m really hoping not) this is just me) whenever there’s coding involved it takes a lot longer due to debugging.
December 12th, 2007 at 7:06 pm
I think there’s a fairly strong sentiment towards incorporating programming in a systematic way throughout the class, and I think the one thing I’ll try to change for next time is to throw in a reasonable programming element.
Z brought a number of interesting ACM programming competition problems to my attention, and I think that’s a good source of material. They also have a nice infrastructure for submitting and evaluating code.