CSE 111 SYLLABUS

UNIVERSITY AT BUFFALO - STATE UNIVERSITY OF NEW YORK
The Department of Computer Science & Engineering

CSE 111: GREAT IDEAS IN COMPUTER SCIENCE - Fall 2000 |

# CSE 111: SYLLABUS

(Available on the Web at: `http://www.cse.buffalo.edu/~rapaport/111F00/syl.html` )

#### Last Modified: 24 October 2000

material is highlighted

Index: | Other Relevant Links:
Prerequisites | CSE 111 homepage
Topics | Directory of Documents
Who This Course Is For | newsgroup archive
Staff
Class Meetings
Texts
Important Dates & Tentative Schedule
Reading
Attendance, Homeworks, Lab Exercises, Exams, Newsgroup
Homeworks
How to Study
Grading
Incompletes
Academic Integrity
Classroom Disruptions

#### PREREQUISITES: None.

#### TOPICS:

This course is designed to help satisfy the general-education mathematics skills or mathematical sciences requirement. The themes of the course are "What is computation?" and "What kinds of things are computable?" You will study algorithmic problem solving techniques, and will gain an appreciation for some of the most interesting and significant results of computer science, as well as its intellectual and social significance. The course has both a mathematical and laboratory component. Topics include some or all of: algorithm design, introduction to structured programming, text manipulation, numerical computation, computability, and artificial intelligence.

#### WHO THIS COURSE IS FOR

This course is designed for students with no previous background in computing, so there is no prerequisite for CSE 111. In fact, if you have had some experience in programming a computer (e.g., a high-school course in Basic, Pascal, C, C++, Java, etc.), or if you would eventually like to take more advanced courses in computer science, then you should take CSE 113 (Introduction to Computer Science I) or CSE 115 (Introduction to Computer Science for Majors I) instead of CSE 111. CSE 113 or CSE 115 are the prerequisites for all further computer-science courses, as well as the computer-science major. Students who successfully complete CSE 111 can certainly take CSE 113 in the future.

In short, CSE 111 is NOT for students who want to "learn about computers" WITHOUT programming (because we will be doing some programming in this course), but it is also NOT for students who want to be CSE majors or who really want to learn how to program computers (because we will only be doing a little programming and not learning all there is to know about programming). (If you want to learn about computers without programming, take CSE 101 (Computers: A General Introduction). If you want to learn how to program, take either CSE 113 or CSE 115.)

However, admitted CSE/CEN majors should NOT enroll in this course.

STAFF:

  Professor:
    Dr. William J. Rapaport, 214 Bell Hall, 645-3180 x 112, rapaport@cse.buffalo.edu
    Office Hours: Mondays & Fridays, 1:30 - 2:30 p.m.; and by appointment.

  Teaching Assistants:

    - Mr. Maurice J. Jansen, Trailer B (between Furnas Hall & Ketter Hall), 645-3772, mjjansen@cse.buffalo.edu
      Office Hours: Wednesdays, 10:00 - 10:50 a.m.; Thursdays, 4:00-4:50 p.m.; and by appointment.

    - Ms. Tatiana Mihaylova, 247 Bell Hall, 645-3180x143, tmihaylo@cse.buffalo.edu
      Office Hours: Tuesdays, 11:00 a.m. - 12:00 noon (in Park 143); Fridays, 1:00-2:00 p.m. (in Trailer E, desk 12); and by appointment.
      Note: Trailer E is between Furnas Hall & Ketter Hall.

    - Mr. Dahai Xu, 404 Furnas Hall, dahaixu@cse.buffalo.edu
      Office Hours: Fridays, 3:00 p.m. - 4:50 p.m., and by appointment.

    - Mr. Zhaohui (Jeff) Zheng, Trailer B (between Furnas Hall & Ketter Hall), zzheng3@cse.buffalo.edu
      Office Hours: Wednesdays & Fridays, 11:00 a.m. - 12 noon; and by appointment.

#### CLASS MEETINGS:

``

  CLASS | INSTRUCTOR | REGIS. NO. | DAYS | HOURS | LOCATION
  --- | --- | --- | --- | --- | ---
  Lecture | Rapaport |  | MWF | 12:00 noon-12:50 p.m. | Knox 110
  Lab L1 | Jansen | 063378 | Mon | 9:00 a.m.-9:50 a.m. | Park 143
  Lab L6 | Jansen | 041101 | Mon | 10:00 a.m.-10:50 a.m. | Park 143
  Lab L3 | Mihaylova | 383820 | Tue | 9:00 a.m.-9:50 a.m. | Park 143
  Lab L4 | Mihaylova | 105313 | Tue | 10:00 a.m.-10:50 a.m. | Park 143
  Lab L2 | Jansen | 037989 | Wed | 9:00 a.m.-9:50 a.m. | Park 143
  Lab L7 | Mihaylova | 166930 | Wed | 11:00 a.m.-11:50 a.m. | Park 143
  Lab L5 | CANCELLED | n/a | Thu | 10:00 a.m.-10:50 a.m. | Park 143
  Lab L8 | Mihaylova | 248371 | Fri | 11:00 a.m.-11:50 a.m. | Park 143

NOTE: Labs begin the week of September 5

