CIS1869 - DATA STRUCTURES
4 Credit Hours
Student Level:
This course is open to students on the college level in either the Freshman or Sophomore year.
Catalog Description:
CIS1869 - Data Structures (4 hrs.)
This course covers fundamental data structures and algorithms, including arrays, stacks, queues, linked lists, trees, and hash tables. Students will implement and apply these structures, explore recursion and tree traversal techniques, and analyze performance tradeoffs to develop efficient, maintainable software solutions.
Course Classification: Lecture
Prerequisites:
CIS1867 Object-Oriented Programming
Co-requisites:
NONE
Controlling Purpose:
This course explores fundamental data structures and algorithms, focusing on their implementation and application in modern programming. Topics covered include arrays, stacks, queues, linked lists, trees, hash tables, recursion, binary search, and tree traversal techniques. Students will gain hands-on experience using and developing these structures while considering design patterns and interfaces. The course also examines performance tradeoffs and software maintainability to enhance problem-solving skills in software development.
Learner Outcomes:
Upon completion of the course, the student will:
- Implement Fundamental Data Structures - Develop and apply key data structures such as arrays, stacks, queues, linked lists, trees, and hash tables using a modern programming language.
- Analyze Algorithm Efficiency - Evaluate the performance tradeoffs of various algorithms and data structures, considering time and space complexity for different problem-solving scenarios.
- Apply Recursion and Tree Traversals - Utilize recursive techniques to solve problems efficiently and implement tree traversal methods such as in-order, pre-order, and post-order.
- Design and Use Interfaces and Design Patterns - Integrate interfaces and design patterns to create modular, maintainable, and scalable software solutions.
- Compare and Select Data Structures - Assess and select the most appropriate data structure for a given problem based on efficiency, usability, and maintainability considerations.
- Develop Software with Maintainability in Mind - Write clean, well-structured code while balancing performance optimization and software maintainability best practices.
Unit Outcomes for Criterion Based Evaluation:
The following outline defines the minimum core content not including the final examination period. Instructors may add other material as time allows.
UNIT 1: Implementing Fundamental Data Structures
Outcomes: Upon completion of this unit, students will be able to:
- Develop and apply key data structures such as arrays, stacks, queues, linked lists, trees, and hash tables.
- Implement data structures using a modern programming language.
- Understand the use cases and advantages of different data structures in problem-solving.
UNIT 2: Analyzing Algorithm Efficiency
Outcomes: Upon completion of this unit, students will be able to:
- Evaluate the time and space complexity of algorithms using Big-O notation.
- Compare the efficiency tradeoffs between different data structures and algorithms.
- Apply performance analysis techniques to optimize code execution.
UNIT 3: Applying Recursion and Tree Traversals
Outcomes: Upon completion of this unit, students will be able to:
- Use recursion to solve computational problems efficiently.
- Implement tree traversal techniques such as in-order, pre-order, and post-order traversal.
- Analyze the advantages and disadvantages of recursive versus iterative solutions.
UNIT 4: Designing and Using Interfaces and Design Patterns
Outcomes: Upon completion of this unit, students will be able to:
- Implement and utilize interfaces to promote modular programming.
- Apply common design patterns such as Singleton, Factory, Observer, and Strategy.
- Design scalable software solutions using appropriate design patterns.
UNIT 5: Comparing and Selecting Data Structures
Outcomes: Upon completion of this unit, students will be able to:
- Assess and select the most appropriate data structure for a given problem.
- Compare data structures in terms of efficiency, usability, and maintainability.
- Implement problem-specific data structures for optimized performance.
UNIT 6: Developing Software with Maintainability in Mind
Outcomes: Upon completion of this unit, students will be able to:
- Write clean, modular, and well-structured code following software engineering best practices.
- Balance performance optimization with long-term software maintainability.
- Refactor and document code to improve readability and maintainability.
Projects Required:
Varies, refer to syllabus.
Textbook:
Contact Bookstore for current textbook.
Materials/Equipment Required:
None
Attendance Policy:
Students should adhere to the attendance policy outlined by the instructor in the course syllabus.
Grading Policy:
The grading policy will be outlined by the instructor in the course syllabus.
Maximum class size:
Based on classroom occupancy
Course Time Frame:
The U.S. Department of Education, Higher Learning Commission and the Kansas Board of Regents define credit hour and have specific regulations that the college must follow when developing, teaching and assessing the educational aspects of the college. A credit hour is an amount of work represented in intended learning outcomes and verified by evidence of student achievement that is an institutionally-established equivalency that reasonably approximates not less than one hour of classroom or direct faculty instruction and a minimum of two hours of out-of-class student work for approximately fifteen weeks for one semester hour of credit or an equivalent amount of work over a different amount of time. The number of semester hours of credit allowed for each distance education or blended hybrid courses shall be assigned by the college based on the amount of time needed to achieve the same course outcomes in a purely face-to-face format.
Refer to the following policies:
402.00 Academic Code of Conduct
263.00 Student Appeal of Course Grades
403.00 Student Code of Conduct
Accessibility Services Program:
Cowley College, in recognition of state and federal laws, accommodates all students with a documented disability. If a student has a disability that will impact their ability to be successful in this course, please contact the Student Accessibility Coordinator for the needed accommodations.
DISCLAIMER: THIS INFORMATION IS SUBJECT TO CHANGE. FOR THE OFFICIAL COURSE PROCEDURE CONTACT ACADEMIC AFFAIRS.
|