CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC 9405 TAs: Osama Saleh,

Slides:



Advertisements
Similar presentations
Data Structures.
Advertisements

CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
1-1 CMPT 225 Data Structures and Programming Instructor: Aaron Hunter Section: E300 Campus: Harbour Centre Semester: Spring 2007.
CSCE 210 Data Structures and Algorithms
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CMSC 132: Object-Oriented Programming II
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Overview. Why data structures is a key course Main points from syllabus Survey Warmup program And now to get started...
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Administrivia- Introduction CSE 373 Data Structures.
Chapter 1 Principles of Programming and Software Engineering.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSCE 3110 Data Structures and Algorithm Analysis.
Data Structures and Programming.  John Edgar2.
1 Object Oriented Programming Computer Systems Engineering (D2) and Programming (P)
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
Introduction to Systems Analysis and Design Trisha Cummings.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
EECE 310 Software Engineering Lecture 0: Course Orientation.
CSCA48 Course Summary.
ITEC 2620A Introduction to Data Structures
Introduction to CMPT 225. What’s on the menu? Grading Course content Who’s who The story of life.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
Data Structures (Second Part) Lecture 1 Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
CS-2851 Dr. Mark L. Hornick 1 CS-2852 Data Structures Dr. Mark L. Hornick Office: L341 Phone: web: people.msoe.edu/hornick/
ITEC 2620M Introduction to Data Structures Instructor: Prof. Z. Yang Course Website: ec2620m.htm Office: Tel 3049.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Data Structures Using C++ 2E
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Data Structures CSCI 132, Spring 2014 Lecture 1 Big Ideas in Data Structures Course website:
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Data Structures and Algorithms in Java AlaaEddin 2012.
 Saturday, April 20, 8:30-11:00am in B9201  Similar in style to written midterm exam  May include (a little) coding on paper  About 1.5 times as long.
Chapter 2 Principles of Programming and Software Engineering.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
CMPT 238 Data Structures Instructor: Tina Tian. General Information Office: RLC 203A Office Hour: Tue and Fri 12:30 - 2:00PM.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2013.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
Principles of Programming & Software Engineering
CENG 707 Data Structures and Algorithms
CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone:
Principles of Programming and Software Engineering
CMPT 238 Data Structures Instructor: Tina Tian.
September 27 – Course introductions; Adts; Stacks and Queues
Introduction CSE 373 Data Structures.
Introduction to CS II Data Structures
Introduction to Computer Science for Majors II
Administrivia- Introduction
Principles of Imperative Computation
Administrivia- Introduction
Final Review B.Ramamurthy 5/8/2019 BR.
CMPT 238 Data Structures Instructor: Tina Tian.
Presentation transcript:

CMPT 225 Data Structures and Programming

Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh, Maryam Moslemi Naeini, Course website: Grades:

Course timetable Lectures: Mon, Wed, Fri: 1.30pm-2.30pm, West Mall 3210 Midterm: TBA Final Exam: TBA Office hours: Instructor: (2 hours) Mon, Wed, 2.30pm-3.30pm, T9405 TA(labs): (3 hours) TBA

Grading scheme Midterm: 25% Final: 45% Assignments: 30% (6 assignments each worth 5%) Late assignments: -20% each day Shifting weights: It is possible to shift 50% of the midterm weight (that is 12.5% of total weight) to final weight. No other shifts are possible!

CMPT 225 Topics Software Development Process Software Life Cycle Specification, Design and Testing Decomposition, Abstraction and Encapsulation Data Structures and Abstract Data Types Arrays and Linked Lists Stacks, Queues and Priority Queues Trees (Binary, Red-Black, Heaps) and Graphs Hash Tables Algorithms O() Notation Recursion Sorting Algorithms

Course Objectives Develop problem solving techniques 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) Construct implementations of the ADTs

Problem Solving and Software Engineering Coding without a solution design increases debugging time A team of programmers is needed for a large software development project Teamwork requires: An overall plan Organization Communication Software engineering Provides techniques to facilitate the development of computer programs

What is Problem Solving? Problem solving The process of taking the statement of a problem and developing a computer program that solves that problem A solution consists of: Algorithms Algorithm: a step-by-step specification of a method to solve a problem within a finite amount of time Data structures to store the data and support the algorithms

What is a Good Solution? A good solution is cost effective To develop and maintain: The total cost it incurs over all phases of the development process is minimal To run (i.e. to perform its task) Difficulties encountered by those who use the program (Interaction cost) Computer resources (time and memory) that the program consumes Consequences of a program that does not behave correctly Programs must be well structured and documented Remark: Efficiency is only one aspect of a solution’s cost

Software Life Cycle Specification Design Risk Analysis Verification Coding Testing Refinement Production Maintenance Documentation

Software Life Cycle Phases - 1 Specification Understand the client’s problem and requirements Ensure that the requirements are clear and complete and understood by all parties Design Plan the implementation of the application’s data and operations Plan the testing Risk Analysis Verification Ensure that algorithms are correct (methods: invariants, etc.) Ensure that the design satisfies the requirements (validation) Implementation Write application and test code

Software Life Cycle Phases - 2 Testing Verify that code works Verify that the code meets the client’s requirements There are various types of testing techniques: unit testing, integration testing, system testing, user acceptance testing Refining Production Package, distribute and install application and train users Maintenance Add features Fix bugs Documentation Common to all the phases of the life cycle Includes the user manual

Software Life Cycle and CMPT 225 We are primarily concerned with four phases of the life cycle Design Verification Implementation Testing