| Routing/Approval: (chair’s initials/date) |
Department |
Division |
APC |
Senate |
Date of proposal: 4/10/06
Title: Data Structures and Abstraction
Department and Course Number: CSCI 201
Crosslisted? Yes No X If yes, crosslisting department and number:
Credit: 1 Hours/week: 6
One-time: or Permanent Offering: X
Instructor: Steven Huss-Lederman
How will this course be taught, given present staffing, without creating a course overload?
This course proposal is part of a comprehensive change to the computer science curriculum. The course load under this proposal will not create an overload.
Are there any course fees? If so, specify what the course fees are intended to cover.
None
Prerequisite(s):
Computer Science 131
Catalog description (50-150 words, please):
If applicable, include the following language at the end: “May be repeated for credit if topic is different.”
Covers many basic data structures, basic complexity analysis, and standard software for their implementation. The students will learn the ideas of using the abstractions of these data structures to write software for solving problems. This course offers a more practical coverage of data structures with opportunities for software problem solving and therefore may be of use to general students seeking a deeper understanding of programming.
Additional course content description (aims, purposes, etc.) beyond the catalog description:
This course is designed for both future computer scientists and others interested in gaining a deeper appreciation of the use of classic ways to store and manipulate information. Students are introduced to the ideas of data structures and algorithms and ways to utilize them to solve problems. This contrasts with CSCI 205 where emphasis on the implementation of these techniques and an understanding of the underlying computer science ideas. This course engages students in more sophisticated design and implementation of solutions to problems by making the applications more complex and open-ended. To accomplish these goals an emphasis is placed on abstraction. Thus, students utilize software that allows them to apply the techniques learned in a similar abstract way that the concepts are presented. Though details are minimized, it is imperative that students understand the details enough to appreciate the efficiency and limitations of each technique. One exception is going through the details and software needed to deal with linked data structures and reference. Through the creation of software, students will continue to utilize pair programming as was begun in CSCI 121. The programming language used will be Java to extend material learned in CSCI 131.
The lettered/numbered lines below come from CC2001. Underlined
items are considered essential to a basic curriculum in computer science.
Numbers in () indicate minimum number of hours to cover in a lecture style
according to CC2001.
Items with
a * indicate we plan to cover them in multiple courses.
Other lines include additional topics we plan to cover or clarification of
topics
we will cover within a CC2001 topic.
Course goals/objectives/outcomes:
At the end of this course students should be able to:
Course structure. Check all that apply:
Lecture/Discussion X Studio Lab/Workshop X Other (Specify)
If current library or equipment holdings are inadequate, estimate the cost of additional holdings required.
adequate.
Please attach names of a proposed text and/or core readings.
Java Structures: Data Structures in Java for the Principled Programmer, 2nd ed., Duane Bailey, ISBN 0-07-239909-0, 2003. This is a good book but we are searching for an alternative that would focus more explicitly on the course objectives (abstraction).
Form revised 11/04