Course Information: Algorithms and Data Structures

Computer Science Department
Course Competency Plan
COURSE: CpSc 374 Algorithms and Data Structures

Course Description: This course establishes a foundation for the systematic study of algorithms and data structure. The integration for these two concepts into a single organizational structure emphasizes that algorithms and data structures are inseparably inter-twined. This course builds and elaborates on the concepts introduced in CpSc 140 and 150. Prerequisites: CpSc 150. (3 credits)

Course Outcomes: This course and its outcomes support the Computer Science Learning Outcomes of Problem Solving and Critical Thinking (PS&CT), and Ethical and Professional Responsibilities (E&PR). These Computer Science Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking and Problem Solving and Values and Ethics.

This course engages students in the following high impact practice: writing-intensive

DegreeProgram ObjectiveAssessed Course Objective
CS I.b. Implement an algorithm by creating a tested and debugged programmatic solution 1. Implement an algorithm by creating a tested and debugged programmatic solution
CS II.b. Use written, oral, and electronic communication to convey technical information effectively. 2. Write a paper on one or more algorithms and/or data structures
CS III.b. Recognize the ethical, legal, and social implications of computing 3. Understand the implications of efficiency and accuracy of data representation, data structures, and/or algorithms in an information society
CS III.e. Recognize the need for continuing professional development 4. Understand the need for continuing development as a computing professional.

Additional Course Objectives include:
The student will be able to:

  1. Describe and apply the concepts of recursion, object-oriented design, abstract data types, encapsulation, code reuse and space and time complexity
  2. Demonstrate an understanding of ethics and intellectual property rights as they apply to code reuse, reverse engineering, and the completion of class assignments.
  3. Analyze the complexity of computer algorithms and data structures
  4. Implement and use data structures such as stacks, queues and linked lists.
  5. Demonstrate an understanding of some additional data structures such as trees, priority queues and graphs.
  6. Implement and use advanced searching and sorting techniques.