600.102: Foundations of Computer Science

Fall Semester 2005: September 8, 2005 - December 12, 2005

Contents

Basics

Catalog Description: A broad introduction to computer science for both majors and technically inclined non-majors. Explores computer science through vignettes of logic and algebra, computer systems, algorithms and data structures, assembly language programming, models of computation, high-level programming languages, software engineering, information theory, and selected applications. Includes regular labs and extensive exercises through which students apply lecture material in practice.

Prerequisite(s): Familiarity with computers; non-majors may want to take 600.101: Computer Fluency before this course.

Academic Honesty: It is your responsibility to adhere to the Department Integrity Code and other applicable university regulations. Feel free to email us your questions or concerns.

Coordinates

Discussion List: cs102-discuss@bloat.org (open discussion, but subscribe here first)
Staff List: cs102-staff@bloat.org (to contact all of us, but only staff can subscribe)
Submit Assignment: cs102-submit@bloat.org (we grade your last submission before the deadline)

Instructor: Peter Fröhlich
Office Hours: Thursday & Friday, 4:00 pm - 5:00 pm
Location: 326 New Engineering Building

Lecture: Monday, Tuesday, Wednesday, 1:00 pm - 2:00 pm
Location: 100 Shaffer Hall

Teaching Assistant: Jonathan Lasko
Office Hours: Tuesday, 3:00 pm; Thursday, 4:00 pm
Location: 225 New Engineering Building

Lab: Tuesday, 10:00 am - 11:00 am
Location: 1 Shaffer Hall

Schedule

Week 1: Introduction and Overview (9/12-9/18)

Lecture:

Lab:

Reading:

Deadlines:

Week 2: Computer Systems I (9/19-9/25)

Lecture:

Lab:

Reading:

Deadlines:

Week 3: Algorithms and Data Structures (9/26-10/2)

Lecture:

Lab:

Reading:

Deadlines:

Week 4: Introduction to Assembly Language (10/3-10/9)

Lecture:

Lab:

Reading:

Deadlines:

Week 5: More Assembly Language Details (10/10-10/16)

Lecture:

Lab:

Reading:

Deadlines:

Week 6: Models of Computation (10/17-10/23)

Lecture:

Lab:

Reading:

Deadlines:

Week 7: Introduction to High-Level Languages (10/24-10/30)

Lecture:

Lab:

Reading:

Deadlines:

Week 8: More High-Level Language Details (10/31-11/6)

Lecture:

Lab:

Reading:

Deadlines:

Week 9: Software Engineering (11/7-11/13)

Lecture:

Lab:

Reading:

Deadlines:

Week 10: Information and Coding Theory (11/14-11/20)

Lecture:

Lab:

Reading:

Deadlines:

Week 11: Applications (11/21-11/27)

Lecture:

Lab:

Deadlines:

Week 12: Applications (11/28-12/4)

Lecture:

Lab:

Deadlines:

Week 13: Applications (12/5-12/11)

Lecture:

Lab:

Reading:

Deadlines:

Week 13+1: Review and Outlook (12/12)

Lecture:

Reading:

Deadlines:

Resources

Books

First the recommended text for the course. I'll frequently make reference to chapters in this one as we go along. Note that the course does not cover everything in the book and that the book does not cover everything in the course. However, I tried very hard to select a book that's a pretty good match.

Next we have the closest competitor to the recommended text. Also a decent match, but if you like this one better, you will have to also match lectures to chapters yourself.

The following book also surveys computer science in a broad way and touches on many of the same topics we will discuss. However, the presentation is slightly more concise and not always at a purely introductory level. You can still get a lot out of it, and I will occasionally point out chapters that contain some deeper results, but you won't be at a disadvantage without the book.

The following book is a classic introduction to computer science (although they don't call it that), well worth attempting after you passed 600.102. It's quite a bit more abstract yet, at the same time, quite a bit more concrete than what we will be doing. Appreciate the Zen-like nature of that statement. :-)

Here are two books on Python, in case you want something more detailed or more permanent than our tutorials. The first is an introductory text designed specifically for beginning programmers. The second is a concise reference, small enough to carry with you just about anywhere.

Related Courses

Miscellaneous

Assessment

Assignments (10): 40%, Midterms (2): 20%, Final (1): 30%, Miscellaneous (unknown number): 10%.

Class Pictures

Students in CS 102, Fall 2005 Final Project CS 102, Fall 2005
Updated: $Id: index.html 125 2005-12-19 06:29:49Z phf $ Validate: XHTML CSS
Copyright © 2005 Peter H. Fröhlich. All rights reserved.