CompSci 105 SS 2005 Principles of Computer Science Lecture 4 Lecturer: Santokh Singh.

Slides:



Advertisements
Similar presentations
Advanced programming tools at Microsoft
Advertisements

Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Automated Software Verification with a Permission-Based Logic 20 th June 2014, Zürich Malte Schwerhoff, ETH Zürich.
TAP: Tests and Proofs, 12 February Testing and Verifying Invariant Based Programs in the SOCOS Environment Ralph-Johan Back, Johannes Eriksson and.
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Data Abstraction II SWE 619 Software Construction Last Modified, Spring 2009 Paul Ammann.
CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh,
Software Engineering and Design Principles Chapter 1.
Overview. Why data structures is a key course Main points from syllabus Survey Warmup program And now to get started...
Department of Computer Science University of Maryland, College Park
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Fall 2007CS 2251 Software Engineering Intro. Fall 2007CS 2252 Topics Software challenge Life-cycle models Design Issues Documentation Abstraction.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Chapter 1 Principles of Programming and Software Engineering.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Mathematics throughout the CS Curriculum Support by NSF #
Data Structures and Programming.  John Edgar2.
Ranga Rodrigo. Class is central to object oriented programming.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Class Specifications CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These slides are intended.
CompSci 105 SS 2005 Principles of Computer Science Lecture 1 Lecturer: Santokh Singh.
Introduction Ellen Walker CPSC 201 Data Structures Hiram College.
Data Abstraction CS 201j: Engineering Software University of Virginia Computer Science Nathanael Paul
1 “Not all recursive solutions are better than iterative solutions…” “… recursion, however, can provide elegantly simple solutions to problems of great.
Cs205: engineering software university of virginia fall 2006 Data Abstraction David Evans
(C) P. H. Welch Software Engineering Chapter 3.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Application: Correctness of Algorithms Lecture 22 Section 4.5 Fri, Mar 3, 2006.
CSC 480 Software Engineering Design by Contract. Detail Design Road Map Begin with architectural models  Class model: domain classes  Overall state.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 CompSci 105 SS 2005 Principles of Computer Science Lecture 6: Recursion Lecturer: Santokh Singh Assignment 1 due tomorrow. Should have started working.
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.
1 Lecture 14: Queues Lecturer: Santokh Singh CompSci 105 SS 2005 Principles of Computer Science.
Data Structures Using C++ 2E
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
David Streader Computer Science Victoria University of Wellington Copyright: David Streader, Victoria University of Wellington Debugging COMP T1.
OOP (Object Oriented Programming) Lecture 1. Why a new paradigm is needed? Complexity Five attributes of complex systems –Frequently, complexity takes.
1 Data Structures CSCI 132, Spring 2014 Lecture 1 Big Ideas in Data Structures Course website:
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Chapter 2 Principles of Programming and Software Engineering.
David Evans CS201J: Engineering Software University of Virginia Computer Science Lecture 5: Implementing Data Abstractions.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Final Exam Study Guide COP 4331 and EEL4884 OO Processes for Software Development © Dr. David A. Workman School of EE and Computer Science University of.
Principles of Programming & Software Engineering
Lecturer: Santokh Singh
CompSci 280 S Introduction to Software Development
ITEC 370 Lecture 13 Design.
SWEN421 – Lecture 3 Building High Integrity Software with SPARK Ada
C++ Plus Data Structures
About the Presentations
Overview Part 1 – Design Procedure Beginning Hierarchical Design
Component-Level Design
Chapter 1 Software Engineering.
Component-Level Design
Introduction to Data Structures
Software Engineering Lecture #9.
Data Abstraction David Evans cs205: engineering software
SWE 619 Software Construction Last Modified, Fall 2015 Paul Ammann
Lecture 4: Data Abstraction CS201j: Engineering Software
Data Structures and Algorithms for Information Processing
Chapter 2. Problem Solving and Software Engineering
CSE 1020:Software Development
Presentation transcript:

CompSci 105 SS 2005 Principles of Computer Science Lecture 4 Lecturer: Santokh Singh

Parity Abstraction Modular Design Procedural Abstraction Data Abstraction Abstract Data Types Information Hiding Software Life Cycle Basic Stages Specification and Design Verification via Loop Invariants Costs Associated with Software

Hacking Type in a heap of code

Hacking Type in a heap of code Battle compilation errors

Hacking Type in a heap of code Battle compilation errors Run the code

Hacking Type in a heap of code Battle compilation errors Run the code If doesn’t work, change a random thing

Software Engineering Large Projects Team Development Guaranteed Results Easy Modification

Abstractions Complex Object Idealised Model Ignore Inessential Details

Class Reps Namelogin First meeting today/tomorrow (..)..time Place (CompSci …)

Parity Abstraction Modular Design Procedural Abstraction Data Abstraction Abstract Data Types Information Hiding Software Life Cycle Basic Stages Specification and Design Verification via Loop Invariants Costs Associated with Software

Modular (Class) Design System SecretCodes String Random

Procedural (Method) Design Encode SecretCodes Main Decode

Information Hiding Program that uses the String Class Implementation of the String Class API for the String Class

Data Abstraction int x = 14;

Software Life Cycle Specification Design Verify Code Test Refine Produce Maintain

Software Life Cycle Specification Design Verify Code Test Refine Produce Maintain

Agreeing on a method Suppose we want a method that adds two integers uses the add method implements the add method

What needs to be specified? Suppose we want a method that adds two integers public int add ( int x, int y )

What needs to be specified? Suppose we want a method that adds two integers // General Description: // Precondition: // Postcondition: public int add ( int x, int y )

Course Book We have been referring to the Course Book during lectures:- Pages : Numbers in the Computer Pages : Data Representations Please attend ALL classes for better understanding & for your own good.