Computer Science 171
Introduction to Computer Science

Denison

Computer Science 171
Introduction to Computer Science
Section 2
Fall 2008


Professor: Tom Wexler Phone: 587-8602
Office: Olin 205 E-mail: wexlert "at" denison.edu
Office Hours: See Fall Schedule Mailbox: Olin 201
Meeting Times: MTWF, 12:30-1:20 Classroom: Olin 217
Final Exam: 12/15/08 2:00 - 4:00pm

Description

CS171 is a one-semester introduction to Computer Science, with an emphasis on designing algorithms and implementing those algorithms using a computer programming language (Java). Since computer science is fundamentally about problem solving, this course will develop your ability to abstract otherwise complex problems and generate elegant and efficient solutions.  These skills will prove applicable not only in subsequent computer science courses but in numerous other fields, both within academia and beyond.

Media computation is the primary vehicle used in CS171 for introducing topics central to Computer Science. As such, you will be introduced to programming and computing ideas through projects in which you manipulate digital images and sounds.  This media-based approach is accessible to majors and non-majors alike, providing not only real-world relevance but also opportunities for creativity.

Topics to be covered include input and output, Boolean logic, image editing, conditionals, loops, strings, arrays, methods, recursion, audio manipulation, classes, searching and sorting.  Projects may include animation, simple ecology simulation, steganography (hiding messages in images), fractal generators, and more.  For more information, see the schedule posted on the course webpage.

Textbooks

The following textbook is required for the course. While the text is not yet published, bound copies are available through the Denison bookstore.

Joan Krone and Thomas C. Bressoud and R. Matthew Kretchmar. Essentials of the Java Programming Language. Denison University. Not yet published.

In addition to the textbook, we will be utilizing a web site that provides practice exercises that have been organized in a manner consistent with our textbook. You will use a web browser to register for our section of the course. Registration costs $25 and is accomplished through the TuringsCraft link given below. The access code for registering for our class section is:

DENISO-1896-0.

TuringsCraft CodeLab registration
TuringsCraft CodeLab login

Working Remotely

In general, I would recommend that you work on your coding assignments from the campus computer labs. However, if you would like to try to set up DrJava to run from a personal machine, you can find tips on doing so here.

Grade Determination

Midterm Tests (6): 25%
Labs and Prelabs (12): 35%
On-line Exercises: 10%
Final Exam: 20%
Class Participation: 10%

Course Work

Midterm and Final Exams

In order to provide frequent feedback on how well you are progressing and mastering the material in this course, we will hold tests every two or three weeks, starting Friday, September 12th. These are explicitly intended to not be high-pressure exams, but to serve to keep everyone on track with frequent assessment opportunities. There will also be a cumulative final exam. All exames are closed book, closed notes, and may not be made up.

Labs and Prelabs

The bulk of the work you hand in will be in the form of labs and prelabs.  Prelab assignments are typically due at the beginning of class on Monday.  These assignments are intended to help you familiarize yourself with the issues and problems you'll encounter in the labs.  Tuesday class is lab time; the course meets at the same time and place, but instead of lecture, you'll be working on assignments while we deal with your questions on an individual basis.  The labs are meant to expose you a variety of interesting problems, give you a chance to be creative, and be fun!

Labs will usually contain both short coding tasks meant to reinforce concepts from class as well as larger problems, often with a focus on media computation (such as animation and image manipulation).  Labs are due at the beginning of the following lab session, and require a substantial amount of time. You are not expected to complete the lab during Tuesday's class, but it is in your interest to make as much progress during that time as possible. 

Most lab work will be done on your own time, and thus it is very important that you allocate sufficient time for them. Late assignments are not accepted, with one exception: each student is allowed a single late submission (but not the final project) over the course of the semester, no questions asked.  If you want to hand in an assignment late, you must tell me so on the day it is due, and you will have one additional week to complete it.

The last two labs will be spent working on a final project, in which you will synthesize the material you have learned throughout the course. The final programming assignment may include more self-definition, and will entail a project design, creation, and a demonstration.

You may discuss programming assignments with other students in the class in terms of how to approach the problem, but the programs must be your own. You may not get help on programs from students outside the class. You may, however, seek out the help of the Computer Science fellows, who will hold regular hours at Olin Hall. In addition, you are always welcome, and in fact strongly encouraged, to come see me for help.

On-line Exercises

In learning to program, you are learning a new language. An extremely important aspect of learning a language is sufficient practice of the lexicon, syntax, and semantics of the language. It is through the mastery of these elements that the ability to write larger programs is born. Thus, an important component of the couse is the set of practice exercises that you will be assigned through the TuringsCraft CodeLab system. These will be due every week, with due dates/times and recording of submission managed by the TuringsCraft system.

Student Responsibilities

Participation and Attendance

In general, we would like everyone to do their part to make this an enjoyable interactive experience. 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. Up to 3 excused absences will be tolerated without affecting your grade. Such absences should be communicated to me in advance.

Readings and In-class Material

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, you are responsible to get what you missed.  You should also regularly check the website for updates or scheduling changes.

It is very important that you keep up with the assigned reading.  Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.

Disability Accomodation

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 reasonable accommodation based on documentation on file in their office.

Academic Integrity

The students and faculty of Denison University and the Department of Matematics and Computer Science are committed to academic integrity and will not tolerate any violation of this principle. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity.

Academic dishonesty is, in most cases, intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations.

As is indicated in Denison’s Student Handbook, available through mydenison.edu, instructors must refer every act of academic dishonesty to the Associate Provost, and violations may result in failure in the course, suspension, or expulsion. (For further information, see http://www.denison.edu/student-affairs/handbook/article7.html.)

Topics

  1. Introduction and Variables
  2. User Input
  3. The Picture Class
  4. Conditionals and Boolean Logic
  5. For and While Loops
  6. Strings
  7. Arrays
  8. Methods
  9. Objects and Classes
  10. Recursion and Fractals
  11. Searching and Sorting
  12. Sound Manipulation

Schedule

A current estimate of the semester's schedule can be found here.

Have a great semester! If you need anything, please let me know.