CSC-200 CS3: Data Structures
CS3: Data Structures covers the fundamentals of data structures, introduction to analysis of algorithms, and team development of software applications. This course is the third in a series of three required programming courses for a traditional computer science degree. Data structures covered include sets, lists, stacks, queues, linked lists, binary trees, and heaps. Advanced topics include, binary search trees, search and sort algorithms, recursion, and algorithm efficiencies in software development. Students will be introduced to project management and team dynamics through the development of a large software solution.
For more detailed course information view the
Course Outline
Department
Computer Science
Course Description
CS3: Data Structures covers the fundamentals of data structures, introduction to analysis of algorithms, and team development of software applications. This course is the third in a series of three required programming courses for a traditional computer science degree. Data structures covered include sets, lists, stacks, queues, linked lists, binary trees, and heaps. Advanced topics include, binary search trees, search and sort algorithms, recursion, and algorithm efficiencies in software development. Students will be introduced to project management and team dynamics through the development of a large software solution.
Credit Hours
4Semester(s) Course Will Be Offered
Fall, Spring
Course Learning Outcomes
- Identify and implement advanced data structures for the manipulation of data
- Integrate multiple algorithms to form a complex computer solution
- Analyze and evaluate the efficiencies of available data structures in order to select the appropriate solution for a given algorithm
- Plan, prioritize, and build a complex computer solution within a collaborative work environment
Topic Outline
- The Recursive method and the benefits of using recursion
- Benefits of generics
- Explore the relationship between interfaces and classes in the Java Collections Framework hierarchy
- Store unordered, nonduplicate elements using a set
- Compare the performance of sets and lists
- Estimate algorithm efficiency using Big O notation
- Explain growth rates and why constants and non dominating terms can be ignored in an estimation
- Determine the complexity of various types of algorithms
- Describe common growth functions
- Study and analyze time complexity of various sorting algorithms
- Design and implement a linked list using a linked structure
- Design and implement a stack class using an array list and a queue class using a linked list
- Design and implement a priority queue using a heap
- Design and implement a binary search tree
- Analyze the complexity of search, insertion, and deletion operations in AVL trees
- Understand what hashing is and what hashing is used for
- Model real-world problems using graphs
- Describe the graph terminologies:
- Vertices
- Edges
- Simple graphs
- Weighted/unweighted graphs
- Directed/undirected graphs
- Multithreading overview
- Create threads to run tasks using the Thread class
- Explain terms:
- TCP
- IP
- domain name
- domain name server
- steam-based communications
- packet-based communications
- Develop an example of a client/server application
- Work in a team to develop a software application
- Understand professional responsibilities and liabilities associated with software development
August