UNIVERSITY OF MAINE DEPARTMENT OF COMPUTER SCIENCE
COS 140: FOUNDATIONS OF COMPUTER SCIENCE

SYLLABUS

Fall 2007

(A PDF version of this is also available.)



Professor:

Roy M. Turner
Office hours: : TTh: 11-12
Office phone: 207-581-3909
E-mail: rmt@umcs.maine.edu
Teaching Assistant: Larry Whitsel
TA E-mail: lwhitsel@adelphia.net

Textbook:

A textbook is currently being written for this course, and chapters may be handed out as they are completed. The bookstore has bound handouts of the slides used in lectures. You should purchase a copy of the handouts as soon as possible.

ADA Notice:

If you wish to request an accommodation for a disability, please contact either your instructor or Ann Smith, Director for Students with Disabilities (East Annex, 581-2319) as early as possible in the term.

Overview:

This course is an unusual introduction to computer science--so unusual that there is no textbook available. Usually, introductory computer science courses are programming courses. Although programming is an essential skill for a computer scientist, computer science is much broader (and much more intellectually rich and exciting) than programming. Consequently, students can easily complete the first year or more of a computer science program and have little idea of what their major will entail--or whether or not they have found a good match.

Several of us in the Computer Science Department at the University of Maine thought it was important to develop an introduction to computer science course that would truly introduce the field. Programming will not be taught, nor is it a prerequisite for this course. Instead, this semester we will look at several areas of computer science that focus on creating usable computing platforms.

In addition to introducing you to the field, we would like to introduce you to what the major will be like. So, instead of giving a high-level survey of each area studied, after a brief overview of each area, you will study a selection of techniques in depth. This should give you an idea of the types of problems computer scientists address and how they approach these problems.

We will ask a lot of you in terms of work outside of class. (Expect an average of 6 hours of work outside of class each week if you are an average student who would like to get a C in the course.) However, this reflects the workload in other courses in the computer science major--and we are hoping that you will be engaged enough by the course material that the work will be exciting.

I am excited about having the opportunity to teach this course, and I expect us all to have a fun and intellectually challenging semester!

Objectives:

Students will be introduced to the field of computer science by becoming familiar with techniques from several areas in the field. Specifically, students will:



Attendance:

Students are expected to attend all classes and will be responsible for material covered during classes or portions of classes which they miss. This material includes both course content and announcements that may be made during class. Asking the instructor or fellow classmates for missed material is a good place to start, and I'm sure we will all do our best to let you know what went on in class. However, the ultimate responsibility lies with the student who missed the class, not with those whom he or she has asked for missed material.

Class attendance will not enter directly into the calculation of your grade. Even so, attendance will almost certainly affect your grade. Since there is no textbook for the class, it is important that you attend lectures so that you have the proper context for the notes on your handouts. Class attendance will also give you an opportunity to ask questions about technical material, to have your voice heard in discussions about policies and procedures for the class, and to meet other students to form study groups for outside of class time.

If you know ahead of time that you will miss a class when homework is due, you must turn the homework in before class or have someone else bring it to class for you. If you must miss a class because of a real emergency, you should turn in the homework as soon as possible, but you are on your honor not to look at or discuss the solutions with anyone before your homework is turned in. If you miss turning in more than one homework assignment due to an emergency, special arrangements must be made.

If you miss class on the day of an exam, you may not be able to make up the exam unless you have made prior arrangements or there has been an (usually documented) emergency. If you have transportation problems or oversleep, you should come to class immediately to begin taking the exam. If you do not arrive before the end of class, you should come to my office immediately. Neither transportation problems nor oversleeping constitute an emergency.

Recitations:

You should sign up for one of the recitation sections that accompany this course. Recitations will be used for asking questions of the TA, getting help on homework from him, etc. You should plan on attending recitation if you have questions about the material or homework. Even if you don't have questions, you should consider attending, as questions that others have might help you to understand the material even better.

Grades and Grading:


Homework: 30%
Prelim I: 20%
Prelim II: 20%
Comprehensive Final: 30%
A: 90-100
B: 80-89
C: 70-79
D: 60-69
F: below 60

There can be extenuating circumstances that cause deviations from the grading scheme described above. However, this is only done when it will raise the student's grade.

The following is a description of grades taken from the Handbook for the Faculty of Instruction University of Maine at Orono.


The A Grade - The A grade indicates top quality work. It is definite encouragement to the advanced student that he or she is potentially a very good prospect for graduate work insofar as ability to master material, but not necessarily to pursue research, is concerned. A is given to students who excel in many ways in meeting the course objectives.

The B Grade - The B grade indicates that the student has excelled in meeting the course objectives in some way, such as exhibiting superior insight into and mastery of the material or taking the initiative in going beyond what the instructor suggests for satisfactory work. A student should find it necessary to achieve a B rather than merely to receive it as an average student. B is a grade for students who stand out above those in the C group. B means that the student's work is particularly commendable and praiseworthy.

The C Grade - The C grade is a respectable grade for any undergraduate student in any course. It implies that the student has been successful in meeting the course objectives. It implies approval by the University of the student's progress toward graduation. It represents a satisfactory level of work for both non-major and major students.

The D Grade - The D grade represents low-level passing work for any undergraduate student. It should warn the student that he or she will be unlikely to achieve success in the next course of a sequence unless greater effort is forthcoming. D indicates that the course objectives have been poorly met as a result of lack of work or insufficient ability. The D grade warns the student that unsatisfactory progress is being made toward a college degree. The D grade is a failing grade for graduate students.

The F Grade - The F grade is a failing grade.


Contacting Us:

The easiest way to contact us is by e-mail. Though the easiest, e-mail is often not the best way to communicate. E-mail is best when you want to give us a message that requires no response or a short response, or when you have a straightforward question requiring a short response. For example, e-mail is a good way to set up an appointment for a face-to-face chat or to find out the date that an exam will be given.

If you have a question about the content of the course, a homework problem, or some other technical question, you should come to office hours. Office hours are held by both me and the TA. Even if you think it is a ``quick question,'' it usually requires a face-to-face conversation to have these sorts of questions answered. Often a conversation will be quick, where e-mail will just be confusing. So, please come to office hours with these sorts of questions. Note that if you cannot make it to our offices during office hours, you can make an appointment for some other time.

Late Policy:

Homework is due at the beginning of class on the due date. Because we may discuss solutions to the homework during class, no homework can be turned in late. If you miss class, make sure that you turn your homework in before class or have someone else turn it in for you during class. Even if you feel you could do better, make sure that you turn in whatever you have completed for your homework assignment. If there is some compelling reason for your homework being late, you should talk to us about it as soon as possible.

Homework, Group Work and Cheating:

Different courses are taught in different ways, and different instructors are trying to achieve different things by giving homework. So, the policy for homework in this course may be quite different from the policy in another course (even a course with the same instructor). If an instructor does not tell you his or her policy for working with others, you should always ask before you work with others.

The homework in this class is meant to give students an opportunity to wrestle with the material on specific problems so that they can gain a better understanding. To reach this end, we would encourage students to work in groups on the homework assignments to help each other understand the material. However, group work is only acceptable under the following conditions:

Working in groups to better understand the material is encouraged for this course; cheating will not be tolerated. It is cheating to try to get credit for work that you did not actively participate in or to not give credit to others who also contributed to that work.

Professor Absences:

Occasionally, I may have to miss class. If this should happen, then either the TA or another professor will teach that day, or I will, if needed, schedule a make-up class.

Tentative Schedule:


  Part I: Introduction
9/5 Introduction to course and surveys
9/7 Computer science, programming, and what we will cover
  Part II: Digital Logic
9/10 Digital logic introduction
9/12 Boolean algebra
9/14 Circuits from functions
9/17 Karnaugh maps
9/19 Adders
9/21 Registers
9/24 Review of digital logic
  Part III: Architecture
9/26 Architecture introduction
9/28 Daisy chaining
10/1 RAID
10/3 Booth's algorithm
10/5 CPU organization and assembly language
10/8 FALL BREAK
10/10 Review of architecture; review for Prelim I
10/12 PRELIM I
  Part IV: Programming Languages
10/15 Programming languages introduction
10/17 Variables and primitive data types
10/19 Review Prelim I
10/22 Conditionals, control structures, and subroutines
10/24 Backus Naur Form (BNF)
10/26 Review of programming languages
  Part V: Operating Systems
10/29 Operating systems introduction
10/31 Semaphores
11/2 Translation lookaside buffers
11/5 Banker's Algorithm
11/7 Review of operating systems; review for Prelim II
11/9 PRELIM II
  Part VI: Networks
11/12 Networks introduction
11/14 ALOHA protocols
11/16 Hamming codes
11/19 Review of Prelim II
11/21 THANKSGIVING
11/23 THANKSGIVING
11/26 Privacy on the Internet
11/28 Review of networks
  Part VII: Other Computer Science Areas
11/30 Software engineering
12/3 Artificial intelligence
12/5 Computer graphics and computer science theory
12/7 Databases, distributed systems, other areas
12/10 TBA
12/12 Wrap up: What's next in Computer Science
12/14 Wrap up: Evaluations and surveys



Roy M. Turner
2007-08-28