Dr. Don Bailes




Thursday, April 25, 2024

Course Number



CSCI 2210

Course Title

Data Structures

4 hours credit.

Prerequisites: CSCI 1260 - Intro II , CSCI 1900 - Discrete Math for Computing , and CSCI 2020 - Intro to Database Systems

Course Goals

Goals for students in this course are the following.

  • Continue to develop and improve skills in object-oriented analysis, design, programming, and testing.
  • Learning to make appropriate algorithm design decisions with respect to program size, execution speed, and storage efficiency. 
  • Understand common data structures and the algorithms that build and manipulate them including various sorting, searching, and hashing algorithms.  Data structures include arrays, arraylists, linked lists, stacks, queues, priority queues, trees, heaps (binary search trees, balanced binary trees, B-trees, and others), hash tables, and associative containers.  Features, properties, applications, enumerators, and performance issues. 
  • Generate and use random numbers for simple simulation and modeling.
  • String  and regular expression processing.
  • Learn to understand and use basic algorithm analysis including both theoretical and empirical methods.  Big-Oh, Little-Oh, Big Omega, Big Theta, and an execution profiling tool.

Objectives and Outcomes

Students who complete this course should be able to do the following things.

  • Make appropriate data structure and algorithm design decisions with respect to program size, execution speed, and storage efficiency (Outcome 1, 2, 11, 16)
  • Understand common data structures (such as arrays, linked lists, stacks, queues, priority queues, trees, heaps, hash tables, associative containers) and the algorithms that build and manipulate them including various sorting, searching, and hashing algorithms(Outcome 2, 11, 16)
  • Use appropriate classes and algorithms found in the .NET library and elsewhere (Outcomes 2, 11, 16)
  • Do basic work with random numbers, simulation and modeling, and string processing including regular expressions (Outcomes 2, 11, 16)
  • Use basic algorithm analysis tools including both theoretical and empirical methods such as Big-Oh, Little-Oh, Big Omega, Big Theta, and execution profiling tools (Outcome 2, 4)
  • Document source code to meet course standards (Outcome 1)

Topics

Some of the topics that are discussed in this course include the following.

  • C# and .NET. Syntax, I/O, properties, operator overloading, GUI; Use of a modern IDE with intellisense, snippets, refactoring, and other tools; debugging tools
  • Generics; type-casting; exception handling; inheritance
  • Enumerators and interfaces
  • Arrays, Lists, Strings, Stacks, Queues, Priority Queues, Linked Lists, Trees, Binary Search Trees, Balanced Binary Search Trees, BTrees, Max and Min Heaps, Associative Containers, Hash Tables
  • Data structures that have existing implementations in the .NET library and some we must build ourselves. Deciding which data structure is appropriate in a given situation.
  • Recursion. Sorting, searching, and other algorithms.
  • Performance issues for common data structures and algorithms. Use of an execution profiling tool and algorithm analysis with big-Oh notation.

Deliverables

Final grades will be determined by the weighted average of all deliverables for the course as indicated in the following tentative list.  

  • Tests – 45%
  • Quizzes – 20%
  • Lab Assignments – 25%
  • Homework/Writing – 10%

Other factors such as regular attendance, consistent and appropriate code documentation, and on-time assignment submission will also affect the final grade. See the course policies for more details.

The following scale will be used initially, but it may adjusted as appropriate.

Percentage

Letter Grade

93-100

90-92

A-

87-89

B+

83-86

80-82

B-

77-79

C+

73-76

70-72

C-

67-69

D+

60-66

0-59

Materials

Lectures and other materials will be posted on the course web site along with assignments. The textbook for the course is:

Textbook for 2210

Modern Software Development Using C#.NET, by Richard Wiener , Thompson Course Technology.

 

Useful links to resources for this course are found on the Courses page.