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.

Credits

4

Prerequisite

CSC-190

Lecture Contact Hours

4

Lab Contact Hours

1

Other Contact Hours

0

Department

  • Computer Science

Grading Scheme

  • Letter

SUNY Gen Ed Credit

  • No

Semesters Course Will Be Offered

  • Fall
  • Spring

Course Learning Outcomes

  1. Identify and implement advanced data structures for the manipulation of data
  2. Integrate multiple algorithms to form a complex computer solution
  3. Analyze and evaluate the efficiencies of available data structures in order to select the appropriate solution for a given algorithm
  4. Plan, prioritize, and build a complex computer solution within a collaborative work environment
View Course Outline

CSC 200: CS3: Data Structures

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

4

Contact Hours

Lecture4
Lab1
Other0

Grading Scheme

Letter

Semester(s) Course Will Be Offered

Fall, Spring

Prerequisites

CSC-190

Capstone Course

Yes

Course Learning Outcomes

  1. Identify and implement advanced data structures for the manipulation of data
  2. Integrate multiple algorithms to form a complex computer solution
  3. Analyze and evaluate the efficiencies of available data structures in order to select the appropriate solution for a given algorithm
  4. Plan, prioritize, and build a complex computer solution within a collaborative work environment

Topic Outline

  1. The Recursive method and the benefits of using recursion
  2. Benefits of generics
  3. Explore the relationship between interfaces and classes in the Java Collections Framework hierarchy
  4. Store unordered, nonduplicate elements using a set
  5. Compare the performance of sets and lists
  6. Estimate algorithm efficiency using Big O notation
  7. Explain growth rates and why constants and non dominating terms can be ignored in an estimation
  8. Determine the complexity of various types of algorithms
  9. Describe common growth functions
  10. Study and analyze time complexity of various sorting algorithms
  11. Design and implement a linked list using a linked structure
  12. Design and implement a stack class using an array list and a queue class using a linked list
  13. Design and implement a priority queue using a heap
  14. Design and implement a binary search tree
  15. Analyze the complexity of search, insertion, and deletion operations in AVL trees
  16. Understand what hashing is and what hashing is used for
  17. Model real-world problems using graphs
  18. Describe the graph terminologies:
    1. Vertices
    2. Edges
    3. Simple graphs
    4. Weighted/unweighted graphs
    5. Directed/undirected graphs
  19. Multithreading overview
  20. Create threads to run tasks using the Thread class
  21. Explain terms:
    1. TCP
    2. IP
    3. domain name
    4. domain name server
    5. steam-based communications
    6. packet-based communications
  22. Develop an example of a client/server application
  23. Work in a team to develop a software application
  24. Understand professional responsibilities and liabilities associated with software development
    August