The Department of Computer Science & Engineering
CSE 111 :
Fall 2004


(This is a living document; the latest version will always be available on the Web at: )

Last Update: 22 November 2004

Note: NEW or UPDATED material is highlighted

Index: Other Relevant Links:
  • Course Description
  • Homepage
  • Prerequisites
  • Directory of Documents
  • Staff
  • Email Archive
  • Class Meetings
  • Texts
  • Important Dates & Tentative Schedule
  • Reading
  • Course Requirements
  • Homeworks
  • Email
  • How to Study
  • Grading
  • Incompletes
  • Academic Integrity
  • Classroom Disruptions



    ******* Admitted CSE/CEN majors should NOT enroll in this course. *******



    Lecture Rapaport 325488 MWF 12:00 noon - 12:50 p.m. Knox 109
    Lab L1Mukherjee466137Mon8:00 a.m. - 8:50 a.m.Capen 201A
    Lab L6Guruprasannaraj348601Mon10:00 a.m. - 10:50 a.m.Capen 201A
    Lab L3Mindolin356612Tue8:00 a.m. - 8:50 a.m.Capen 201A
    Lab L4Guruprasannaraj091010Tue11:00 a.m. - 11:50 a.m.Capen 201A
    Lab L2Mindolin168794Wed9:00 a.m. - 9:50 a.m. Baldy 206
    Lab L5Mukherjee042715Thu11:00 a.m. - 11:50 a.m. Baldy 206

    NOTE: Labs begin the week of September 6


    1. Hillis, Daniel (1998), The Pattern on the Stone: The Simple Ideas that Make Computers Work (New York: Basic Books).

    2. Pattis, Richard E.; Roberts, Jim; & Stehlik, Mark (1995), Karel the Robot: A Gentle Introduction to the Art of Programming, Second Edition (New York: John Wiley & Sons).


    Note: UPDATED I have adjusted some of the information below to reflect what we actually did in class, rather than on what I had hoped to do:-)

    M Aug 30 Introduction Hillis, pp. vii-xi, 1-6
    W Sep 1 Introduction:
  • What is computer science?
  • What is an algorithm?
  • Hillis, pp. 6-16
    F   3
  • What is a computer?
    4 Great Ideas of CS
    Great Idea I: Binary Representation
  • Hillis, pp. 16-28
    M   6 Labor Day: NO CLASS  
    W   8 Binary Numerals Hillis, pp. 28-38
    F   10 Binary arithmetic;
    Hillis, pp. 39-50
    W   15 Binary representation of sound;
    Physical interpretation of binary codes
    Do the first 2 pages of:

    Waner & Costenoble 2001:
    [Page 1] [Page 2]

    Wintergerst & Zschornak 2001:
    [Page 1] [Page 2]

    F   17 Physical interp'n of bin. codes (cont'd);
    Binary rep'n of meaning:
  • Propositional logic
  • Read 1 or more of the links on
    Propositional and Boolean Logic
    M   20 Propositional logic: Truth tables

    "Turing Machines" [PDF]
    W   22 Truth tables (cont'd);
    Do we really only compute with numbers?
    no new reading
    F   24 Great Idea II: Turing Machines
    (at last!)
    no new reading,
    but continue studying
    the TM article assigned
    on Sep 20.
    W Oct 13 Review for Midterm Exam  
    F   15 ***** MIDTERM EXAM *****  
    M   18 Great Idea III:
    Boehm & Jacopini's Theorem
    Karel, pp. 1-11
    W   20 Review of Midterm Exam Karel, pp. 11-24
    F   22 Last R date

    Karel the Robot
    (algorithmic problem solving)

    Karel, pp. 25-34
    M   25 Karel (cont'd) Karel, pp. 34-43
    W   27 Karel (cont'd) Karel, pp. 43-53
    F   29 Karel (cont'd) Karel, pp. 53-63
    M Nov 1 Karel (cont'd) Karel, pp. 65-74
    W   3 Karel (cont'd) Karel, pp. 74-81
    F   5 Karel (cont'd) Karel, pp. 81-91
    M   8 Karel (cont'd) Karel, pp. 93-100
    W   10 Karel (cont'd) Karel, pp. 100-111
    F   12 Karel (cont'd) Karel, pp. 112-120
    M   15 Karel (cont'd) Karel, pp. 121-127
    W   17 Karel (cont'd) Karel, pp. 128-139
    F   19 Karel (cont'd) Karel, pp. 141-145
    M   22 Karel (cont'd) Karel, pp. 145-151
    W   24 Thanksgiving: NO CLASS  
    F   26 Thanksgiving: NO CLASS  
    M   29 NEW Karel (concluded) UPDATED Hillis, Ch. 4:
    TMs & beyond
    W Dec 1 What can't be computed:
    the Halting Problem
    UPDATED Hillis, Ch. 5:
    algorithms vs. heuristics
    F   3 Karel the Robot as a
    Turing machine
    UPDATED Hillis, Ch. 6:
    M   6 Can cognition be computed?
    Artificial Intelligence
    UPDATED Hillis, Ch. 7:
    parallel computation
    W   8 Artificial Intelligence (cont'd) UPDATED Hillis, Ch. 8:
    F   10 Last Class: SUMMARY UPDATED Hillis, Ch. 9:
    computers & brains
    Sat   11 Reading Day  
    Sun   12 Reading Day  
    M   13 Exam Week Begins  
    F   17 *** Final Exam ***
    3:30-6:30 p.m.
    Knox 104
    M   20 Exam Week Ends  



    1. You will be expected to attend all lectures and labs (attendance will be taken in labs and will count towards your final grade), and to complete all readings and assignments on time. There will be regular homework assignments, a midterm exam, and a final exam (during exam week). Taking both the exams is a necessary condition for passing the course.

    2. Homeworks:

      1. All homeworks will be announced in lecture. Therefore, be sure to get a classmate's phone number or email address (for instance, 1 or 2 people sitting next to you in class, whoever they are!), so that you will not miss assignments in the unlikely even that you miss a class.

      2. HW assignments will be of two types:

        1. Some will be of the "paper-and-pencil" variety, to be done at home.

        2. Others will be lab exercises that will involve you in designing algorithms, cod ing them in a programming language, and running, testing, and debugging the programs on the PCs. Lab exercises will normally be done in the labs or public sites on your own time, though some of them may be done in your lab section, and you will have to do the preliminary design of them at home. The programs you will be asked to write will be relatively short and will be chosen to illustrate particular techniques or issues.

        3. You can use your own laptop for much of the work; most of the software is freely downloadable from the Web. Besides your lab, PCs are available in Baldy 210, UGL, SEL, Lockwood, and perhaps elsewhere. (For many applications, you can also use UBUnix machines directly, if you know how.) For a complete listing of public sites, see the "CIT Public Computing" webpage.

      3. The purposes of homeworks are:

        • to give you hands-on experience with relatively small problems and to give you hands-on experience in designing, coding, testing, debugging, and documenting programs
        • to give you practice in applying the concepts covered in the course
        • to give you a chance to assess the level of your understanding

      4. There will be approximately 1 HW each week. Some of them may be time-consuming (but fun, I hope!). You should plan to spend at least an hour or two each week at the computer.

      5. Late Policy:

        Due dates will be announced in lecture when the homework is assigned. HWs will be collected at the start of lecture on the due date. This is so that the homework can be discussed in the class period when it is due.

        If they are turned in after the start of lecture, your grade will be discounted by one full letter grade (e.g., A becomes B, A- becomes B-, etc.).

        If they are turned in after the start of the next lecture, your grade will be discounted by two full letter grades (e.g., A becomes C, A- becomes C-, etc.).

        If you turn in a HW after the start of the class after that, your grade will be discounted by three full letter grades (e.g., A becomes D, etc.).

        No HWs will be accepted after that.

      6. Put your full name, date, and your lab (L1, L2, etc.) at the top right-hand side of each page, and secure all pages with a staple in the top left-hand corner.

      7. Note: The lowest homework grade will be dropped; you should assume that you will fail to turn in one homework (oversleep, get stuck in traffic, etc.)--that's the one that will be dropped. If you know now that you will regularly be late, see me to make alternative arrangements for turning in your work. Your graded HW will be returned in lab. Occasional extra assignments or quizzes from lab can be used to replace low HW grades, at your TA's discretion.

    3. There will be other assignments and quizzes in labs.

    4. Email list:

      You will automatically be placed on an email list (a "listserv") for the course. If you do not normally read email at the email address that UB has as your official address, please either do so for this course, or else have your mail forwarded. I will use this list as my main means of communicating with you out of class, and you can use it to communicate with the rest of us.

      You may send questions and comments that are of general interest to the entire class using the listserv: Just send them to:

      You can also send email just to me, at:

      In any case, be sure to fill in the subject line, beginning with "CSE 111:" so that my mailer doesn't think it's spam.

      If you send email to me that I deem to be of general interest, I will feel free to remail it anonymously to the email list along with my reply unless you explicitly tell me otherwise.

      I will archive the emails at

    5. Just as you cannot expect to learn how to drive a car by reading about it or by watching other people do it, the same holds true for doing computer science. Do your work on time--this is one course you simply cannot cram for at the last minute, so don't even try! I cannot stress this strongly enough. Homeworks and lab exercises may be fairly time-consuming, so please consider your other commitments, and plan your time accordingly.

    6. You should notify Prof. Rapaport within the first two weeks of class if you have a disability which would make it difficult to carry out course work as outlined (requiring note-takers, readers, extended test time, etc.).


    For general advice on how to study for any course, see my web page,
    "How to Study".


    All graded work will receive a letter grade, 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', or 'F'. Your course grade will be calculated as a weighted average of all letter grades according to the following weights:

    Labs & HWs
    (including attendance, homeworks, quizzes, etc.)
    33 1/3%
    Midterm Exam33 1/3%
    Final Exam33 1/3%

    For further information on my philosophy of grading, see my web document on "Grading Principles"


    It is University policy that a grade of Incomplete is to be given only when a small amount of work or a single exam is missed due to circumstances beyond the student's control, and that student is otherwise doing passing work. I will follow this policy strictly! Thus, you should assume that I will not give incompletes :-)

    Any incompletes that I might give, in a lapse of judgment :-), will have to be made up by the end of the Spring 2005 semester. This is one semester SOONER than the default university policy.

    For more information on Incomplete policies, see the web page, "Incompletes".


    While it is acceptable to discuss general approaches with your fellow students, the work you turn in must be your own. It is the policy of this department that any violation of academic integrity will result in an F for the course, that all departmental financial support including teaching assistanceship, research assistanceship, or scholarships be terminated, that notification of this action be placed in the student's confidential departmental record, and that the student be permanently ineligible for future departmental financial support. If you have any problems doing the assignments, consult Prof. Rapaport. Please be sure to read the webpage, "Academic Integrity: Policies and Procedures", which spells out all the details of this, and related, policies.

    In large classes (such as this), students have been known to be disruptive, either to the instructor or to fellow students. The university's policies on this topic, both how the instructor should respond and how students should behave, may be found in the document
    "Obstruction or Disruption in the Classroom - Policies". (Also here.)

    Copyright © 2004 by William J. Rapaport (
    file: 111F04/syl-2004-11-22.html