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 Science Center T Lab: Section 1: Th 9:05-12:10 Science Center Parmly 405 Section 2: Th 2:30-5:35 Science Center Parmly 405
Textbook: Schneider and Gersting,
An Invitation to Computer Science, 3rd Ed.
Thompson (Java Version).
Lambert and Whaley
An Invitation to Computer Science
Laboratory Manual , 2nd Edition
Thompson (Java Version).
Office Hours: MWF 10:00 - 11:00 a.m. and by appointment
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.
We begin with the notion of an algorithm, which is a step by step method for solving a general class of problems. We learn first how to express algorithms in pseudocode, an informal kind of language. Then we learn how to convert the informal versions of algorithms into an actual programming language - Python. In the laboratory, we actually write and test such programs. Next we study some of the important algorithms of computer science and learn how computer scientists classify algorithms according to their efficiencies. Laboratories make use of animations of some algorithms and allow the student to apply classroom theory to predict run times for certain algorithms.
Next we investigate 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.
Further insight into the low-level operations of a computer are gained by studying 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.
The final topic in this course is usually one of particular interest to the faculty member teaching the course. This term we will study the applied area of databases along with their access from the world wide web. This will involve very basic introductions to HTML for web page markup, databases 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.
As time permits, there will be an introduction of 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.
You should always attend the lab section for which you are enrolled. Make prior arrangements with me if there are extenuating circumstances.
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.
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.
|
Monday |
Wednesday |
Lab |
Friday |
| Sept. 7 Week 1 |
Course Introduction |
Algorithms |
||
| Sept. 14 Week 2 |
Python Assignment |
Python If Statements (Review Pseudocode If statement) |
Python Lab 1 | Python While Statements (Review Pseudocode While statement) |
| Sept. 21 Week 3 |
While Statements | Algorithms Searching (2.3.2-2.3.3) |
Python Lab 2 | Simple Lists |
| Sept. 28 Week 4 |
Lists in Python | Algorithms Searching in Python |
Labs 2,3 Search for value Search for largest |
Algorithms Sorting (3.3.3 just the algorithm) |
| Oct. 5 Week 5 |
Algorithms Quicksort |
Exam 1 |
Lab 4 |
Algorithms Efficiency (Chapter 3, efficiency) |
| Oct. 12 Week 6 |
Algorithms Efficiency |
Algorithms Efficiency Scatter Plots |
Reading Days | Reading Days |
| Oct. 19 Week 7 |
Logic circuits |
Logic circuits Boolean Algebra (4.2.4,4.3.2,4.4.1) |
Lab 6 Sort timing |
Logic circuits Design algorithm (4.4.2) |
| Oct. 26 Week 8 |
Binary numbers (4.2.1 positive numbers and ASCII) |
Binary numbers (4.2.1 negative whole numbers) |
Labs 7,8 Logic circuits |
Logic circuits Comparison, adding, control circuits (4.4.3, 4.5) |
| Nov. 2 Week 9 |
HTML Web pages |
Exam 2 |
HTML |
von Neumann machine (5.1-5.2.1) |
| Nov. 9 Week 10 |
von Neumann machine (5.2.3,5.2.4,5.3) |
Assembly language (6.3.1,6.3.2) |
Lab 9 von Neumann machine |
Assembly language (6.3.3) |
| Nov. 16 Week 11 |
Assembly language |
Introduction to databases (13.3.1) |
Lab 10 Assembly Language |
Introduction to databases (13.3.2) |
| Nov. 30 Week 12 |
SQL Database query language |
SQL Database query language |
Lab 19 - Part 1 SQL |
Special Topic |
| Dec. 7 Week 13 |
Special Topic | Exam 3 | Lab 19 - Part 2 SQL |
Wrap Up |