TEXTS:

  1. Required:
     Biermann, Alan W. (1997), Great Ideas in Computer Science, Second Edition (Cambridge, MA: MIT Press).

     - Great Ideas in Computer Science (the text) homepage

  2. Recommended:
     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).

  In addition, you may need one or two 3.5-inch, double-density, double-sided disks, which you can purchase in the labs (probably), at the UB Micro store in the Commons, or at the bookstore (or elsewhere). You should probably get disks that are pre-formatted for IBM PCs or Windows.

  #### IMPORTANT DATES & TENTATIVE SCHEDULE:

  | Aug 28-Sep 1 | Intro to course; how to use UB computers; what is CS? | Biermann, Pref & Intro
  Monday | September 4 | Labor Day (no class) |
  TWThFM | September 5-8,11 | First meetings of labs |
  | Sep 5-8 | 3 great insights of CS |
  | Sep 11-15 | Binary arithmetic | Biermann pp. 240-243; (omit p. 241 bot - p. 242 top)
  | Sep 18-25 | Karel the Robot | optional: Karel Chs. 1-5
  | Sep 27-Oct 2 | Programming in Pascal: Decision trees | Biermann Ch. 1
  | Oct 4 - Oct 6 | Programming in Pascal: Text processing | Biermann Ch. 2
  Monday | October 9 | Yom Kippur (no class) |
  Tuesday | October 10 | Monday schedule followed |
  | Oct 10-11 | Text processing (cont'd) | (Biermann Ch. 2)
  Friday | Oct 13 | Review for Mid-Term |
  Monday | October 16 | *** MID-TERM EXAM *** |
  Wednesday | Oct 18 | Review of Mid-Term |
  Friday | October 20 | *** Last day to withdraw with a grade of `R' *** |
  | Oct 20-Nov 6 | Text processing (cont'd) | (Biermann Ch. 2)
  | Nov 8-10 | Computer architecture & assembly-language programming | Biermann Ch. 8
  Friday | November 10 | *** Last R day for 1st-semester undergrads *** |
  | Nov 13 | Assembly-lang. prog'g (cont'd) | (Biermann Ch. 8)
  | Nov 15-20 | Logic & Turing machines | handouts
  W-F | November 22-24 | Thanksgiving (no classes) |
  | Nov 27-29 | Turing machines (cont'd) |
  | Dec 1 | What can be computed? Church-Turing thesis | Biermann pp. 186-187
  | Dec 4 | What can't be computed? Halting problem | optional: Biermann Ch 14
  | Dec 6 | Can computers think?: AI | Biermann pp. 451-453 optional: Biermann Ch 15 (all)
  MTWThF | December 4-8 | Last meetings of labs |
  Friday | Dec 8 | Last lecture; Review for final |
  Mon.-Mon. | December 11-18 | Exam Week (Assume that our FINAL EXAM is the afternoon of the last day) |

  #### READING:

  1. I strongly urge you to read all of Biermann, including those sections that we do not cover in the course. At the very least, you should read the introductory and summary sections of all chapters that we don't cover.

     Although we will cover Karel the Robot in lecture and labs, the book is just for fun reading or further exploration of Karel's capabilities.

  2. Not all assigned readings will be covered in lecture (in lecture, we shall only cover interesting or hard material, plus occasionally material that is not in Biermann), but you are responsible for all assigned material in the text and lectures.

  3. See "How to Read (a Computer Science Text)".

  #### ATTENDANCE, HOMEWORKS, LAB EXERCISES, EXAMS, NEWSGROUP:

  - You will be expected to attend all lectures and labs, and to complete all readings and assignments on time. There will be regular homework assignments, a mid-term exam, and a final exam (during exam week). Taking both the exams is a necessary condition for passing the course.

  - All homeworks will be announced in lecture. Therefore, be sure to get a classmate's phone number (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 event that you miss a class.

  - There may be occasional extra assignments and quizzes in labs.

  - You should subscribe to, and regularly monitor, the newsgroup `sunyab.cse.111`. You may post questions and comments there that are of general interest to the entire class. From time to time, information about homeworks, etc., will be posted to the newsgroups. This newsgroup will be archived in `/projects/rapaport/111F00/news.txt`.

  - 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.

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

  #### HOMEWORKS:

  1. HW assignments will be of two types:

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

     - Others will be lab exercises that will involve you in designing algorithms, coding 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.

     - Besides Park 143, 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" or "Computing Sites, Labs & Classrooms" webpages.

  2. 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

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  #### HOW TO STUDY:

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

  #### GRADING:

  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:

  ``

  Lab Assignments (including attendance, homeworks, quizzes, etc.) | 33 1/3%
  Midterm Exam | 33 1/3%
  Final Exam | 33 1/3%
  Total | 100%

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

  #### Incompletes:

  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 2001 semester. For more information on Incomplete policies, see the web page, "Incompletes".

  #### ACADEMIC INTEGRITY:

  While it is acceptable to discuss general approaches with your fellow students, the work you turn in must be your own. If the work of two or more students appears unjustifiably similar, penalties (ranging from an F in the assignment to an F in the course) will be assessed to all concerned. If you have any problems doing the homeworks or projects, consult the TA or Prof. Rapaport. Also see the webpage, "Academic Integrity: Policies and Procedures"

  #### CLASSROOM DISRUPTIONS:

  In a large class 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 on the webpage Obstruction or Disruption in the Classroom - Policies