CS 201-001 FALL 2008
ACCELERATED INTRODUCTION TO COMPUTER SCIENCE
LECTURE Monday/Friday 10-11:15 Stuart Building 113
LAB Wednesday 10-11:15 Stuart Building 112E or F
COURSE  INFORMATION & SYLLABUS


Instructor: Matthew Bauer matthew.bauer@iit.edu; Office Hours:Monday/Friday 8-9:55am; Office:237B SB; 312-567-5148; (fax)312-567-5067; mailbox in CS dept(235-236 SB);  www.cs.iit.edu/~cs201

TAs (office hours in 108SB): Sirotzke, Daniel dsirotzk@iit.edu Cunningham, Ryan rcunn87@gmail.com

Textbook: Java 6 Illuminated, Julie Anderson, Hervé Franceschi; Jones and Barlett Publishers; ISBN 9780763749637

Computing Resources: The java compiler of choice is Sun’s Java SE Development Kit (JDK) 6 downloadable from: http://java.sun.com/javase/downloads/index.jsp (Download JDK 6 for your system). You can either just use command line compiling/debugging/executing, or either of the following development environments (all three methods will be shown in class). For details on downloading and installing Java and Eclipse see Download Instructions.

Current Catalog Description: Problem-solving and design using an object-oriented programming language. Introduces a variety of problem solving techniques, algorithms, and data structures in object-oriented programming. Prerequisites: CS105 or CS 115 or experience using any programming language . (3-2-4)

Course Goals: Students should be able to:

  1. Analyze and explain the behavior of simple programs involving the following fundamental programming constructs: assignment, I/O (including file I/O), selection, iteration, methods
  2. Write a program that uses each of the following fundamental programming constructs: assignment, I/O (including file I/O), selection, iteration, methods
  3. Break a problem into logical pieces that can be solved (programmed) independently.
  4. Develop, and analyze, algorithms for solving simple problems.
  5. Use a suitable programming language, and development environment, to implement, test, and debug algorithms for solving simple problems.
  6. Write programs that use each of the following data structures (and describe how they are represented in memory): strings, arrays
  7. Explain the basics of the concept of recursion.
  8. Write, test, and debug simple recursive functions and procedures.
  9. Explain and apply object-oriented design and testing involving the following concepts: data abstraction, encapsulation, information hiding, inheritance, polymorphism
  10. Use a development environment to design, code, test, and debug simple programs, including multi-file source projects, in an object-oriented programming language.
  11. Implement basic error handling
  12. Solve problems by creating and using sequential search, binary search, and quadratic sorting algorithms (selection, insertion)
  13. Determine the time complexity of simple algorithms.
  14. Apply appropriate problem-solving strategies
  15. Use APIs (Application Programmer Interfaces) and design/program APIs

Lectures: Meetings consist of lecture, discussion, problem solving, presentation of lab solutions and exams. Pre-reading of the textbook and regular class attendance is essential and students are expected to be prepared and to actively participate in class activities.

Laboratories: The labs are designed to assist you in developing a more concrete understanding of the concepts introduced in lecture. You are required to attend each lab session.

Assignments: Labs (around 13 total)-20% Project-10% Exam1-20% Exam2-20% Exam3-30%
A=90-100 B=80-89 C=70-79 D=60-69 E=0-59  NO LATE LABS ACCEPTED! NO EXTRA CREDIT!
Failure to attend class and participate in class discussions may result in a lowering your final grade by one letter grade. Also, the instructor reserves the right to fail any student that receives a failing score on any exam regardless of the scores on the other assignments.

Ethics: Any behavior on any homework or exam that could be considered copying or cheating will result in an immediate zero on the assignment for all parties involved, failure in the class, and notification of the Dean's Office.

Communication is critical to the success and satisfaction of the learning experience. Please take advantage of myself, my posted office hours, e-mail and phone numbers to communicate any class issues with me.

Date Topic Chapters Assignment
8/22 Introduction to Programming, Java Basics 1.4-1.7, 2 placement exam 
8/25
8/29
Introduction to Programming, Java Basics
Using Classes
1.4-1.7, 2
3
Lab 1 
9/1
9/5
No Class
Using Classes
 
3
Lab 2 
9/8
9/12
User Defined Classes
User Defined Classes
7
7
Lab 3 
9/15
9/19
Flow of Control - Selection
Flow of Control - Selection
5
5
Lab 4
9/22
9/26
Flow of Control - Looping
Flow of Control - Looping
6
6
Lab 5 
9/29
10/3
Review for Exam #1
Object-Oriented SW Engineering
handouts
EXAM #1 Wed 10/1 
10/6
10/10
Arrays
Arrays
8
8
Lab 6
10/13
10/17
Arrays
No Class
8
 
Lab 7
10/20
10/24
ArrayList Class
Exceptions and I/O
9.7
11 
Lab 8
10/27
10/31
Review for Exam #2
Inheritance, Polymorphism, Interfaces
 
10 
EXAM #2 Wed 10/29
11/3
11/7
Inheritance, Polymorphism, Interfaces
Inheritance, Polymorphism, Interfaces
10
10
Lab 9
11/10
11/14
Inheritance, Polymorphism, Interfaces
Inheritance, Polymorphism, Interfaces
10
10
Lab 10
11/17
11/21
Recursion
Recursion
13
13
Lab 11
11/24
11/28
Recursion
No Class
13
Lab 12
12/1
12/5
Complexity, Big-O
Review for Exam #3
  Lab 13
Final
Week
EXAM #3   EXAM #3

Copyright Matthew Bauer, CS, Illinois Institute of Technology