Skip to content
 Welcome back Badgers!
New Student Orientation Info →

Course Syllabus

CS 2420 Data Structures and Algorithms

  • Division: Natural Science and Math
  • Department: Computer Science & Engineering
  • Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0
  • Prerequisites: CS 1410 or CS 1420 or ENGR 1410
  • Semesters Offered: Fall, Spring
  • Semester Approved: Spring 2026
  • Five-Year Review Semester: Fall 2030
  • End Semester: Fall 2031
  • Optimum Class Size: 20
  • Maximum Class Size: 24

Course Description

This course covers data structures and algorithms in some depth. Topics include data structures, recursion, problem solving strategies, and complexity analysis. Sorting and searching algorithms are covered in detail.

Justification

This course is part of the required curriculum for software engineering and computer science majors at Snow College. This course is similar across USHE as CS 2420.

Student Learning Outcomes

  1. Upon successful completion of this course, students will be able to know basic data structures, recursion, complexity analysis, and common sorting and searching algorithms.
  2. Upon successful completion of this course, students will be able to use appropriate data structures and data abstraction.
  3. Upon successful completion of this course, students will be able to use recursion as a problem-solving strategy.
  4. Upon successful completion of this course, students will be able to analyze complexity of algorithms and use appropriate sorting and searching algorithms.
  5. Upon successful completion of this course, students will demonstrate an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics. (ABET-SLO1)

Course Content

The following topics will be covered in this course: Data abstraction; Linked lists; Stacks and queues; Trees; Tables; Graphs; Recursion; Complexity analysis; Sorting and searching.

The course will present and encourage development of software that will interact effectively with software developed by others. Students taking this course will likely come from a variety of programming language backgrounds. Rather than minimizing these differences, the course will highlight how comparing and contrasting various programming experiences can help the class to better value and understand different language features.