CPSC 201: Introduction to Computer Science

 

Instructor: Carsten Schürmann
Department of Computer Science
Yale University
Time: MWF 11:30-12:20
Room: AKW200

  Home
  Schedule
  Handouts
  Assignments
  Projects
  Links
 
 

News

Finals: All finals a graded. If you want to see how you did, stop by my office.

The final exam is today, Wednesday 5/8/2002, 2:00pm, in Becton, CO31. It is a three hours exam.

Review session by Brad, today, Tuesday 5/7/2002, 9:00pm, Koffee Too.

Review session by Brad, today, Monday 5/6/2002, 3:30pm, AKW400.

The results of the Connect4 tournament are out. Congratulations Xin and Jeremy. Consult the summary page for further information.

Assignment 7 is out. It is due Wednesday 4/24/2002, midnight.

They blue print code for the homework in the /c/cs201/lib/code/ass6/fun.sml did not treat the scientific notation right. It is fixed now. Real.toString can convert expressions of the form "1.4E~6", so you should not have to write any code. Make sure to lex "scientific" before "signedreal".

I fixed the problem in the code for lecture 28. The right grammar rules should allow expressions of the form "(1+3)*(1+4)" to be parsed. The right grammar rule is E ::- ( E ) E' , and the implementation reflects this now.

The results of the busy beaver competition are out. We congratulate Xin and James.

Assignment 6 is out. It is due Wednesday 4/10/2002, midnight.

We still need a notetaker needed. You can make 9$ an hour. If you want to make some money on the side by taking notes in class, please see me or send me mail. Thanks.

Some students ask me for an extension of the homework. I do not want to give a general extension. I am however willing to help you out if you have midterms, travel ... on a case by case basis. Just send me email justifying why you need an extension and for how long.

I have updated the homework.

Appendix to the homework. Here is a busy beaver Turing program that has only three states, uses an alphabet of only two characters, and generates a tape with 6 ones on it. Under these assumption, this is in fact "the busy beaver" program. Also the program will be tested on a deterministic Turing machine.

Notetaker needed. If you want to make some money on the side by taking notes in class, please see me. Thanks.

Assignment 5 is out. It is due Friday 3/8/2002,

Brad Rosen will hold a review sesssion, tonight 2/28/02, at Koffee Too, York street.

