| Section | Class times | Mid-term exam | Final exam |
| CSCI161B Intro to Comp Sci | _MT__F_ 1300-1350 TH374 ____T__ 1300-1350 TH409(lab) |
Mon, Mar 10 | Mon, May 12, 12:00-14:00 |
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. Satisfies the Mathematical Approaches and the Mathematical Reasoning core requirement.
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.
You are encouraged to pay special attention to the chapter Summary with its "Terms introduced..." and "Concept summary".
Besides the traditional exams and quizes, your grade will be based on two major components: exercises you do in the lab or on your own, and programs which you write and submit for 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".) Spelling, grammar, and style count.
| Programming assignments | 35% |
| Exercises | 20% |
| Final exam | 20% |
| Mid-term exam | 15% |
| Pop quizes | 5% |
| Attendence&participation | 5% |
The department provides peer tutoring for Mathematics and Computer Science. The Computer Science tutors are available in the Thompson 409 lab in early evenings five days a week. This class will meet approximately one day a week (usually Thursday) in the Thompson 409 lab to work on current assignments. I will be available most hours of most weekdays and I have scheduled time Sunday evenings to help with assignments.
This is only an overview of the course sequence & schedule. More dynamic content such as notes, discussions, etc., will be found on the class' Moodle page.
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.
That'll be a strong hint to me that I've not taken sufficient
care in explaining something, so I should back-up a bit and
figure out where you (and likely others) got lost.
"Exercises" refer to small tasks, generally listed in the textbook, which are intended to build your mastery of the material. They are generally completed in a lab session. "Assignments" are larger tasks which call upon your understanding of the material. Time is reserved in the lab for you to work on them, but it's likely you'll have to spend additional time to complete them.
Exercises are generally due at the end of the lab session.
Assignments are generally due on Monday morning. This allows time for you to meet with tutors throughout the week, and work on Thursday and optional Sunday lab sessions.
Details of exercises and assignments will be posted, and grades will be recorded on Moodle. Moodle allows you to resubmit assignments, where the later submission overrides the earlier submission. This means you can keep submitting work in progress and I can grade the last version submitted, even if you got stuck on some part of the problem.
Except as noted, the assignments should be submitted in the form of a ZIP file which contains all the files necessary to run your code. The file name should be formed from your login name and the assignment due date, e.g. jhancock17760704.zip.
CSCI161C/index.html
was last edited by
Randolph Bentson, on
2008/03/06T12:52:44-08:00
This course syllabus is a work in progress, so be sure to visit again in the near future.