COMP 2673, Spring 2003
Course Information and Syllabus

University of Denver Home Page

Course Calendar

Homework Assignments


Instructor

Faan Tone Liu (email ftl@cs.du.edu)
Office: JGH 319, x2803
Office Hours: Mon 10-11, Wed 12-1, Fri 10-11
or gladly by appointment

Teaching Assistants

Jeff Edgington (email jedgingt@cs.du.edu)
Office: JGH 308, (303) 871-2283
Office Hours: Monday and Wednesday, 2-5pm

Gaurav Ghare (email gghare@cs.du.edu)
Office: JGH 320, (303) 871-3316
Office Hours: Tu 10-11, Tu 12-1, Tu 2-3, Th 10-12, Th 2-3


About This Course

The two purposes of this course are to introduce you to various topics and concepts in computer science, and to give you more practice in writing computer programs. The topics we will cover in this course include (subject to time constraints) fractals, fractal image compression, using the UNIX operating system, finite automata (finite state machines and turing machines), review of dynamically allocated memory, databases, LEGO robots, graph theory, cryptography, genetic algorithms, and the game of life.

You will also continue to improve your design, programming, and debugging skills. You will continue to increase your level of sophistication in your communication skills, including documenting your programs, listening to and speaking about technical material, and reading texts to learn information independently.


Course Meeting Times

The lecture is held in JGH 316 at 11:00 (Section 1) or 1:00 (Section 3 and 4) on Mondays, Wednesdays and Fridays. The lab meets on Tuesdays at 11:00 (Section 1), Tuesdays at 1:00 (Section 3) or Thursdays at 1:00 (Section 4). The lab will meet in either JGH 318 or in the Sun Lab in room JGH 216.


Required and Optional Resources


Grading

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

Homework will be due approximately weekly. The midterm will be announced two weeks in advance. The final exam will be held on Friday, June 6, the date and time determined by the registrar (see DU Spring 2003 Final Exam Schedule). There will be three programming projects, the first due about 4 weeks into the quarter, the second due about 7 weeks into the quarter, and the last due at the end of the quarter. Your attendance and class participation 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. You should not view in any way another person's assignment, nor should you possess electronic copies or hard copies of another person's assignment before that assignment has been graded and returned. Copying another person's work on homework assignments, exams, lab exercises or projects 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 severity. Possible outcomes include (but are not limited to) a grade of 0 on the relevant assignment and a failing grade in the course. In addition, a letter describing the incident will be sent to the Office of Citizenship and Community Standards, which will address the situation at their discretion. This office determines additional consequences for violations to the DU Honor code. These consequences may include suspension or expulsion from the University.


Guidelines for homework

In this course, some of the homework problems are to be done individually, but for most, you may choose to work on homework with one other person. If you choose to work with another person, it must be a collaboration in which each person contributes essentially equally to the final product. Furthermore, the problems must be done together (you may not divide up the individual problems and each do half of them) At the end of the assignment, you must both state and sign that you have contributed essentially equally to the assignment. Not all collaborations work as expected - sometimes even people that are evenly matched in preparedness don't create a balanced collaboration. Like all human relationships, there is an element of unpredictability. If the magic isn't happening, and you find yourself involved in a collaboration that is unbalanced and is not truly a joint effort, then you must graciously excuse yourself, and do so in a nonjudgemental way. Homework is due at the beginning of class 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 you or your group's 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. As with homework, some of the programming projects will be done individually, and for some you may choose to do the projects in groups of two. In the latter case, you are responsible for dividing the work in an equitable fashion, and each participant is responsible for understanding every part of your final program. Both participants will receive the same grade for the project. Turn in a hard copy of the header files and source code files - your name(s) should be in a comment at the beginning of EVERY file. In addition, you will mail an electronic copy of your work to an address that will be announced. 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

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


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.

Homework 6 - last one!
Mon Tues Wed Thur Fri
Mar 24 Mar 25 Mar 26

First day of classes
Class notes, 3/26 (fractals, part I)
Homework 0
Mar 27

No lab this week
Mar 28

Class notes, 3/28 (fractals, part II)
Homework 1
Mar 31

Class notes, 3/31 (fractals, part III)
Project 1
Apr 1

Lab 1
Apr 2

general unix notes
Homework 1 due
Apr 3

Lab 1
Apr 4

Unix - managing processes
Apr 7

Class notes, 4/7 (image compression)
Apr 8

Lab 2
Apr 9

Homework 2
Apr 10

Lab 2
Apr 11

Unix - files and email
Apr 14

Homework 2 due
Graph theory notes, Part 1
Apr 15

Lab 3
Apr 16

Graph theory notes, Part 2
Apr 17

Lab 3
Apr 18

Graph theory notes, Part 3

Homework 3
Apr 21

Graph theory notes, Part 4
Apr 22

Lab 4
Apr 23

Graph theory notes, part 5
Project 1 due
Project 2
Apr 24

Lab 4
Apr 25

The Travelling Salesman Problem
Homework 3 due
Apr 28

Solving TSP with genetic algorithms
Apr 29

Lab 5
Apr 30

Midterm Exam
May 1

Lab 5
May 2

Databases, Day 1
May 5

Databases, Day 2
May 6

lab 6 - work on project 2
May 7

Databases, Day 3
Homework 4
May 8

lab 6 - work on project 2
May 9
May 12

Robot demo 1 from class
Robot demo 2 from class
Robot demo 3 from class
Robot demo 4 from class
May 13

lab 7
May 14

Project 2 due
Project 3
Pointers/Dynamically Allocated Memory
May 15

lab 7
May 16

Homework 4 Due
Potential bugs in Dyn. Alloc. Mem.
May 19

Dyn. Alloc. Mem. in classes (example)
Homework 5
May 20

lab 8
May 21

Finite State Machines
May 22

lab 8
May 23

See notes from May 21
May 26

Memorial Day - no classes
May 27

Lab 9
Homework 5 Due
May 28

Turing Machines
May 29

Lab 9
May 30
June 2

Last day of classes
Project 3 due
June 3 June 4 June 5 June 6

Final Exam

Assignments:

Homework 0
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
Project 1, More ifs examples, Student generated images for ifs examples, Another student's fractals
Project 2, graph examples
Project 3

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

This page was last modified on: