CMSC 16200

Honors Introduction to Computer Science 2

Prerequisites: CMSC 16100. Students who have taken CMSC 15100 may take 16200 with consent of instructor. Nonmajors may use either course in this sequence to meet the general education requirement in the mathematical sciences; students who are majoring in Computer Science must use either CMSC 15100-15200 or 16100-16200 to meet requirements for the major.

Catalog Description: The course will emphasize the C Programming Language, but not in isolation. Instead, C will be developed as a part of a larger programming toolkit that includes the shell (specifically ksh), shell programming, and standard Unix utilities, including awk. Nonshell scripting languages, in particular perl and python, are introduced, as well as interpreter (#!) files that use the command-line version of DrScheme. We cover various standard data structures, both abstractly, and in terms of concrete implementations -- primarily in C, but also from time to time in other contexts like scheme and ksh.

The course will use a team programming approach. There will be a mixture of individual programming assignments that focus on current lecture material, together with team programming assignments that can be tackled using any Unix technology. Team projects will be assessed based on correctness, elegance, and quality of documentation. We teach the "Unix way" of breaking a complex computational problem into smaller pieces, most or all of which can be solved using pre-existing, well-debugged and documented components, and then composed in a variety of ways.

Instructors: S. Kurtz
Quarter offered: Winter
Last Verified by Sharon Salveter on 11 May, 2006.