University of Denver Home Page

COMP 1671
Introduction to Computer Science I
Autumn 2002
Course Information and Syllabus

Course Calendar

Assignments and Solutions


Instructor

Faan Tone Liu (email ftl@cs.du.edu)
Office: JGH 319, (303) 871-2803
Office Hours: MF 10:00-11:00, W 2-3:30
or gladly by appointment

Teaching Assistants

Sections 1 and 3:
Jeff Edgington (email jedgingt@cs.du.edu)
Office: JGH 308, (303) 871-2283
Office Hours: Mon 2-4, Tues 2-4, Wed 10-11, or by appt.

Sections 2 and 4:
Gaurav Ghare (email gghare@cs.du.edu)
Office: JGH 320, (303) 871-3316
Office Hours: Tues 10-11, 12-1, Wed 12-1, Thu 2-5


About This Course

This is the first course in the computer science major/minor. We'll begin to learn how to program computers using the C++ programming language. During this process, you will become introduced to some of the fundamental ideas of computing, and become exposed to some of the modes of thought in computer science. The programming topics will include an overview of computers and programming languages, variables and data types, arithmetic operators, input/output, comments, control structures, user-defined functions, scope, storage class, constants, file i/o, and pointers.


Course Meeting Times

The lecture is held in JGH 219 at 11:00 (Sections 1 and 2) or JGH 316 at 1:00 (Sections 3 and 4) on Mondays, Wednesdays and Fridays. The lab meets in JGH 318 on Tuesdays at 11:00 (Section 1) or Thursdays at 11:00 (Section 2) or Tuesdays at 1:00 (Section 3) or Thursdays at 1:00 (section 4).


Required Textbook and other resources


Grading and assignments

You will be evaluated based on your homework, quizzes, midterm and final exams, programming projects, and on your performance in the lab, weighted approximately as follows:

Your grade will also be calculated according to the following rule: in order to receive a grade of C- or higher, you must receive 70% or higher as your average grade on the programming projects.
Homework will be due approximately weekly. The midterm exam will be held on Monday, October 14, and the final exam will be held on Wednesday, November 20, as scheduled by the registrar (see DU Autumn 2002 Final Exam Schedule). There will be 5 programming projects, due approximately every 2 weeks. Your lab grade will be determined by your TA, and will be based on attendance, participation, quizzes, and successful completion of in-lab activities. Your attendance and class participation in lecture will be taken into account in borderline cases.

Collaboration and Academic Honesty

When you turn in work in this course, you are implicitly agreeing that you have followed the rules for collaboration set forth for that assignment. Copying another person's work on programming assignments, written homework assignments, lab activities, exams, quizzes, etc. constitutes plagiarism, a violation of the University of Denver Honor Code. This code forbids plagiarism, cheating, fabrication, and aid of academic dishonesty. Please note that "aid of academic dishonesty" includes allowing another person to copy your work. This and all other violations of the University's academic standards in this class will be treated with the utmost of severity, the minimum penalty being a grade of F and a letter describing the incident sent to the dean. For more egregious offenses, the case will be referred to the Academic Conduct Review Board.


Guidelines for homework

In this course, you may collaborate with others in the class on homework (and in fact are encouraged to collaborate) except where explicitly noted otherwise. This includes, for example, discussion of overall strategies or resolution of details. It's good practice to acknowledge your co-worker's contributions (both general and specific) to your final product. When you write up the solutions to the assignments, however, your work must be completely your own. You may not write up homework assignments together, copy other's written work or share your own written work. Homework assignments are due at the beginning of the class period on the due date. Your papers should be organized and neatly written, and should be typed if your handwriting is difficult to read. When you turn in a homework assignment, you are implicitly ackowledging it as your work (see Collaboration and Academic Honesty).

Guidelines for Programming Assignments

Programming assignments are due at the beginning of the class period on the due date. All programs are to be done individually and independently. Always turn in a complete hard copy of your program. Your name, the date, and the assignment number should be in a comment at the beginning of each file. In addition, you will turn in an electronic copy of your work. Instructions on how to submit the assignments will be announced in class. No lines of code in your programming assignment should be copied from another student (see Collaboration and Academic Honesty).

Your program must work correctly to receive credit. A program which does not compile will receive little credit. A program which works partially will receive partial credit. Your score improves if you attach notes documenting the incompleteness or bugs (include details of the circumstances under which they occur), since this shows the degree to which you tested your code.

Your programs should be formatted logically, and should be easy to read.

Comment your code well - write comments that would be useful to someone who would have to maintain or enhance your code. The quality of your comments is included in your grade.

Late Homework and Programming Assignments

