Cs 3303 Data Structures
CIU Request Information
Course Outline
- Cs 1101 Programming Fundamentals
- Cs 1102 Programming 1
- Cs 1103 Programming 2
- Cs 1104 Computer Systems
- Cs 2203 Databases 1
- Cs 2204 Communications And Networking
- Cs 2205 Web Programming 1
- Cs 2301 Operating Systems 1
- Cs 2401 Software Engineering 1
- Cs 3303 Data Structures
- Cs 3304 Analysis Of Algorithms
- Cs 3305 Web Programming 2
- Cs 3306 Databases 2
- Cs 3307 Operating Systems 2
- Cs 3308 Information Retrieval
- Cs 4402 Comparative Programming Languages
- Cs 4403 Software Engineering 2
- Cs 4404 Advanced Networking And Data Security
- Cs 4405 Mobile Applications
- Cs 4406 Computer Grap/hics
- Cs 4407 Data Mining And Machine Learning
- Cs 4408 Artificial Intelligence
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:
- Implement basic data structures and algorithms using the Java language.
- Select the appropriate data structure or algorithm to solve a problem.
- Apply methods of performance evaluation including asymptotic analysis, to assess data structures and associated algorithms.
- 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