01:198:112 - Data Structures
- Course Number: 01:198:112
- Instructor: Sesh Venugopal, Juan Zhai
- Course Type: Undergraduate
- Semester 1: Fall
- Semester 2: Spring
- Semester 3: Summer
- Credits: 4
To investigate the essential properties of data structures and algorithms for operating on them; to use these structures as tools to assist algorithm design; to extend exposure to searching, sorting and hashing techniques.
- Learning Management System (LMS): https://rutgers.instructure.com/courses/104525
- Syllabus: https://ds.cs.rutgers.edu/
- Video Intro: https://www.youtube.com/watch?v=wvwQ2RI0AxM
- Instructor Profile: Centeno, Ana Paula, Gunawardena, Ananda "Andy", Zhai, Juan
- Prerequisite Information:
01:198:111. Credit not given for this course and 14:332:351.
- A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.
- Course Links: 01:198:111 - Introduction to Computer Science
- This course is a Pre-requisite for the Following Courses: 01:198:211 - Computer Architecture, 01:198:213 - Software Methodology, 01:198:214 - Systems Programming, 01:198:334 - Introduction to Imaging and Multimedia, 01:198:336 - Principles of Information and Data Management, 01:198:344 - Design and Analysis of Computer Algorithms, 01:198:428 - Introduction to Computer Graphics
Linked lists, stacks, queues
Sequential search, binary search
Binary search trees, balanced binary search trees, hash tables
Heaps for priority queues
Graphs and graph algorithms
Asymptotic analysis of time and space requirements
- Expected Work: Several problem sets and programs
- Exams: One midterm and one final exam
- Learning Goals:
Computer Science majors ...
- will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
- will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
- will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).