The old practice midterm from last semester is online (don't be surprised, it is in Scheme.)

Assignment 4 is out. It is due Wednesday 2/27/2002, at the beginning of lecture. This is a non-programming assignment. It should give you a feel of what may be on the midterm. The best thing to do is to study for the midterm which will be Friday 3/1/2002. Then do the assignment.

On short notice, we have been bumped of AKW200 to AKW500 today. Just for today.

Please note that the hints on the assignments are really only hints. If you have a better solution then suggested by the hints, fantastic. Hand it in.

The sessions are meeting today and tomorrow. The TA will go over problems that are similar to the homework assignment. If you have difficulties with the class, it might be a good idea to attend.

A refined version of the homeworks assignment is out. It contains much more detail and more hints than the previous version.

Assignment 3 is out. It is due Wednesday 2/20/2002, midnight.

Comments on Homework 2: Problem 2. For representing the negative integers, use explicit sign representation, 1-complement, or 2-complement. Also, for the floating point numbers use 2 bytes, and follow the layout from the book (1 bit, 9 bit mantissa, 1 bit exponent sign, 5 bit exponent.)

Don't forget: Recitation session are taking place Thursday and Friday. The TA's will explain stuff on the homework assignment. Don't miss it.

The midterm is scheduled for March 1, 2002 (in class, 50 minutes, closed books), the final takes place May 8, 2002 (in class, 3 hours, closed books).

Solution 1 are also out.

Assignment 2 is out. It is due Monday 2/11/2002, midnight.

Another comment: Problem 1 is simplified. Don't check for full house.

Comment to homework 1: Don't bother to type in your proof for problem 3. Just write it up, and hand it in person, or drop it off in my mailbox.

I have composed a file with a few functions for Problem Number 2, about the Roman Numerals. digitToString = RomanDigit -> string and numberToString = RomanNumber -> string convert Roman digits, and Roman numbers to strings, respectively, and vice versa, charToDigit: char -> RomanDigit and stringToNumber : string -> RomanNumber convert strings into RomanNumbers and RomanDigits, respectively. You can use these function to test your code. Note, that your functions should not return strings, they should return RomanDigit and RomanNumbers, respectively.

There was a typo in Homework 1. It is fixed now. The type of RomanNumber was not correctly defined.

Teaching staff, Office hours, Recitation.
Office Hours Recitation
Carsten Schürmann Monday, 1:30pm - 2pm, AKW309
Wednesday, 1:30pm - 2pm, AKW309
or by appointment.
Jatin Shah Tuesday, 7pm - 9pm, AKW402
or by appointment.
Thursday, 4:00-4:50, AKW500
Brad Rosen Monday, 7pm - 12pm, Zoo
or by appointment.
Friday, 2:30-3:20, AKW400

Classroom change: We have moved to AKW200 starting tomorrow 1/25.

Homework 1 is out. It is due a week from today.

Homeworks are due at midnight.

There are problems with submitting homework solutions. If you are unable to succeed, send me your solution by email to carsten@cs.yale.edu.

A guide about Using the Zoo Workstations.

No class, Monday, January 21. (Martin Luther King day)

Homework 0 is out.

This year, CPSC 201 is taught in ML. As programming environment we will be using SML/NJ. More information about this programming language is soon available from the handouts section of this wepage [handouts].

Textbooks

The following textbooks are required:
  • Robert Harper, Programming in Standard ML (Working Draft).
  • David Harel, Algorithmics: The Spirit of Computing. (Should be available at the Yale Bookstore).
  • Michael Schneider and Judith Gersting. An Invitation to Computer Science, Java Version. (Should be available at the Yale Bookstore in a few days).
Optional reading:
  • Lawrence Paulson, ML for the working programmer.
  • Jeffrey Ullman, Elements of ML programming.

Other Resources

SML
The SML/NJ basis library manual can be found here. It summarizes the functionality built into SML/NJ.
Web page
The course web page is at http://zoo.cs.yale.edu/classes/cs201. It contains various useful materials (including this syllabus) and will be updated regularly
.
Logical and physical access to the Zoo
The Zoo is a collection of computers located on the 3rd floor of AKW at the front of the building. You will need a course account on the Zoo to submit homework after the first assignment. Sign up for a CS 201 course account on the Zoo using the on-line signup procedure at http://zoo.cs.yale.edu/accounts.html. There will be help sessions on using the Zoo during the first week of classes. A Zoo tutorial will be distributed in class and is available on-line from the handouts section of the course web page: [Handouts]. For after-hours and weekend physical access to the Zoo machines, you will need to get your ID validated by signing up in class or at 009 AKW.
Course directory
The course directory, /c/cs201 is accessible from your Zoo course account. It contains copies of handouts, including homework assignments in machine-readable form.
Newsgroup
The newsgroup for the course is yale.cs.cs201.

Course Requirements

The course requirements consist of (more-or-less) weekly programming assignments in ML and occasional written homework, a midterm, and a final examination, which takes place some day after reading week. Plan on spending between 6-8 hours per week on the course outside of class. The programming assignments are an integral part of the course.

Please don't leave the homework to the last minute. You will be more efficient, learn more, have more chance to get help, and generally be calmer and happier if you do the associated reading first and start the programming or other problems early. Note that overcrowding in the Zoo, broken printers, etc. are not unheard of the night before an assignment is due, and will not be accepted as excuses for late homework.

Grading

The final grade in the course will be based on your performance on the programming assignments and other homeworks (50%), the midterm and the final examination (50%).

Late Policy

Late work without a Dean's excuse will be assessed a penalty of 5 points per day, based on the day and time recorded by the electronic submit program. If you have a Dean's excuse, making up missed work may involve alternative assignments, at the discretion of the instructor; please check with the instructor in this case.

Policy on Working Together

Unless otherwise specified, the homework assignments are your individual responsibility. Plagiarism is a violation of University rules and will not be tolerated. You must neither copy work from others nor allow your own work to be copied.

You are encouraged to ask others for help with the computers and Unix, with questions about ML, general questions about the concepts and material of the course, or with casual questions about your program, but if you need more extensive help with a program or other assignment, please ask a TA or the instructor for assistance. Working in groups to solve homework problems is not permitted in this course. Please talk to the instructor if you have any questions about this policy.

Teaching Staff

Office Hours Recitation
Carsten Schürmann Monday, 1:30pm - 2pm, AKW309
Wednesday, 1:30pm - 2pm, AKW309
or by appointment.
Jatin Shah Tuesday, 7pm - 9pm, AKW402
or by appointment.
Thursday, 4:00-4:50, AKW400
Brad Rosen Monday, 7pm - 12pm, Zoo
or by appointment.
Friday, 2:30-3:20, AKW500