Table of Contents

Overview

Course Number EN.601.226
Course Title Data Structures
Term Spring 2024
Instructors Sections 01 and 02: Dr. Patricio Simari (email: [email protected])
Department Computer Science
Level Lower Level Undergraduate
Credits 4
Homepage: https://cs226sp24.github.io/

Course Description

This course covers the design and implementation of fundamental data structures, including arrays, stacks, queues, linked lists, binary trees, heaps, balanced trees, hash tables, and graphs. Other topics include basic algorithms (sorting, balancing search trees, graph search algorithms), asymptotic analysis, and programming in Java (object-oriented programming, generics, unit testing). Coursework involves both written exams and programming assignments.

<aside> 📌 Prerequisites [official]

$C+$ or better in EN.600.120 OR EN.601.220 OR EN.600.107 OR EN.601.107 OR EN.500.112 OR (EN.500.113 AND EN.500.132) OR (EN.500.114 AND EN.500.132) OR by permission of instructor.

</aside>

<aside> 💡 Prerequisites [in plain English]

Object-Oriented programming in Java.

</aside>

Course Learning Outcomes

Upon successfully completing this course, you should be able to:

  1. Understand the operation of common data structures and algorithms.
  2. Use analysis techniques to choose the data structure/implementation appropriate for a given problem.
  3. Write advanced object-oriented solutions in Java to significant problems by implementing appropriate data structures and algorithms.
  4. Evaluate and compare the time complexity of functions using mathematical techniques.
  5. Design an algorithm that produces the correct results according to specified inputs and time or space complexity constraints.

This course will address the following Computer Science BS Program Student Outcomes:

Lectures

The lecture meetings will be held in person at the Homewood Campus. Refer to your course info on the university system for time and location information.

<aside> 📌 Students are expected to attend course meetings and actively participate in class activities.

</aside>

<aside> ⚠️ Lectures will be not be recorded.

</aside>

Readings

<aside> 💡 There are detailed lecture notes posted before each lecture on the course homepage.

</aside>