Skip to content

Course Syllabus

Course: CS 2420

Division: Natural Science and Math
Department: Computer Science & Engineering
Title: Data Structures and Algorithms

Semester Approved: Fall 2021
Five-Year Review Semester: Summer 2026
End Semester: Summer 2027

Catalog 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.

Semesters Offered: Fall
Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0

Prerequisites: CS 1410

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


Student Learning Outcomes:
Students will know many basic data structures, recursion, complexity analysis, and common sorting and searching algorithms. They will demonstrate this by doing homework and by taking quizzes and exams.

Students will be able to use appropriate data structures and data abstraction. They will demonstrate this by doing programming projects and taking exams.

Students will be able to use recursion as a problem solving strategy. They will demonstrate this by doing programming projects and taking exams.

Students will be able to analyze complexity of algorithms and use appropriate sorting and searching algorithms.  They will demonstrate this by doing homework, programming projects, and by taking quizzes and exams.


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.

Key Performance Indicators:
Homework exercises 10 to 20%

Programming projects 15 to 35%

Quizzes 10 to 20%

Examinations 25 to 55%

Comprehensive final examination 15 to 25%


Representative Text and/or Supplies:
F. Carrano and J. Prichard, Data Abstraction and Problem Solving with Java: Walls and Mirrors, current edition, Addison Wesley

M. Jamro, C# Data Structures and Algorithms, current edition, Packt

M. McMillan, Data Structures and Algorithms Using C#, current edition, Cambridge


Pedagogy Statement:
This course will teach students problem-solving approaches that promote teamwork, such as coordinating development of an interface prior to working out more specific implementation details. By soliciting student discussion and drawing on student experiences, lectures will leverage and support strengths of students from varied backgrounds.

Instructional Mediums:
Lecture

Online

Maximum Class Size: 24
Optimum Class Size: 20