SYLLABUS
Fall 2007
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!
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.
|
|
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.
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.
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.
| 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 |