To develop an understanding of important intellectual concepts underlying major personal computer application categories, and the application of those concepts to problem solving. To develop an understanding of personal computer software and hardware appropriate for students who own and maintain their own machines. To develop methodologies for efficiently learning to use personal computer applications.
CS 200 is intended for non-math majors with significant prior exposure to personal computers (equivalent to that obtained in CS 100) who wish to deepen their understanding of personal computers and how to use them effectively and efficiently.
Prerequisites: CS 100 or Grade 11 or 12 or OAC Computer Science or 4M Computer and Information Science.
Antirequisites: All second, third or fourth year computer science courses.
Successors: CS 330, or any of the applications-oriented courses taught by various university departments.
Labs are run primarily on Macintoshes but some work is done on Windows machines. Students who own a computer are encouraged to use it. (Most of the software used runs on both Macintosh and Windows computers.)
Assumed Background: Experience with standard applications software, as covered in CS 100.
The Non-Designers Design Book, 2nd ed., by R. Williams, Peachpit Press, 2004; The Mac is not a Typewriter, 2nd ed., by R. Williams, Peachpit Press, 2003; and Learning Web Design, 3rd ed., by J. Niederst, O'Reilly & Associates, 2003,S Pocket Reference 3rd ed by Eric Meyer O"reilly Media Inc. Course notes.
Two hours of lecture and four hours of supervised laboratory per week. Normally available in Fall, Winter and Spring.
Techniques for efficiently learning and using applications, and for diagnosing problems.
Booting. System extensions. File systems and file system maintenance. File system organization. Security and access control. Backup disciplines.
Character versus paragraph styles. Flat versus hierarchical styles. Conditional text. Good graphical design.
Colour models. Half-toning and dithering. Image manipulation, layers and masks. Vector object properties and named graphical styles. Bezier curves.
Web site structure, design, and security. HTML. CGIs. Cascading style sheets. Good graphical design.
Intra-application scripting. System-level inter-application scripting. Programming in the small. Debugging.
Table design. Form design. Data validation. Referential integrity. Indices. Client/server databases. Serving the web from a database. SQL.

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1
Tel: 519-888-4567 x33293
Fax: 519-885-1208
Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics