Syllabus

CS-171: Spring 2003

Home
Syllabus
Schedule
Assignments
Contact Information

Course Details at a Glance

Lectures: Mon., Wed., Thurs., Fri., 8:30 - 9:20 a.m., Olin 217
Instructor: Thomas C. Bressoud, Olin 207, 587-5630, bressoud@denison.edu
Handouts: Hardcopies: In-class or at my office
Exam Code A, Monday, May 5th, 9:00 - 11:00 a.m.

Description

The Denison computer science curriculum begins with a fundamental assumption that, to be a successful computer scientist or software engineer, you must begin with a foundation that includes good programming skills.  Thus, one of the first goals of this course is for you to learn a new programming language.  Java has been selected as the introductory computer language of choice for the reasons of cross-platform ubiquity, relative simplicity, and strong object orientation as the principal programming model.  So you will learn the syntax and semantics of Java.  This is much like learning to speak a foreign language with very restrictive syntax and vocabulary.  The key to learning the language is by practicing as much as possible.

The other reason to focus on a programming language in the introductory computer science curriculum is to use it as a means to develop problem solving skills.  At its core, computer science is about the algorithms used to solve problems.  And learning to translate a real-world problem into a precise, specific, realizable set of steps (or algorithm) is exactly the type of skill that extensive practice with a programming language will allow us to develop.

In addition to the programming language of Java itself, the course will provide an introduction to some of the breadth of computer science, including computer hardware, operating systems, data representation, and some rudimentary algorithm analysis.  More detail on the specific topics to be covered can be found in the outline below, or by looking at the course schedule.

This iteration of the course will be something of an experiment, in that we will be using some non-traditional tools for the course.  The first tool that is different is the primary textbook itself.  The text consists of a multimedia-based e-text, which will provide the students the ability to play/replay the provided lessons as often as they like and at their own pace.  The e-text will be utilized both in the classroom as well as for out-of-class activities.  As the e-text will be used to convey much of the material, the time in class will be less lecture-centric.  Instead, we will use class time both to reinforce important concepts, as well as to provide considerable lab time for working with lab exercises, and getting individual time and help from the instructor.

Textbooks

The following textbook is required for the course:

bulletDavid Gries and Paul Gries.  ProgramLive: Master Java Programming in a Dynamic, Self-Paced Learning Environment, John Wiley and Sons, Inc., 2002.  ISBN 0-471-44158-9.

The following is a supplementary (optional) text, so that you may have an introductory Java text that is not e-text based.

bullet

Cay Horstmann. Computing Concepts with Java Essentials, 3rd Edition, Wiley and Sons, Inc., 2003. ISBN: 0-471-24371-X.

You will also need to bring/buy a set of headphones for use of the e-text in the classroom.

Course Web Page

A web page will be maintained for this course.  The web page will include reading, homework exercises, and project assignments, scheduling of events (including midterms) and other useful information.  Please check it regularly:

http://www.denison.edu/~bressoud/cs171-s03/

Final Grade Determination

Exercises: 30%
Midterm Tests: 30% (10% each)
Final Exam: 25%
Project: 10%
Class Participation: 5%

Course Work

Exercises/Homework:
There will be homework exercises at least once a week and sometimes twice a week.  These will not be weighted equally, as many of the lab-oriented exercises will be a quick check of answering the questions in the ProgramLive companion workbook.  Others will be full-fledged programming assignments, wherein you will write increasingly larger and more complex Java programs.  And a few will be written exercises so that you can demonstrate your mastery of the conceptual issues and to prepare you for the types of questions that might appear on the tests.  Homeworks are due in class on the date specified. This semester, I am going to try my new Russian roulette late policy.  For each day (whether class is held or not, and including weekends) an assignment is late, an additional 10% will be deducted from your score. So if an assignment is due on Wednesday, and you turn it in on Friday, and your raw score on the assignment is 85%, you would receive a 68 (85 - 0.20 * 85).  The roulette part is that, if I grade and turn back the homeworks from the other class members, or if I pass out an answer key prior to your turning in a late homework, then you get a 0 on the assignment.  In practice, a class day or two will probably be safe.

You may discuss homework problems with other students in the class, but written work must be your own. In other words, you may talk generally about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may not get help on homework from students outside the class. Of course, you are always welcome to come see me for help.

If your handwriting is illegible, I reserve the right to request that your homework be typed into a word processing program.  If you know that your handwriting is difficult to read, you may want to proactively prepare your non-programming homework exercises in Word or another word processor.

 
Projects:

By the end of the term, you will be proficient enough in programming that I will be assigning a more ambitious final project.  This will entail a project definition, implementation, and documentation.  More details will be given later in the semester.

Exams:

There will be three midterm tests as well as a final exam.  Each midterm will cover its respective quarter of the course material. Note that the midterm tests are not cumulative. The final will be cumulative and cover material from the entire semester, but I would expect a greater weight given to the material from the last portion of the class.  All exams will be closed book, closed notes.

Class Participation:

In general, we would like everyone to do their part to make this an enjoyable interactive experience (one-way communication is a much poorer way to learn). Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc. Note that there is a significant portion of your grade attributed to class participation.  Any day that you do not attend class, you (by definition) do not participate, and so be very careful about missing class, as it will affect your grade.

Student Responsibilities

Attendance:
Your attendance is expected at each class meeting. Per the class participation portion of the grade, I reserve the right to take into account attendance in instances of borderline grade assignments. Of course, excused absences (sickness, family emergencies, athletic) will not be held against you.
Readings:
You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class, whether or not you are present. If you must miss a class, be sure to check with me or another student to get what you missed. Exams will be given in class on the day scheduled and may not be made up.

Other Issues

Disability Accommodation:
Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss your specific needs. I rely on the Office of Academic Support in Doane 104 to verify the need for accommodation based on documentation on file in their office.
Academic Integrity:
Do your own individual homeworks and projects. Do NOT copy from another person. There should be no reason for two nearly identical assignments. Usually a warning will be given first and then an incident of academic fraud will be reported for subsequent incidents.

Course Outline

Week Description
1 Introduction to Programming; Aspects and overview of hardware and software; Initial introduction to objects, classes, methods, and parameters.  Also initial introduction to the tools of the ProgramLive EText and the BlueJ Integrated Development Environment (IDE).
2 Class definitions: fields, constructors, and methods.  Cover variables and basic types, primitive expressions, assignment, and sequences of statements.  Depending on pace, we might also look at conditionals here.  All done within the context of customizing existing methods.  Also depending on pace, cover output from a method.
3 Conditionals in more detail.  More on variables, including state-maintaining instance variables.  User input and basic Strings.  Object types.  Object interaction.
4 First midterm.  As time permits, also cover abstraction, modularization, and debugging techniques
5 Designing your own classes.  Static variables and methods.  String methods.  Method main.
6 Data types in earnest.  Operators and more advanced expressions.  Parameter passing.
7 Graphical User Interfaces and Event Programming
8 Second midterm.  Reinforce GUI and Event programming.  Applet coverage.
9 Program design, methodical programming, Specification.  Begin collections.
10 Collections continued and Loop constructs.
11 Third midterm.  Begin searching techniques.
12 Searching continued.  Exception handling. 
13 Sorting.  Project definition.  Some File I/O.
14 Project.  Some material on Threads if time permits.

 

Home | Syllabus | Schedule | Assignments | Contact Information

 All rights reserved, Thomas C. Bressoud and Denison University
For problems or questions regarding this web contact bressoud@denison.edu.
Last updated: 01/10/03.