Lecture: 3 hours
Discussion: 1 hour
Prerequisite: Course 30 or equivalent with a grade of C- or better
Grading: Letter; programming projects (35%), two midterms (20% each), final (25%)
Catalog Description:
Elements of program design, style, documentation, efficiency. Methods for debugging and verification. Operating system tools. Principles and use of object-oriented programming in C++. Basic data structures and their use.
Expanded Course Description:
(Note: This material is covered in discussion sections and through student self-study, not in lectures.)
(Note: This material is covered in discussion sections and through student self-study, not in lectures.)
There is particular emphasis on the use of debugging tool. It is recommended that at least one assignment will consist of using gdb/ddd (or other debugging tool) to debug some flawed C++ language source code provided by the instructor; the student will submit a brief report, consisting of lines from a "typescript" file interspersed with remarks explaining how the student used gdb to track down the bugs.
One of the important goals of course 40 is to prepare students for
advanced courses, many of which use UNIX-specific software. It is recommended
that instructors should encourage (but not require) students to install
LINUX on their home PCs, both as a
convenient UNIX platform and also to gain experience in certain operations
not learned in formal coursework, such as the concept of disk partitioning.
Textbooks:
Das, Your UNIX The ultimate Guide, McGraw-Hill, 2006
Deitel, C++ How To Program, Prentice Hall, 2006
Web Resources:
UNIX tutorial: http://heather.cs.ucdavis.edu/~matloff/unix.html
Debugging tutorial: http://heather.cs.ucdavis.edu/~matloff/debug.html
LINUX tutorial: http://heather.cs.ucdavis.edu/~matloff/linux.html
Computer Usage:
Students will utilize the computer systems in the Computer Science Instructional
Facility (or their home computers) to develop approximately six programs.
Engineering Design Statement:
Engineering design skills are developed through a series of progressively more complex programming assignments, in which the emphasis is not only on functionality, but also clarity and efficiency.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
Goals:
Students will:
Student Outcomes:
Instructor: M. Bishop
Prepared By: N. Matloff (February 2001)
Overlap Statement:
This course does not duplicate any existing course.
5/06