Print Page
Introduction to Algorithms and Data Structures (CSCI 1933)
Total Credits:
4
Lecture Credits:
4
Description:
This course covers advanced object- oriented programming techniques to implement abstract data types and algorithms using the Java language. Topics you will study include: Data abstraction through classes, stacks, queues, linked lists, hash tables, binary trees, basic algorithmic analysis, searching and sorting algorithms, use of software development tools.
Topical Outline:
1. Java Fundamentals: object-oriented programming (OOP), variables, assignment, conditionals, loops, arrays, strings, test-driven development, I/O, Exception handling, classes, inheritance, generics, interfaces
2. The Efficiency of Algorithms (Big-O Notation); Use of software development tools (IDE, version control)
3. Linked lists, Stacks, Queues, Deques, and Priority Queues
4. Introduction to trees: basic terminology and operations, Binary search trees, Heaps
5. Dictionaries/Maps, Hash tables
6. Searching and sorting algorithms
Learning Outcomes:
1. Design algorithms and write Java language solutions to solve computational problems using linked lists, stacks, queues and priority queues
2. Analyze a program/algorithm to determine its time complexity using Big-O notation
3. Design algorithms and write Java language solutions to solve computational problems using dictionaries and hash tables
4. Design searching and sorting algorithms and write Java language solutions to solve computational problems
Prerequisites:
CSCI 1700 or
CSCI 1730 or
CSCI 1733