Syllabus, CPSC 331, Winter 2007

home page -  news -  syllabus -  topics -  schedule -  assignments -  tutorials -  tests -  java -  references -  Mike Jacobson


syllabus -  learning goals -  CS background -  math background -  how to succeed -  what to avoid -  assessment

 Learning Goals

  1. Students will be introduced to or will learn more about several fundamental data structures, including

    • arrays
    • stacks
    • queues
    • trees, including various types of search trees
    • hash tables
    • graphs

    In each case students will learn about the operations these data structures support (so that you understand the problems these data structures can be used to solve).

    Students will also learn about the algorithms that are used to implement the above operations. You will be able implement these data structures and supporting algorithms using an object-oriented programming language (specifically, Java). You will also be able to use standard libraries that include implementations of these to solve other problems.

    In cases where algorithms are not obvious, you will understand why the algorithms solve the problems they are supposed to. You will also learn about the time and memory resources that these algorithms use.

  2. Students will be introduced to the concept of an abstract data type and the use of this to classify data structures according to the operations they support.

  3. Students will be introduced to (and will have a basic understanding of) issues and techniques for the assessment of the correctness and efficiency of programs.

    As part of this, you will understand the principles and objectives of testing. You will also have access to information you can use to test your programs more thoroughly than you might do now.

    You will also understand the purpose and structure of proofs that algorithms are correct and efficient. While you will probably not be asked to create such proofs yourself, you will be able to read and understand them in order to learn about data structures and algorithms on your own, after completion of CPSC 331.

  4. Students will learn how to use properties of problems, including bounds on the resources that can be used, in order to choose among several data structures or algorithms, when several different data structures or algorithms are available.

  5. While this is not a programming course, students will learn about and use one or more features of Java that are useful for implementing and using data structures and that you might not have seen before.


This page last modified:
http://www.cpsc.ucalgary.ca/~jacobs/cpsc331/W07/syllabus/goals.html