Overview. Why data structures is a key course Main points from syllabus Survey Warmup program And now to get started...

Slides:



Advertisements
Similar presentations
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Advertisements

Software Requirements Engineering
CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh,
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
Design. Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Challenges.
Software Engineering and Design Principles Chapter 1.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Department of Computer Science University of Maryland, College Park
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Data Abstraction & Problem Solving with C++ Fifth Edition by Frank.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 1 Principles of Programming and Software Engineering.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Data Abstraction: The Walls
Chapter 3 Planning Your Solution
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Data Structures and Programming.  John Edgar2.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Software.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
CompSci 105 SS 2005 Principles of Computer Science Lecture 4 Lecturer: Santokh Singh.
The Program Development Cycle
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Top-Down Design and Modular Development. The process of developing methods for objects is mostly a process of developing algorithms; each method is an.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Software Engineering Review CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and Computer Science.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
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.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Data Structures Using C++ 2E
Introduction to Computer Programming CS 126 Lecture 1 Zeke Maier.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
1 Chapter 1 Programming Languages Evolution of Programming Languages To run a Java program: Java instructions need to be translated into an intermediate.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 1 Data Abstraction: The Walls CS Data Structures Mehmet H Gunes Modified from authors’ slides.
11 Software Design CSCU 411 Software Engineering.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Chapter 2 Principles of Programming and Software Engineering.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Discussion of Course Syllabus Class will start momentarily. Please Stand By … CS 8532: Advanced.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad , Monday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Principles of Programming & Software Engineering
ITEC 370 Lecture 13 Design.
C++ Plus Data Structures
Chapter 1 Data Abstraction: The Walls
Principles of Programming and Software Engineering
Foundations of Computer Science
INFS 6225 – Object-Oriented Systems Analysis & Design
Chapter 2. Problem Solving and Software Engineering
Presentation transcript:

Overview

Why data structures is a key course Main points from syllabus Survey Warmup program And now to get started...

Problem-solving and software engineering What is problem-solving? The software life cycle What makes a good solution?

Problem solving (Optional) identifying a problem that can be solved by a computer Understanding the problem Designing, implementing, and testing a computer program to solve the problem

A solution is: an algorithm a step-by-step specification of a method to solve a problem within a finite amount of time plus a data structure a way of organizing the data the algorithm works on

The software life cycle Specification Design Risk analysis Verification Coding Testing & refining Production MAINTENANCE

Design Identify objects loosely coupled cohesive Specify the data flow among objects Specify each method’s purpose, assumptions, and I/O what it does, not how pre and post-conditions

Verification formal methods for proving that a program works correctly not necessarily efficiently, usably, etc.

Object-Oriented Design Abstraction and information hiding procedural abstraction data abstraction information hiding OOD Functional decomposition Modeling OO designs with UML Advantages of an OO approach

Key issues in programming A good program (problem solution) is: modular modifiable easy to use fail-safe stylish debuggable