University of Puget Sound - Fall 2007
CSci161 Introduction to Computer Science

Class Periods and Exam Schedule
Section Class times Mid-term exam Final exam
CSCI161C
Intro to Comp Sci
_M___F_ 1500-1550 TH374
__T_T__ 1530-1620 TH374
Oct 19 Wed, Dec 19, 16:00-18:00

Catalog description

This course is an introduction to computer science and programming. The programming language Java is used to illustrate concepts in computer science. The course emphasizes the use of the computer as a problem solving tool and the development of good programming style. CSci 161 is the introductory course for students planning to major or minor in computer science. Satisifes the Mathematical Approaches and the Mathematical Reasoning core requirement.

What we're really going to study:

Computer science is not (just) programming. For that matter, programming is but a small part of computer science. But it is very difficult to do computer science without programming. That's why we start to learn computer science by learning to program.

Computer science, among other things, involves the creation of algorithms (well described sets of operations which generate the desired results) to effectively solve problems. These algorithms are best described using a programming language which presents the algorithm in an unambiguous manner to both programmers and the computer.

Java is a very powerful programming language with a rich feature set. It has the fundamental characteristics of a large number of modern, high-level languages, with features especially designed to hide non-essential details from the casual reader, thus reducing the information overload which is another cause of errors.

We shall study how programs are developed from the simplest constructs, and then learn how advanced language features capture good programming style and make it easier to design and implement complex systems.

Textbook

Objects First with Java: A Practical Introduction Using BlueJ David J. Barnes and Michael Kölling, Pearson Education, 2006. ISBN 0-13-197629-X

Other worthwhile reading:

Other Resources

Tutoring

more to follow

Lecture Schedule and Notes

On the nature of changing specifications:

It was once remarked that a design wasn't frozen so much as it was becoming ever hardening slush.

In much the same way the content of this class is not fixed. The above schedule is an approximation, but the emphasis of the lectures1 may change in response to your questions. I may not always find the best explanation or example for you, so if you don't understand something, ask questions. It's not always obvious how things work, and sometimes the obvious is wrong, so experiment. You are responsible to get as much out of this class as you can!
1 Lectures can be deadly boring. Class periods can be much more interesting if they become discussion periods. I encourage interaction. If you're totally overwhelmed, call out MEGO.

Assignments

Grades are recorded at moodle.

When submitted by email to rbentson@ups.edu, the subject line should start with CSci161, followed by the due date, e.g., 2007-09-07

Grading

Programming is not just about writing syntatically correct programs which compute the correct results. It is also about writing commentary and other documentation which will help others understand what you're doing. (This matches one of the University goals which emphasizes "the ability to communicate clearly and effectively".) Therefore you will also be expected to write clearly. Spelling, grammar, and style count.

Final grades will be based on the following components:

Mid-term exam15%
Final exam25%
Programming assignments30%
Exercises25%
Attendence&participation5%

CSCI161C/index.html was last edited by Randolph Bentson, on 2007-12-10T21-46-53-0800
This course syllabus is a work in progress, so be sure to visit again in the near future.

Valid HTML 4.01 Strict Valid CSS!