CS 3303-01 Data Structures - AY2022-T5
Dashboard My courses CS 3303-01 - AY2022-T5 16 June - 22 June Learning Guide Unit 1
Learning Guide Unit 1 Unit 1 Learning Guide Overview
Unit 1: Introduction to Data Structures and Algorithms
Topics:
Philosophy of data structures Design patterns The role of algorithms in problem solving : Mathematical foundations o Sets and Relations Logarithms Recursion Proofs
Learning Objectives:
Understand the need for data structures and recognize the cost / resource tradeoffs that exist and must be considered in the design and implementation of data structures and algorithms. Understand basic data structures concepts including: oADT (Abstract Data Type) o Aggregate and composite types o Data types and Data structures o Physical and logical forms of ADT's Understand basic design patterns for problem solving including: flyweight, visitor, composite, and strategy Recognize and understand the role of algorithms in problem solving and understand the characteristics of an algorithm Understand and be able to apply fundamental set and relations concepts and notation Understand and be able to apply mathematical concepts including logarithms, summations and recurrences Understand the concept of recursion and how it is implemented in algorithms Understand and be able to use mathematical proof techniques including:
o Direct Proof o Proof by Contradiction Proof by mathematical induction
Tasks: Complete the Reading assignment Review the unit overview in the Learning Guide Develop and Post your response for the Data Type discussion question and follow it up with feedback and assessment to at least 3 of your peers. Take the Self Quiz Reflect on your learning in the unit and post reflections throughout the week to the Learning Journal
Learning Guide Unit 1
Unit 1 Learning Guide
Introduction
Unit one should introduce some new material and a lot of material that is familiar form preceding courses including mathematical concepts such as logarithms, sets, and relations. It is extremely important that you develop a level of proficiency with logarithms as they will be used throughout the course as part of the Asymptotic Analysis process. In Chapter one of the Shaffer text, we will be introduced to the need for data structures and the terminology that is employed with data structures. We will also be introduced to the role that algorithms play in problem solving. What we quickly begin to realize is that the data structures and algorithms are inextricably linked to each other as data structures (such as binary trees, lists. linked lists, heaps, stacks, queues, and other structures) are implemented with their corresponding algorithms. The role of algorithms certainly does extend beyond the implementation of data structures; however, it is impossible to study the one without gaining an understanding of the other.
An important concept that we are introduced to is the idea of the cost and resource tradeoffs that must be considered when developing data structures or algorithms. Computer capabilities are increasing all the time. In 1965 Gordon Moore made a prediction about the increase in computing capability which has become known as Moore's law. "Moore's