CSC151
Schedule
Readings
Labs
Search
About the Course
CSC 151
Functional Problem Solving with Scheme
What questions about the course do you have that are not answered by the web site?
What language will be most frequently used in this class and what other places is it used?
We'll be using a programming language called Scheme, with some special extensions for MediaScripting. Scheme is primarily a pedagogical language, but it's more full-powered parent is LISP, which was designed for AI experiments. While I do know of Scheme being used at a company to effectively run massively parallel medical robotics (think test tube trays), its functional brethren are also used to run phone switches and other critical applications.
Also, very generally how does a programming language work from a hardware perspective?
The courses CSC161 (Imperative Problem Solving) and CSC211 (Computer Architecture) deal with this in great detail. At its core, the hardware itself understands a very simple, basic programming language (called machine language). High level instructions (akin to the "circles" smiley-drawing group) like the ones you will write are translated into these more basic instructions, which are often much lengthier (much like those of the simple motions group). Yet another program (or algorithm) is responsible for this translation process. This is very much the subjet of CS362 (Compilers).
In your estimation, how much time do the most successful students spend on this class?
That depends entirely on how you define successful. My definition is one who learns to appreciate the process of solving problems computationally and algorithmically. That may not mean one is always successful or efficient at that endeavor, but to know and understand what it entails is a great accomplishment. I ask students to spend no more than four hours on exams, and I expect most assignments to take 2-3 hours, with some assistance from collaborators and tutors. However, this assumes that you've been diligent in asking questions in class and keeping up with all the lab exercises (perhaps an hour per class session).
How frequently will we write up a lab?
I expect about once a week, on average. Though you should generally try to complete them and always record your work as you completed, just as though you were going to write it up. These will serve as very valuable references for exams and later studying.
What if there is something that doesn't click in my mind during our class discussions?
If you know you have a question at that point, please do ask! If you don't realize it until later, please ask me or a tutor about it.
How accessible is our mentor? Is there specific hours?
Ms. Alabi is available for assistance during our class meetings. Outside of this, there are other trained student tutors available most evenings in SCI 3815, the open lab.
Can I ask questions that may be obvious to some?
Yes, please. Chances are always good that multiple people have the same question. If I feel it's not on topic or may best be illuminated by the hands-on lab work, I'll let you know.
It makes sense to me that this course is taught in a collaborative workshop style. Is introductory computer science ever taught with a more lecture-based, non-workshop method?
Not at Grinnell! We in the Computer Science department are passionate believers in this mode of pedagogy.
Will you curve the grades if student scores are sufficiently low at the end of the semester?
Generally no. I have other mechanisms in place if an individual homework assignment or exam problem(s) are particularly problematic.
Jerod Weinman
Created 19 January 2010