Late homework will be accepted, or not, at my discretion, with the penalty again at my discretion. Extensions for extreme and unusual circumstances that are beyond your control may be granted if requested in advance - last-minute requests will very rarely be granted.


Course Calendar and Assignments

The calendar below contains links to homework assignments, links to programming assignments, as well as important dates for you to keep in mind. Entries in the calendar dated after today's date are subject to change.

Mon Tues Wed Thur Fri
Sept 9

First day of classes
Read Chap. 1 by Wed Sept. 11
Learn binary counting:
"Penguin counting" by Graham Knott
Sept 10

First lab for Secs. 1, 3
Lab 1
.bash_profile
Sept 11

HW 1 assigned
Converting between
decimal and binary:
Eddie's Basic Guide...
Sept 12

First lab for Secs. 2, 4
Lab 1
.bash_profile
Sept 13

Read pp. 21-38 for Monday
Hello world program (hello.cpp)
Project 1 assigned
Sept 16

Homework 1 due
Review outline of week 1
Second hello program (hello2.cpp)
Sept 17

Lab 2
Sept 18

M&M program (mms.cpp)
Read Chapter 2 for Friday
Homework 2 assigned
Sept 19

Lab 2
Sept 20

Height conversion program (height.cpp)
Project 1 due
Sept 23

Homework 2 due
Review of week 2
Height conversion program (height.cpp)
Sept 24

Lab 3
Sept 25

Program from class
(tall_enough.cpp)

Homework 3 assigned
Project 2 assigned
Read pp. 144-166 for Friday
Sept 26

Lab 3
Sept 27

Finish reading Ch. 4 by Mon.
Sept 30

Homework 3 due
Review of week 3
Oct 1

Lab 4
Oct 2

Start reading Chapter 5
Homework 4 assigned
Programs from class:
switch_example.cpp
square_rooter.cpp
Oct 3

Lab 4
Oct 4

Finish reading Chapter 5.
Programs from class:
square_rooter2.cpp
square_rooter3.cpp
haha.cpp
Project 3 assigned
Project 2 due
Oct 7

Programs with "for" loops:
count.cpp
count_backwards.cpp
Review of week 4
Homework 4 due
Oct 8

Lab 5
Oct 9

Start reading Chapter 6
Homework 5 assigned
Program from class:
kyoober.cpp
Oct 10

Lab 5
Oct 11
Oct 14

Midterm Exam
Oct 15

Lab 6
Oct 16

Finish reading Chapter 6
Start reading Chapter 7
Program from class:
triangle.cpp
Homework 6 assigned
Oct 17

Lab 6
Oct 18

Program from class (example of function):
triangle2.cpp
Project 4 assigned
Addendum to Project 4
Project 3 due
Oct 21

Example from class:
min.cpp
Oct 22

Lab 7
Homework 6 due
Oct 23

Examples from class
(Pass by value vs. pass by reference):
Cube program
BMI program from lab
BMI revised (uses pass by reference)
Homework 7 assigned
Oct 24

Lab 7
Oct 25

Finish reding Chapter 7
(skip function overloading,
skip default parameters)
Oct 28 Oct 29

Homework 7 due
lab 8
Oct 30

array_example.cpp
Oct 31

lab 8
Nov 1

Read Chapter 9 up to page 422
Program example from class:
min_array.cpp
Project 5 assigned
Homework 8 assigned
Project 4 due
Nov 4

Example from class:
file_example.cpp
Nov 5

Homework 8 due
lab 9
Nov 6

Example programs from class.
(How to handle errors in input)
inputa.cpp
inputb.cpp
input_improved.cpp
input_evenbetter.cpp
Nov 7

lab 9
Nov 8

Homework 9
Examples from class:
file_input.cpp
filename.cpp
Nov 11 Nov 12

Homework 9 due
Nov 13 Nov 14 Nov 15

Project 5 due
Nov 18 Nov 19 Nov 20

Section 1 and 2
Final Exam
10:30 a.m. - 12:15 p.m.
Section 3 and 4
Final Exam
1:00 - 2:45 p.m.
Nov 21 Nov 22

Assignments and Solutions:

Homework 1, Homework 1 solutions
Homework 2, Homework 2 solutions
Homework 3, Homework 3 solutions
Homework 4, Homework 4 solutions
Homework 5, Homework 5 solutions
Homework 6, Homework 6 solutions
Homework 7, Homework 7 solutions
Homework 8, Homework 8 solutions
Homework 9, Homework 9 solutions
Project 1, A student solution to Project 1, another student solution to Project 1
Project 2, A student solution to Project 2, another student solution to Project 2
Project 3, A student solution to Project 3
Project 4, Project 4 addendum
Project 5

DU Home Page DU Department of Computer Science Home Page   Home Page for Faan Tone Liu  

This page was last modified on: