Computer Science 342 Learning Outcomes

This page specifies the learning outcomes for the course.

General information about this course, including more traditionally presented objectives, and the course's syllabus are found on separate web pages.

The learning outcomes below are set for the computer science department as a whole, and the statements of these outcomes are quoted (or modified) from the department's learning outcomes document. The purpose of the following is to tie this course in with the department's document.

A.  Understand the basics of our discipline.

Each graduate should know:

A1.  "Fundamental principles of computing."

This will be assessed by asking students questions on homeworks, and exams about fundamental principles of programming langauges, including control structures, functional abstraction, naming, definitions, recursion, and parameter passing.

A2.  "Basic foundations of mathematics, statistics, and physical sciences."

A3.  "Design and implementation of programs."

This will be assessed by having students write programs in homeworks, which are read by TAs, and graded. Exams with programming will also be given, in which students are permitted to use one page of reference material.

Return to top

B.  "Develop proficiency in the practice of computing."

Each graduate should be able to:

B1.  "Formulate and solve problems in computing."

This will be assessed by having students solve programming problems based on techniques (patterns) described in the course, including recursion based on the structure of a grammar and an isomorphism between functions and record-based ADTs. These are which read carefully by the course staff, and graded. Exams in which students have one page of reference material are also used.

B2.  "Understand design and performance requirements of software systems."

This will be assessed by having students modify interpreters for programming languages to add or modify features. These are read carefully by the course staff, and graded. Exams in which students have one page of reference material are also used.

B3.  "Apply sound principles to the synthesis and analysis of computer systems."

Return to top

C.  "Prepare for continued professional development."

"Our students should":

C1.  "Engage in lifelong learning and expect to embrace change."

The exeperience of learning and using a new programming paradigm (the functional paradigm) and the careful study of fundamental features of programming languages is designed to help students be more easily able to learn new languages and paradigms. In other words these are experiences aimed at having students embrace change. We will also briefly discuss the new aspect-oriented paradigm as a way to having them expect changes to come. We encourage habits that are important in lifelong learning by having students do exercises which involve reading the textbook before lecturing about it, but this is not an outcome that we assess in the class.

C2.  "Communicate effectively and think critically and creatively, both independently and with others."

Some extra credit work tries to encourage critical thinking, but is not assessed.

C3.  "Be aware of social and ethical issues of computers in society."

Return to top

Last modified Sunday, January 9, 2005.

This web page is for the Spring 2005 offering of Com S 342 at Iowa State University. The details of this course are subject to change as experience dictates. You will be informed of any changes. Thanks to Curtis Clifton for help with these web pages. Please direct any comments or questions to Gary T. Leavens.