COMP 3391, Gateway to Computer Science for Engineers, Fall 2006
Course Information and Syllabus
Instructor:
Catherine Durso
(email cdurso"AT"cs"DOT"du"DOT"edu )
Office: John Greene Hall 303, University of Denver, 303 871 3598
Office Hours: 11:00-noon TuTh, 1:00-3:00pm Fri
or by appointment |
Teaching Assistant:
Gabor Papp
(email gpapp"AT"du"DOT"edu )
Office: John Greene Hall 312, 303 871 3300
Office Hours: 2:00-4:00pm Mon, 10:00am-noon Wed.
or by appointment. |
About This Course
This course covers three main topics: Computer Organization, offered the first two weeks of the quarter for 1 credit; Discrete Mathematics, offered weeks 3-5 of the quarter for 1 credit; and Algorithm Analysis and Data Structures, offered weeks 6-10 for 2 credits. Students may chose to take any combination of these topics. The intention of the course is to prepare students from allied fields for work toward a Master's Degree in Computer Science.
Course Meeting Times
The lecture is held at the Deer Creek campus of Lockheed-Martin from 5:00-9:00pm on Wednesdays.1
Required Resources
- Computer Organization: Computer Organization and Design, ed. 3, by David A. Patterson and John L. Hennessy
- Discrete Mathematics: Discrete Mathematics and Applications, ed.6, by Kenneth H. Rosen
- Algorithm Analysis and Data Structures: Data Structures and Algorithm Analysis in C++, ed. 3, by Mark Allen Weiss
Free software and Shareware for C++ programming
www.cygwin.com and
http://www.vim.org/download.php#pc
For instructions on installing this software from the Computer Science server, consult the instructor or go to www.cs.du.edu/faq and follow the link for Cygwin. This is probably your fastest option.
If you are experienced in downloading information from the Internet, you may download the software directly. For Cygwin, include the package containing the gcc-g++ compilers. For Gvim, use the 'typical' installation.
You may also borrow a disk of both downloads.
Section Syllabi
Syllabus for Computer Organization:
In broad terms, this section will introduce the topics in Computer Organization and Design, ed. 3, by David A. Patterson and John L. Hennessy, with brief coverage of binary and hexadecimal representation of numbers. The topics are computer abstractions and basic organizational units; assembly and compilation; cpu performance; data path and control; pipelining; memory; storage, networks, and other peripherals; and multiprocessors.
- Week 1:
- binary and hexadecimal number systems
- Chapter 1
- Chapter 2, sections 2.1-2.4, 2.16-2.17
- Chapter 4, sections 4.1-4.2, 4.5-4.6
- Chapter 5, sections 5.1-5.2
- Week 2:
- Chapter 6, sections 6.1, 6.9, 6.11
- Chapter 7, sections 7.1-7.2
- Chapter 8, sections 8.1-8.3
- Chapter 9, section 9.1
Problems will be assigned at the first class meeting and collected one week after the conclusion of the section.
Syllabus for Discrete Mathematics:
In broad terms this section will cover chapters 1-6 of Discrete Mathematics and Applications, ed.6, by Kenneth H. Rosen. The topics are logic and proofs; sets, functions, and sequences; algorithm complexity; basic number theory; induction and recursion; introductory combinatorics; discrete probability, and equivalence relations.
- Week 3:
- Chapter 1 with emphasis on 1.4-1.7
- Chapter 2
- Week 4:
- Chapter 3, sections 3.1-3.6
- Chapter 4
- Week 5:
- Chapter 5
- Chapter 6
- Discussion of equivalence relations (section 8.5)
Problems will be assigned one class meeting prior to the meeting in which the material is covered, and collected one class meeting after the material is covered.
Syllabus for Algorithm Analysis and Data Structures:
In broad terms, this section will cover the material in chapters 2-7 of Data Structures and Algorithm Analysis in C++, ed. 3, by Mark Allen Weiss. The topics are algorithm analysis, lists, stacks, queues, trees, binary search trees, hashing, priority queues, binary heaps, insertion sort, Shellsort, heapsort, mergesort, quicksort, and bucket sort. Students should review the material in chapter 1.
- Week 6:
- Chapter 2
- Chapter 3, sections 3.1-3.4
- Week 7:
- Chapter 3, sections 3.5-3.7
- Chapter 4, sections 4.1-4.3
- Week 8:
- Chapter 5, sections 5.1-5.5
Chapter 6, sections 6.1-6.3
- Week 9:
- Chapter 6, section 4
Chapter 7, sections 7.1-7.3
Week 10: Chapter 7, sections 7.4-7.7
Problems will be assigned one class meeting prior to the meeting in which the material is covered, and collected one class meeting after the material is covered, or during finals, for the last material. There will be one programming assignment, assigned week 6 and collected week 10.
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.
In general, for problem sets, you may consult with the instructor, the TA, or fellow students. The write-up should be in your own words. For the programming assignment, the code should be the work of the team submitting the project. Neither on problem sets nor on the programming assignment should you perform web searches for solutions.
Guidelines for Homework Assignments
You are encouraged to type
your solutions, however, handwriting is accepted as long as I find it to be readable,
understandable and organized. You should turn in electronic copies of programs as well as hard copies.
Homework assignments are due before midnight on the date specified in the assignment
hand out (and course calendar). If you type your solutions, you must submit
them electronically in either .TXT, .PDF or .DOC formats to me. Please follow the following format for
electronic homework assignment submissions and file naming:
email your code as an attached file to the course account,
cdurso"AT"cs"DOT"du"DOT"edu,
and name your file
(Your last name/names)_Hwk(homework assignment number).(appropriate extension)
Grading
Each section of the course is graded separately as 'Pass' or 'Fail'. The criterion for passing is that the work the student submits for the section show command of the material sufficient to enable the student to study topics based on that section.
Assignments
This page was last modified on: