Download presentation
Presentation is loading. Please wait.
Published byRichard Griffin Modified over 9 years ago
1
Data Structures and Programming
2
http://www.cs.sfu.ca/CC/225/johnwill/ http://www.cs.sfu.ca/CC/225/johnwill/ John Edgar2
3
Assignments and labs – 30% Midterm exam in class – 25% Final exam – 45% John Edgar3
4
Data Structures Algorithms Software Development Programming John Edgar4
5
Data Structures and Abstract Data Types Stacks Queues Priority Queues Trees Graphs Hash Tables Algorithms Software Development Programming John Edgar5
6
Data Structures Algorithms Tools – Recursion Efficiency – O Notation Algorithms to support data structures Sorting Software Development Programming John Edgar6
7
Data Structures Algorithms Software Development Specification Design – OOP design Implementation Testing Programming John Edgar7
8
Data Structures Algorithms Software Development Programming Implementing data structures and algorithms Understanding stack and heap memory use Recursion Writing robust re-usable programs John Edgar8
9
At the end of this course you should, for each of the data structures we cover, be able to Describe the operations Explain common implementations Implement in a programming language (C++) Compare with other data structures Recommend which data structure to use for a given problem John Edgar9
10
At the end of this course you should, for each of the algorithms we cover, be able to Implement in a programming language (C++) Analyze running time and space requirements Compare with other algorithms of a similar nature John Edgar10
11
At the end of this course you should be able to Write algorithms using recursion Understand the advantages of disadvantages of using recursive algorithms Implement data structures using both arrays and reference structures as the underlying structure Compare array and reference structure implementations Use features of the C++ language to write well- structured programs John Edgar11
12
At the end of this course you should be able to Understand and describe the mathematical basis of O notation Compute the O notation running time of algorithms Understand the limitations of O notation John Edgar12
13
Develop problem solving techniques To take a problem statement And develop a computer program to solve the problem A solution consists of two components Algorithms Data storage John Edgar13
14
Problem solving Use abstraction to design solutions Design modular programs Use recursion as a problem-solving strategy Provide tools for the management of data Identify abstract data types (ADTs) Examine applications that use the ADTs Construct implementations of the ADTs John Edgar14
15
A good solution is cost effective We should minimize the cost of the software Running costs Resources (computing time and memory) Interaction costs (e.g. poor GUI may result in the loss of business) Costs related to errors (e.g. loss of customer information, storing incorrect data, etc.) Development and maintenance costs i.e. costs related to the software life cycle John Edgar15
16
Well structured Modular Modifiable Written with good style Well documented Easy to use Efficient Able to degrade gracefully (fail-safe) Debugged John Edgar16
17
Specification Design Risk Analysis Verification Coding Testing Refinement Production Maintenance John Edgar17 Documentation
18
Specification Understand the client’s problem and requirements Ensure that the requirements are clear and complete and understood by all stakeholders Design Plan the implementation of the application’s data and operations Plan the testing Risk Analysis Verification Ensure that algorithms are correct Ensure that the design satisfies the requirements (validation) Implementation John Edgar18
19
Testing Verify that the code works and meets the client’s requirements There are various types of testing, unit testing, integration testing, system testing, user acceptance testing Refining Production Package, distribute and install application and train users Maintenance Add features, and Fix bugs Documentation, which includes the user manual Common to all the phases of the life cycle John Edgar19
20
We are primarily concerned with three phases of the life cycle Design Implementation Testing John Edgar20
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.