Cs 3303 Data Structures

CIU Request Information

CS 3303 DATA STRUCTURES

Prerequisites

CS 1103 Programming 2

Course Description:

This course introduces the fundamental concepts of data structures and the algorithms that proceed from them. Although this course has a greater focus on theory than application the assignments, examples, and cases introduced throughout the course help to bridge the gap between theoretical concepts and real world problem solving. We will be using a software tool that will enhance our understanding of the operation and function of the data structures and algorithms explored throughout the course by visually animating examples of data structures and algorithms so that we can understand their operation. Key topics within this course will include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, tress, and graphs), and the basics of algorithmic analysis.

Required Textbook and Materials:

The main required textbooks for this course are listed below, and can be readily accessed using the provided links. There may be additional required/recommended readings, supplemental materials, or other resources and websites necessary for lessons; these will be provided for you in the course’s General Information and Forums area, and throughout the term via the weekly course Unit areas and the Learning Guides.

A Practical Introduction to Data Structures and Algorithms Analysis, Edition 3.1 By Clifford A. Shaffer
Copyright © 2009-2011 by Clifford A. Shaffer
Department of Computer Science, Virginia Tech University

Data Structures and Algorithms: Annotated Reference with Examples
By Granville Barnett and Luca Del Tongo
Copyright © 2008 by Granville Barnett and Luca Del Tongo
Released to public availability by Dot.NetSlackers

Available for download from the course homepage

Software Requirements/Installation:

Data structures is a course that is steeped in theory. The focus in this course is not on the development of programs but rather understanding basic computer science concepts and as such this course will not require a lot of development with a programming language. This course does, however, present the implementation of data structures and basic algorithms through the use of pseudo code and java code. Several examples of algorithms will be implemented using Java programming and then animated and visualized with the Jeliot tool (http://cs.joensuu.fi/jeliot/). Jeliot can be executed directly form a Java enabled browser (including Google Chrome, Windows Internet Explorer, and Mozilla Firefox).

Due to issues with the Jeliot tool, some students may find it easier or necessary to use Eclipse for the Assignments. Eclipse comes in two versions, a Cloud environment named Orion and a Desktop environment named Neon. Either can be used to complete assignments. Both version can be found at the following link: http://www.eclipse.org/downloads/. One caveat, the Eclipse software versions and packages are constantly updated, the onus is on the student to stay current. Support can be found via Eclipse message boards and through Google.

Learning Objectives and Outcomes:

By the end of this course students will be able to:

  1. Implement basic data structures and algorithms using the Java language.
  2. Select the appropriate data structure or algorithm to solve a problem.
  3. Apply methods of performance evaluation including asymptotic analysis, to assess data structures and associated algorithms.
  4. Develop an understanding of standard data structures, including lists, stacks, queues, binary search trees, and hash tables and be able to articulate the characteristics and operation of each.

Course Schedule and Topics:

This course will cover the following topics in eight learning sessions, with one Unit per week. The Final Exam will take place during Week/Unit 9.

Week 1: Unit 1– Introduction to Data Structures and Algorithms

Week 2: Unit 2- Algorithm Analysis

Week 3: Unit 3– Lists, Stacks, Queues, and Dictionaries

Week 4: Unit 4– Binary trees

Week 5: Unit 5– Non-binary Trees

Week 6: Unit 6- Internal Sorting techniques and algorithms

Week 7: Unit 7- File Processing and external sorting

Week 8: Unit 8- Searching and indexing techniques and algorithms

Week 9: Unit 9- Review Final Exam