![]() | ![]() |
Teaching |
CS1332CS1332 Course DescriptionCS 1332 – Data Structures and Algorithms
Overview: The purpose of this course is to give students a thorough introduction to computer data structures and algorithms in the context of object-oriented programming. It is also expected that students will gain experience and practice with sophisticated object-oriented programming. The focus in the course is on developing skills and experience in individual person software development.
Prerequisites: The course assumes that students enter with a thorough understanding of programming in an object-oriented language (currently, Java), including knowledge of polymorphism, exception handling, graphical user interfaces, and algorithm complexity analysis.
Course Objectives: Data Structures and Algorithms Students will gain an understanding of fundamental and important data structures and algorithms (noted in course description below). This knowledge will include how the data structures and algorithms are constituted and work, when to use particular data structures and algorithms, how to code the data structures and algorithms, and informal understanding of their algorithm complexity.
Algorithm Design Students will be introduced to advanced topics in algorithm design, including parallel programming (utilizing multiple threads of control), heuristic algorithms, and divide-and-conquer techniques.
Object-Oriented Programming—Concepts Students will gain additional experience and become skilled with object-oriented programming concepts such as classes, objects, data abstraction, inheritance, polymorphism, dynamic binding, and exception handling.
Object-Oriented Programming—Practice Students will be able to write object-oriented programs given an algorithm or design document as the basis of the implementation. Students will become more skilled at developing algorithms and programs given only problem statements. Students will be able to write, test, and debug moderate size (500-1000 lines of code) programs. The primary focus will be individual skills and abilities.
Problem Solving Students will gain additional abilities and sophistication in being able to take a written problem statement, determine the nature of the data provided and the results expected, produce a well-documented program that satisfies this specification, and systematically test their program. Students will produce modular programs, using good abstraction and with limited coupling between program elements.
Prerequisites:
Course Topics:
|