CISC181-440 -- Fall 03

Introduction To Computer Science

Lecture: Monday/Wednesday 6-7:30PM - Room 229 Purnell
Lab: Wednesday 7:30-9PM - Room 114 Pearson Hall
Prerequisites: CISC105 OR Prior Programming Experience in another high level language (This is IMPORTANT!)

Instructor: Chris Fischer
E-mail: cfischer@cis.udel.edu
Office hours: By Appointment
Web: http://www.cis.udel.edu/~cfischer/

Teaching Assistant: Ankit Bhatt
E-mail: ankits@udel.edu
Office: Pearson 115
Office hours: Tuesdays, 1-3pm


Grades



What to expect in this course:
A LOT of work. This course has to teach both the basic features of the C++ language, many of which the concepts you may know already, and the advanced features (Pointers, Operator Overloading, Classes, Inheritance, Polymorphism..) in one semester. If you're looking for a course to show up to twice a week with minimal outside work, this is not the class for you. This course moves very quickly and has a lot of outside work (labs, homeworks, 3 programming assignments, 3 tests).

You can also expect that I will provide you a LOT of resources to succeed in this course. I will provide as many outside references and sample code as I can. I will also make myself available for questions as much as possible. If possible, reach me by email, during the week. I will usually get back to you very quickly. However, I do have two rules.

  1. I am not here to debug your programs. That is a part of the assignment. Do not email me your program saying "It doesn't work, what's wrong?". However, if you are really stuck, email me the lines in question and the compiler error message and I'll help you out, just please use it as a last resort, not a first.
  2. I get very unsympathetic to questions the night before/day of/after the project due date. They should really be done by then.  I also am unsympthetic towards people that email questions but don't come to class.
Other important points:
You are strongly encouraged to come to class. While I will put some material up on the web, it will be hard to do well in this course without coming to class. Reading the relevant chapters ahead of time is also a good idea.



Course Policies:

Coding conventions: I'm going to cover this in class, but generally, your source code should

Have a comment block at the top of each source file you create, listing the authors name (you), the date, and a description of what is in the file.
Use consistent indentation  Use 3 spaces. DO NOT USE TABS.
Have comments throughout your code, especially where there may be some complicated algorithms or calculations.
Have variable names be descriptive.  With few exceptions, one-letter (such as "x") variable names must be avoided.

Lateness: Assignments are due by the end of class on the date they are due. After that, they lose 10%/day, up to a maximum of 7 days late. Labs can be turned into my or the TA's mailbox, with the DATE and TIME of submission clearly marked on it.  Programming Projects MUST be handed to either myself or the TA.  If you place it in either of our mailboxes, you will receive a ZERO on it.

Academic Dishonesty: DO YOUR OWN WORK. You as specifically NOT permitted to discuss solutions to problems with other students or share code.

I haven't been out of school long enough to forget how rampant cheating is. So before you think about sharing solutions, know this much going in.

  1. I am a professional Software Engineer - I stare at code all day long. I've also TA'ed this course 3 times, so if anyone can spot copied code/cheating, I can.
  2. The tests will have a large amount of the material that comes straight from the homeworks/projects. This will make them fairly easy for students who have completed and understood the projects on there own, and very difficult for those that haven't.


Cheating will be dealt with per University guidelines. I really don't want to waste everyone's time by doing this, but I will. Please do your own work.

Grading Policies: I'm going to grade on the standard curve (>93=A, >90=A-, >87 B+, etc.). This is guaranteed. Depending on class performance or other factors, I might adjust this scale down (to help everyone) I will never adjust it up.
 

Your grade for the semester will be based on:
 
Tests:   50% of final grade
Projects:   30% of final grade
Labs + Homeworks   20% of final grade

Class participation can positively affect a borderline grade. 


Textbooks

Required: C++ How To Program, 4th Edition, by Dietel and Dietel    ISBN: 0130384747

Required: Unix Unbounded,4th Edition, by Azfal,   ISBN: 0130927368

Required: CISC 181 Laboratory Manual


Schedule

You are expected to attend all classes, and to be prepared for each class by reviewing notes from the previous lecture and reading the scheduled reading assignments. You are responsible for all announcements and material presented during classes, whether you are present or not.
This schedule is tentative and subject to change.
 
Date Topics Resources Readings  What's Due
Sep 3 Introduction To Course 1 Dietel Chapter 1
Sep 8 C++ Basics 2 Dietel Chapter 2
Sep 10 Algorithms, Casting, Control Flow 3
Sep 15 Looping, File Processing, Start Functions 4 Dietel Chapter 3, 12
Sep 17 Functions, Random #'s, Storage Classes, Scope 5 Lab 2
Sep 22 More Functions 6
Sep 24 Arrays, Sorting 7 Dietel Chapter 4 Lab 3
Sep 29 Structs, Strings, MultiDimension Arrays 8
Oct 1 Pointers, Review for Test Dietel Chapter 5 Lab 4 HW1
Oct 6 NO CLASS - STUDY/WORK ON PROJECT
Oct 8 Exam #1 HW2
Oct 13 Pointers, Pointer Arithmetic 9 Project 1
Oct 15 Dynamic Memory Allocation, Linked Lists 10 Dietel 7.6, 17.1-17.4
Oct 20 More on Linked Lists 11
Oct 22 More on Linked Lists, Take 2 Lab 6
Oct 27 NO CLASS - Fall Break
Oct 29 Classes and OO Programming 12 Chapter 6
Nov 3 Constructors, Destructors 13 HW#3
Nov 5 Review for Exam #2 Project 2
Nov 10 Exam #2
Nov 12 Class Composition, this pointer 14 Chapter 7 Lab 8
Nov 17 Friend functions 15
Nov 19 Operator Overloading 16 Chapter 8 Lab 9
Nov 24 Inheritance 17 Chapter 9 HW#4
Nov 26 NO CLASS
Dec 1 Inheritance 18
Dec 3 Virtual Functions and Polymorphism 19 Chapter 10 (10.1-10.5) Lab 10
Dec 8 Hand in Projects/Office Hours Project 3
Dec 10 Review For Final 20 Lab 12 + HW#5
Dec 15 FINAL EXAM - 7-9PM - PRN 229

Resources

 Professor Sullivan's 181 Page
 Professor Caviness's 181 Page
 C++ FAQ (Lite version)
 U. of Hawaii's VI tutorial
 VI Lover's homepage
 EMACS tutorial
 STL String Reference
 Pointer Fun With Binky (and other help with Pointers + Linked Lists