Overview

This course is the second in a three-course series, and it is a major stepping-stone in your software development journey. The primary focus of this course is the design and analysis of different algorithms and data structures. Thus, this course will introduce different simple and complex data structures with related algorithms and their use in problem-solving. The course also covers core computer science concepts such as abstraction, algorithm complexity, performance analysis and the tradeoffs between running time, storage size, clarity, and extensibility that are at the core of software design.

Course Information

Instructor: Sadab Hafiz

Semester: Summer 2024 (6-weeks)

Office Hours Location: HN 1001B

Email: sh3646@hunter.cuny.edu

Programming Language: C++

Section 1

Location: Hunter North C108

Days: Monday - Thursday

Start Time: 09:50 am ET

End Time: 11:24 am ET

Office Hours: 11:30 pm - 01:00 pm ET

Section 2

Location: Hunter North C102

Days: Monday - Thursday

Start Time: 03:20 pm ET

End Time: 04:54 pm ET

Office Hours: 02:00 pm - 3:20 pm ET

Schedule
Date Topics Material Extras Assignments
05-28-2024

Logistics

Review of CS135

Syllabus

CS135 Course Webpage

date.hpp

date.cpp

05-29-2024

Abstraction

Object-Oriented-Programming

OOP Slides

Terminal Basics

GitHub Basics

05-30-2024

Inheritance

Inheritance Slides

animal.zip

vehicle.zip

QUIZ 1
06-03-2024

Abstract Data Types

Templates

Array-Based Implementation

ADT&Templates Slides

ArrayBag Slides

ArrayBag.hpp

ArrayBag.cpp

ADT Inheritance SQ

ArrayBag SQ

06-04-2024

Algorithm Efficiency

Big-O Notation

Pointers

AlgoEfficiency Slides

Pointers Slides

AlgoEfficiency SQ

06-05-2024

Link-Based Implementation

Copy and Move Constructors

LinkedBag Slides

CopyMove Slides

BigFive.zip

LinkedChain SQ

06-06-2024

Lists

Lists Slides

LinkedList.hpp

LinkedList.cpp

List SQ

QUIZ 2

QUIZ 3

PROJECT 1

06-10-2024

Exception Handling

ADT Inheritance SQ

ExceptionHandling Slides

06-11-2024

Polymorphism

Polymorphism SQ

Polymorphism Slides

Animal.zip

Vehicle.zip

Polymorphism SQ

06-12-2024

Searching

ArrayBag SQ

AlgoEfficiency SQ

Searching Slides

06-13-2024

Sorting

Sorting Slides

Sorting SQ

QUIZ 4

06-17-2024

Midterm Review

LinkedChain SQ

List SQ

Midterm Format

06-18-2024

MIDTERM

MIDTERM

MIDTERM

MIDTERM

06-20-2024

Recursion

Sorting

Recursion Slides

SortingAlgorithms.ipynb

Recursion SQ

QUIZ 5

06-24-2024

Dynamic Programming

Stack

Queue

Dynamic Programming Slides

Stack&Queue Slides

PROJECT 2

06-25-2024

Stack Implementation

Queue Implementation

Stack Slides

Queue Slides

Stack SQ

Queue SQ

06-26-2024

Trees

Binary Search Trees (BST)

Trees Slides

BST Slides

Tree SQ

06-27-2024

Managed Pointers

BST Implementation

Managed Pointers Slides

BST Implementation Slides

QUIZ 6

07-01-2024

BST Implementation

Functors

BST Implementation Slides

BST.zip

recursion.cpp

07-03-2024

CLASS CANCELLED

CLASS CANCELLED

CLASS CANCELLED

QUIZ 7

PROJECT 3

07-08-2024

Heap

HeapSort

Sorting SQ

Heap Slides

Visualizations

QUIZ 8

07-09-2024

Final Review

Stack SQ

Queue SQ

STL Containers

07-10-2024

Final Review

Recursion SQ

Tree SQ

Final Format

07-11-2024

FINAL

FINAL

FINAL

FINAL