Computer Science I: Problem-Solving and Abstraction

CMPU-101 Section 51 -- Syllabus / Course Wiki

Our course syllabus is subject to update throughout the semester.

Professor: Jenny Walter
Office: OLB 124
Office Hours: Tue & Thu 10am to noon, Mon 4 to 5 pm (and by appointment)
Phone: 437 7449
Email: walter at cs dot vassar dot edu
Lectures: Tue/Thu 12:00-1:15pm, OLB 105
Labs: Fri 12:00-1:30pm, Intro Lab

Textbook and Other Readings

Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, MIT Press, 2001, available online (see the HtDP (the Text) link on left sidebar of course web page) and in the bookstore (recommended, not required).

Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, 2e, available online (see the HtDP/2e link on left sidebar of course web page).

Felleisen, Findler, Fisler, Flatt, Krishnamurthi How to Design Worlds, available online (see the HtDW link on left sidebar of course web page).

Overview

This course is an introduction to computing and programming. Its major goal is to introduce students to the principles of systematic problem solving through programming and algorithmic development.

The course does not assume any prior programming experience. It is therefore suitable for freshmen, majors, and non-majors who wish to explore the intellectual ideas of the computer science discipline.

The title of this course is Computer Science I, but the subtitle—and essence—of this course concerns problem solving and abstraction. This course encourages students to develop a mental checklist in the form of a series of Design Recipes that are applied to fit specific data sets. These recipes help develop fundamental data abstraction and problem solving skills. We will write programs in a series of student learning languages based on subsets of Scheme, a modern, functional programming language. You will find that our textbook, programming languages, and programming environment were developed by the same group of computing professionals, to provide an overall integrated learning environment.

Prerequisites

The course assumes a basic familiarity with arithmetic, algebra, and web browsers. It demands curiosity, self-discipline, and some amount of people skills, because all computer scientists end up working with others interactively all the time, in disciplines across the sciences and humanities.

Computing Environment

We will use DrScheme v4.2.3 (or the most recent version, when and if it becomes available), a programming environment for the Scheme programming language. For CMPU-101, we will use the HtDP teaching languages plus teachpacks. DrScheme is installed on the computers in our labs. It is also freely available on the Web (see the DrScheme IDE link on the left sidebar of the course web page) because you probably will want to install it on your own computer.

DrScheme runs on most popular platforms (Windows 2000/XP/Vista, Mac OS X, Linux, and other *nixes). Programs written in DrScheme have the same behavior on all platforms. You therefore do not need to worry what kind of machine you use when you run DrScheme programs.

Attendance

We are a community of learners, but we must be present to help one another. You provide a unique and valuable contribution to every class. The questions you ask help everyone understand the course material. Missing class deprives the entire class of your insights and understanding. So, please notify me before any classes or labs you know you will miss. Part of your grade (5%) is based on participation, and you must be present to participate (visits during office hours also count toward class participation). Excessive absences tend to hurt one’s overall performance in this class.

Advice

This course is designated as a Quantitative Course, satisfying one of Vassar’s three requirements for graduation, along with the Freshmen Writing Seminar and the foreign language proficiency requirement. This course will challenge you to think abstractly, analytically, and logically–as would any other designated Quantitative Course.

So here’s some advice: Keep up with the reading and assignments. Topics tend to build on one another. Missing one lecture may prevent you from fully understanding the next, which may prevent you from completing a lab or assignment, and so on (you get the idea). Do your best to attend every lecture. Make arrangements with a classmate to copy material you miss when you can’t attend, and don’t hesitate to ask me questions whenever they arise. Visit your professor during office hours–I like to know how you feel about course material and I really want you to enjoy the class.

Coursework

Lectures

The lectures will be used to present new material, at times augmented by handouts. Most lectures will use live programming sessions to analyze and test the concepts being presented. Program code from these sessions will typically be posted on the course web page shortly after class. The material covered each week will build on what was covered in prior weeks. As such, it is essential that you attend every lecture (and keep up with the reading assignments).

Labs

This course has weekly lab sessions held in the Asprey Computer Lab in OLB 112. These computers use the Linux operating system and have the DrScheme software that we will be using throughout the semester. Even if you have the DrScheme software installed on your own computer, you must do your lab work in the lab on one of the lab computers during the lab time. Each lab session should be viewed as a warm-up to prepare you for that week’s forthcoming assignment. There is nothing to turn in or submit for a lab session. Instead, when you are finished, simply ask the professor (or lab coach) to verify that you have done the work and he/she will record your grade on a scale from 0 (no work) to 3 (well done). You are responsible for printing and saving your lab work for use on exams.

Assignments

Writing a program to solve a problem is in many ways analogous to writing an essay. In fact, both acts share the notion of composition and involve a problem-solving process. Therefore, just as you would in other classes, in this class you should strive to write readable programs. Writing unorganized, hard-to-read code will earn you a similar grade to that you would receive for writing unorganized, hard-to-read essays in an English class.

To assess your understanding of the topics presented in this course, there will be weekly written or programming assignments. Late assignments will be penalized unless a valid excuse is presented or arrangements are made before the due date.

  • In this course, collaboration is not allowed on assignments or exams.
  • However, you are encouraged to work in pairs on the labs.

Assignments will be submitted both in paper form and electronically.

Exams

There will be two midterms (dates already tentatively set, see table below), and a final exam (during the regularly scheduled final exam period). At the instructor’s discretion, the exams will either be given open-notes, in-class or in a take-home format.

If you are unable to take the exam on the date scheduled, it is your responsibility to notify the instructor in advance to make other arrangements.

Grading

Your final grade for the course will be calculated according to the following distribution of coursework:

50% Weekly Assignments
10% Weekly Labs
5% Class Participation (including office visits)
10% Midterm 1 (Fri, Feb 19 and Mon, Feb 22) IN LAB
10% Midterm 2 (Fri, April 16 and Mon, April 19) IN LAB
15% Monday, May 17, 1:00pm-3:00pm OLB 105

Note: Although higher numerical scores will necessarily receive higher grades, I do not feel bound to follow the frequently used 90/80/70/60 cut-offs. Pluses or minuses may be added at my discretion.

Academic Integrity

Please don’t cheat. Read Originality and Attribution: A guide for student writers at Vassar College. Since this course is concerned with composition, the guidelines that apply to writing in general, apply equally to the writing of computer programs. Copying someone else’s code without attribution amounts to plagiarism. So give proper attribution for the help you receive. School policy dictates instructors must report all suspected incidents of cheating to their department chair. Did you read the previous sentence? Please don’t put yourself or your professor in that position. When in doubt, ask your professor or a coach before seeking any help from another source.

Students with disabilities

Academic accommodations are available for students with disabilities who are registered with the Office of Disability and Support Services. Students in need of disability accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course which have been approved by the Office of Disability and Support Services, as indicated in your DSS accommodation letter.

courses/cs101-201001/top.txt · Last modified: 2010/04/29 14:13 by walter
VCCS Top Events Extended Site Search Login Vassar Science Web Vassar Home Driven by DokuWiki Valid XHTML 1.0