CS 101: Survey of Computer Science

General Information

   Professor:       Tom Whaley 
   Office:          Science Center Parmly 406
   Office Phone:    458-8813
   Course web page:	http://home.wlu.edu/~whaleyt/classes/101

   Lecture: MWF 1:25-2:20  Parmly 405

   Lab:  W 2:30-5:35 Parmly 405
   Textbook:   Guzdial and Ericson, 
               Introduction to Computing and Programming in Python
					A Multimedia Approach
  Office Hours:  MWF  10:00 - 11:00 a.m. and by appointment 

Brief Overview

The main goal of this course is to give the student a broad overview of the discipline of computer science. We do this by providing an introduction to four or five major areas of computer science. This term we are going to experiment with a different approach in which we use the context of multimedia for an arena in which to study topics of computer science. It is important to understand that most of the concepts apply equally well in a huge variety of contexts.

We begin with the notion of an algorithm, which is a step by step method for solving a general class of problems. We'll learn how to express simple algorithms in an actual programming language - Python. In the laboratory, we actually write and test such programs.

Once we have mastered the basics of Python programming, we'll see how to apply programming to a variety of multimedia types - text, pictures, sounds, movies (if time permits), and web pages.

Along the way, we'll focus on ways in which data is encoded and stored for computer usage - how are the various media types (including programs themselves) stored in a computer?

Other possible topics include the following:

An investigation of the basic circuits from which computer components are made: You will learn an algorithm for designing simple circuits and will learn the function and workings of the major internal components of the computer. Laboratories allow you to design and test example circuits.

An investigation of the low-level operations of a computer: We study the low level instructions that a computer can execute. To do this, we focus on a very simple, hypothetical computer. We look at its instruction set, how these instructions are carried out in the hardware, and how simple programs can be written at this level. The labs involve writing and testing short machine language and assembly language programs. The simulator used in the lab allows execution of these programs in a step by step mode allowing you to observe what is happening inside the computer at each step.

A study of the applied area of databases: This will involve learning the very basics of databasedesign and database query language. Classroom demonstrations will show how the database can be accessed via the web. This will give you a basic understanding of the underlying technologies of electronic commerce.

An introduction to XML, a markup language for sharing data: This will include applications of XML, perhaps with Google Maps.


The written work for the course will consist of

Note: All labs must be completed with passing grade in order to pass the course.

The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69 D+; 63-66 D; 60-62 D-; below 60 F.


It is very important that you attend class. There will be considerable information given in class that is not available elsewhere. At times, I will give a preview of the lab and the use of the lab software in class.

Honor System

Unless stated otherwise, the exams will be done without books or notes and without assistance from other people. You may work with one other person on the homework assignments, but this should be acknowledged on your paper. Lab work should be done individually unless stated otherwise.


Classroom Operation

It is important that you ask a question when something is not clear to you. I will always try to treat your questions with respect. In other words, there are no dumb questions. Actually, the chances are that other students have the same question. If we cannot handle the question quickly in class, I’ll work with you out of class either during office hours or by appointment.

Most of my lectures will involve Powerpoint presentations. These presentations will be linked from the course web page; so, you will not need to copy down everything from the slides. If I forget to link a presentation, please give me a call or send an email.

Out of respect for me and your classmates, please be on time and avoid leaving the classroom during the lectures.

Please turn in your assignments on time, done in a neat and readable fashion. I’ll try to always get your work graded and returned in a timely fashion.


Very, Very Tentative Schedule of Lectures and Labs






Sept. 6
Week 1


Course Introduction
Definition of CS

Sept. 13
Week 2

Python Assignment

Python Functions
Python If Statement

Programming Lab 1 ???
Sept. 20
Week 3
Python While Statement While Programming Lab 2

Lists in Python

Sept. 27
Week 4
Python For Statement Binary Representations Programming Lab 3
Oct. 4
Week 5
Computer Memory

Making a Web Page

Exam 1
Oct. 11
Week 6
Color Representation BMP Picture Files Exploring BMP Pictures Reading Days
Oct. 18
Week 7

Programming with Pictures

Pictures Picture Programming Lab 1
Oct. 25
Week 8
Pictures Pictures Picture Programming Lab 2 Representing Sounds
Nov. 1
Week 9
Programming with Sounds


Sound Programming Lab 1

Exam 2
Nov. 8
Week 10
Sounds Sounds Sound Programming Lab 2 Representing Text
Nov. 15
Week 11
Programming with Text Text Text Programming Lab
Representing Movies
Nov. 29
Week 12
Programming with Movies Movies Movie Programming
Dec. 6
Week 13
Exam 3 XML XML Lab Wrap Up




Cold Exams