Introduction to CS/SWE 332

Slides:



Advertisements
Similar presentations
EDUC4417 Senior Computers Dr. Mumbi Kariuki January 28, 2004 Object-Orientation David Cuillerier.
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Mutability SWE 332 Fall 2011 Paul Ammann. SWE 3322 Data Abstraction Operation Categories Creators Create objects of a data abstraction Producers Create.
Chapter 7 Testing Class Hierarchies. SWE 415 Chapter 7 2 Reading Assignment  John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented.
Object Oriented Databases - Overview
Object-Oriented Enterprise Application Development Course Introduction.
Java Course Outline Kumar Harshit, USW. Course Description Teaches students to program using the Java programming language with the help of the Netbeans.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
Object Oriented Programming CEN 221. Course Description Classes, objects, inheritance, polymorphism, graphical user interfaces, event handling, exception.
A Study of Professional Curriculum Planning for the Information Engineering Technology Programs of De Lin Institute of Technology Hung-Jin Chen De Lin.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Learning outcomes for BUSINESS INFORMATCIS Vladimir Radevski, PhD Associated Professor Faculty of Contemporary Sciences and Technologies (CST)
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION MIDTERM REVIEW Autumn 2011.
Effective C#, Chapter 1: C# Language Elements Last Updated: Fall 2011.
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
1 Introduction to Software Engineering Lecture 1.
332 Final Review Last updated Fall 2013 Professor Ammann.
619 Final Review Last updated Spring 2008 © : Paul Ammann.
CS-112 Object Oriented Concepts Course Syllabus. Outline  Instructor and Prerequisites  What this course is  Learning outcomes  Degree program outcomes.
Effective Java: Methods Common to All Objects SWE 619: Fall 2008 Paul Ammann.
Data Abstraction SWE 619 Software Construction Last Modified, Spring 2009 Paul Ammann.
Jordan-Webb - All Rights Reserved Tools and Techniques for Group Knowledge Management Paul Collins Jordan-Webb (847)
Mutability SWE 332 Fall 2015 Paul Ammann. SWE 3322 Data Abstraction Operation Categories Creators Create objects of a data abstraction Producers Create.
619 Final Review Last updated Fall 2011 Paul Ammann.
1 Welcome Alireza Humber College Lecture 1 Game 540 Alireza
Coming up Which methods are where? – Overriding Calling super’s methods Coupling and cohesion.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Principles of Programming & Software Engineering
EECS3311 Software Design Summer 2016 Przemyslaw Pawluk
Computer Network Fundamentals CNT4007C
CompSci 280 S Introduction to Software Development
INTERMEDIATE PROGRAMMING WITH JAVA
Software Engineering Principles I (Spring 2017)
Introduction to CS/SWE 332
Lecture 0 Software Engineering Course Introduction
Lecture 12 Inheritance.
Finnish National Framework for Qualifications and Other Learning
Fundamentals of Information Systems, Sixth Edition
Objects First with Java A Practical Introduction using BlueJ
“ Database (DB) and Database Management System (DBMS) “
Job Analysis Chapter 4.
MPCS – Advanced java Programming
Object Oriented Programming in Java
Object-Orientated Programming
Introduction SWE 619.
Abstraction Functions and Representation Invariants
Introduction to Programming 2
IS4550 Security Policies and Implementation
COP 5611: Operating Systems
COS 260 DAY 2 Tony Gauvin.
Chapter 6 – Architectural Design
Object oriented analysis and design
Introduction to Computer Science for Majors II
Method Verification CS/SWE 332 Paul Ammann.
Derived Classes in C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition,
Object-Oriented Programming
619 Final Review Last updated Spring 2010 © : Paul Ammann.
619 Final Review Fall 2017 Professor Ammann.
Database (DB) and Database Management System (DBMS)
Software Engineering (Second Year) Dr
CS1301 – Where it Fits Institute for Personal Robots in Education
Information Analysis, Organization, and Presentation
CS1301 – Where it Fits Institute for Personal Robots in Education
Object-Oriented PHP (1)
References: Eddie Burris, Rick Mercer
Some principles for object oriented design
Inheritance Lakshmish Ramaswamy.
Overview of BSSE at Rose-Hulman Institute of Technology
Method Verification Paul Ammann.
Presentation transcript:

Introduction to CS/SWE 332 Paul Ammann Fall 2018

Outline of Presentation Syllabus Software Engineering ACS degree Software Engineering Minor Rationale for ACS, Minor Topics in Course What’s new in 2018: Edition 3 of Bloch

Topics in SWE/CS 332 (ABET Course Outcomes) Demonstrate ability to specify and analyze stand-alone procedures and OO classes. Demonstrate ability to specify and analyze OO inheritance decisions Demonstrate ability to convert mutable data types to immutable and vice versa Demonstrate ability to correctly create and destroy OO objects Demonstrate understanding and competence in generic programming

Demonstrate ability to specify and analyze stand-alone procedures and OO classes Core material for understanding OO Contracts (specify in comments or JavaDoc) Abstraction Functions – toString() Representation Invariants Method Verification How Do I know my method is “correct”? Contracts and Testing Test Driven Development with JUnit

Demonstrate ability to specify and analyze OO inheritance decisions Core notion – Substitution Principle Interaction of Substitution Principle and Common Contracts Example: equals() contract Symmetry, transitivity, substitution: Pick any two! Mechanisms for extending classes Multiple inheritance Abstract classes Interfaces How, why, and when to disable inheritance

Demonstrate ability to convert mutable data types to immutable and vice versa Fundamental design decision Students typically biased towards mutable designs Goals: Understand how to convert from one to the other Understand design tradeoffs Class will practice in multiple languages

Demonstrate ability to correctly create and destroy OO objects Object Creation/Destruction is Complex! Constructors Destructors clone() Serialization General notions such as Constructor “chaining” Undefined state Interaction with inheritance

Demonstrate understanding and competence in generic programming Generics provide powerful facilities in Java Mechanism is very different from other languages Goal Understand use and power Also cover Bloch’s General Programming Items Key knowledge for industrial programming