Jim Fawcett CSE687 – Object Oriented Design Spring 2005

Slides:



Advertisements
Similar presentations
CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
Advertisements

Intro to CIT 594
CMSC 132: Object-Oriented Programming II
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
CSE3030Lecture 11 Know Your User The First Slogan.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Tahir Nawaz Visual Programming C# Week 2. What is C#? C# (pronounced "C sharp") is an object- oriented language that is used to build applications for.
Object Oriented Software Development 1. Introduction to C# and Visual Studio.
System Center Operations Manager 2007 Dave Northey Microsoft Ireland.
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
CSIII Proposal Mikhail Nesterenko CS Faculty Retreat May 3, 2013.
Object Oriented Programming (FIT-II) J. H. Wang Feb. 20, 2009.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
Introduction to C++ Course Version 1.0. Topics Course Outline Course Materials Syllabus Blackboard Forum Why C++
ClickOnce Deployment (One-click Deployment)
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
Jim Fawcett CSE775 – Distributed Objects Spring 2006
Introduction to Object-oriented Programming
Windows Programming Environments
Presented by FACADE PATTERN
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2005.
CSE202 Object Oriented Programing
CSC 222: Object-Oriented Programming
Jim Fawcett CSE687-OnLine – Object Oriented Design Summer 2017
Jim Fawcett CSE775 – Distributed Objects Spring 2017
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
CSC 222: Computer Programming II
Factory Method Pattern
CSE775 - Distributed Objects, Spring 2006
Jim Fawcett CSE687 – Object Oriented Design Spring 2016
Jim Fawcett CSE687 – Object Oriented Design Spring 2003
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
CSE 332 Overview and Structure
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2004.
Appendix A: Guide to Using Microsoft Project 2002
CSC 222: Object-Oriented Programming
CS 519: Object-Oriented Analysis & Design IS 516: Selected Topics in Information Technology Instructor: Dr. Tarek Elghazaly Text Book: Craig Larman,
Lecture 2 of Computer Science II
Factory Method Pattern
Introduction CSE 1310 – Introduction to Computers and Programming
CSE 332 Overview and Structure
Design and Maintenance of Web Applications in J2EE
Introduction to Programming 2
CSE 332 Overview and Structure
Advanced Programming Fall 2017.
EECE 310 Software Engineering
Improving the structure of existing code
Intro to CIT 594
Object Oriented Analysis and Design
Chapter 7 –Implementation Issues
CO Games Concepts Week 25 Preparation for next year
CSE Object Oriented Programing
F II 1. Background Objectives
Appendix A: Guide to Using Microsoft Project 2002
Objects and Design Summer 2002
Jim Fawcett CSE687 – Object Oriented Design Spring 2003
Chapter 8 - Design Strategies
ClickOnce Deployment (One-click Deployment)
Jim Fawcett CSE687 – Object Oriented Design Spring 2002
Executable Specifications
Programming to Interfaces
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
GSP 470/570 Advanced Geospatial Analysis and Modeling
Presentation transcript:

Jim Fawcett CSE687 – Object Oriented Design Spring 2005 Where Do We Go From Here? Jim Fawcett CSE687 – Object Oriented Design Spring 2005

C++ in Depth The C++ Programming Language, 3rd Edition, Bjarne Stroustrup, Addison-Wesley, 1997 Complete and accurate The C++ Standard Library, Nicolai Josuttis, Addison-Wesley,1999 Very readable, and fairly complete. Some of the examples are over-simplified. C++ Coding Standards, Alexandrescu and Sutter, Addison-Wesley, 2005 Excellent review of what we covered in this class. Recommended study for interviews. C++ Common Knowledge, Stephen Dewhurst, Addison-Wesley, 2005 Clear, consise intermediate level discussion of C++ design issues and idoms. Modern C++ Design, Andrei Alexandrescu, Addison-Wesley, 2001 Most sophisticated book on templates I’ve seen. C++ Gotchas, Stephen Dewhurst, Addison-Wesley, 2003 99 items that describe common errors and correct methods Effective STL, Scott Meyers, Addison-Wesley, 2001 50 items that describe common errors and correct methods Exceptional C++, Herb Sutter, Addison-Wesley, 2000 47 items that describe common errors and correct methods.

Gentler C++ Accelerated C++, Andrew Koenig and Barbara Moo, Addison-Wesley, 2000 Starts with the STL and procedural programming. Builds up to classes, class relationships, and polymorphism. C++ Primer Plus, Third Edition, Stephen Prata, Waite Group, 1998 Large, thorough coverage of the C++ Language with lots of small examples.

Object Oriented Design Design Patterns, Erich Gamma, et. al., Addison-Wesley, 1995 This wonderful book is the text we use in the summer course of that name. You have to write software using the patterns to understand in detail what the book is saying, but well worth reading even if you don’t follow my advice. CSE776 - Design Patterns Course Presentations and discussions of 23 patterns from the book and half a dozen from other places. A relaxed, reflective look at OOD, with an orientation toward C++ Excellent practice making technical presentations, much like those you will be required to give when working professionally. But this is a much more forgiving atmosphere – a chance to learn these skills with help from the instructor and your classmates.

Is it Worthwhile to Study C++ Further? C++ is the system programming language for the foreseeable future. Standards work, focused on the library, may provide more platform tools like threading, directory support, and smart pointers. Only language that works in both managed and unmanaged code. C# and the .Net Framework are the best language/library/runtime combination available for the Windows platform. Usability is excellent for beginners as well as experts Intellisense and object browser are terrific tools Best integrated over the desktop and server platforms Becoming available on non-Wintel platforms Mono, GNUdotNet Java and J2EE have a large installed base but … My personal opinion is that Sun no longer has the financial muscle to vigorously support the Java infrastructure. They have continually refused to surrender any control over the language and packages to a standards body.

My Favorite Language C++ is my favorite programming language. Why? Deep copy model is by far the best model for scientific computing. You need real object identity to implement algorithms effectively, not just “assignment makes another reference”. I believe it’s easier to elegantly structure programs using C++: Templates Rich memory model Exceptional control over program execution. Global functions as well as classes. The STL provides a very powerful collection of containers and algorithms. It’s easier to build complex data structures with the STL than anything else I’ve used.

Open Libraries Loki library Boost library http://www.moderncppdesign.com/ Exploits template policy and template metaprogramming to provide flexible tools for implementing C++ programs: Smart pointers Generalized functors Object factories Boost library www.boost.org An open-source set of libraries started by members of the C++ standardization committee. Many useful capabilities for C++ Graphs Math testing

Other Links Association of C/C++ Users UML Tutorial: www.accu.org Book reviews and links UML Tutorial: bdn.borland.com/article/0,1410,31863,00.html Stroustrup's Home Page www.research.att.com/~bs/homepage.html Code Project www.codeproject.com Chris Sells www.sellsbrothers.com Guru of the Week www.gotw.ca C/C++ User's Journal www.cuj.com Dr. Dobb's Journal www.ddj.com techNetCast http://technetcast.ddj.com

End of Presentation