Alex Stepanov Zander Kelley CSCE 221H Spring 2014.

Slides:



Advertisements
Similar presentations
Chapter 19 Vectors, templates, and exceptions Bjarne Stroustrup
Advertisements

Chapter 24 Numerics Bjarne Stroustrup
PROGRAMMING LANGUAGE (JAVA) UNIT 42 BY ROBERT BUTTERFIELD TELEPHONE Data Structures and Algorithms.
C++ Language Fundamentals. 2 Contents 1. Introduction to C++ 2. Basic syntax rules 3. Declaring and using variables.
Introduction to C++ Programming. Brief Facts About C++ Evolved from C Designed and implemented by Bjarne Stroustrup at the Bell Labs in the early 1980s.
CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Bjarne Stroustrup started work on C with Classes in 1979 at Bell Labs. In 1983 it was renamed C++.
1 STL and Its Design Principles Alexander Stepanov.
Educating Programmers: A Customer Perspective Alexander Stepanov A9.com Workshop on Quality Software: A Festschrift for Bjarne Stroustrup Texas A&M University,
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
1 CIS601: Object-Oriented Programming in C++ Note: CIS 601 notes were originally developed by H. Zhu for NJIT DL Program. The notes were subsequently revised.
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
COMP152 Object-Oriented Programming and Data Structures Spring 2011.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Object-Oriented Methods: Database Technology An introduction.
By Logan Phipps Hal student.  This power point explains some common programming languages enjoy  When done click on the home button to return to home.
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
Object Oriented Programming
COMPUTER PROGRAMMING. Introduction to C++ History Merges notions from Smalltalk and notions from C The class concept was borrowed from Simular67 Developed.
An Introduction to Programming Using Alice Object-Oriented Programming.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Long-term Evolution of AP® CS A Renee Ciezki SIGCSE 2013.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Bjarne Stroustrup began work on "C with Classes" in The idea of creating a new language originated from Stroustrup's experience in programming for.
Introduction to Object-oriented programming and software development Lecture 1.
Development of numerical library software in Java Feb 8, 2000 H.Okazawa, Shizuoka Seika College, Japan and T.Sasaki, KEK,Japan.
Introduction By: Dr. Javad Razjouyan. Programming Languages.
Object-Oriented Programming. An algorithm is a step-by-step process. A computer program is a step-by-step set of instructions for a computer. Every computer.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
C++
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Learning outcomes for BUSINESS INFORMATCIS Vladimir Radevski, PhD Associated Professor Faculty of Contemporary Sciences and Technologies (CST)
1 Programming Language History and Evolution In Text: Chapter 2.
Object Oriented GIS Andrew U. Frank Geoinfo TU Vienna overheads available from:
CSIII Proposal Mikhail Nesterenko CS Faculty Retreat May 3, 2013.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
Object Oriented Programming (FIT-II) J. H. Wang Feb. 20, 2009.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
Thinking in Parallel – Implementing In Code New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR.
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
Copyright © 2009 – Curt Hill Standard Template Library An Introduction.
Introducing C++ to Java Programmers by Kip Irvine updated 2/27/2003.
1 Welcome Alireza Humber College Lecture 1 Game 540 Alireza
Csontos Péter, Porkoláb Zoltán Eötvös Loránd Tudományegyetem, Budapest ECOOP 2001 On the complexity of exception handling.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
HIGH-LEVEL LANGUAGE PROGRAMMING PARADIGMS. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Programming Language History and Evolution
Object Oriented Programming Development
Introduction to Generic Programming in C++
CSC 421: Algorithm Design & Analysis
Programming Language History and Evolution
CSE 332 Overview and Structure
Introduction to the Standard Template Library
Foundations of Programming Languages – Course Overview
Programming Languages
Foundations of Programming Languages – Course Overview
Parameter Passing Actual vs formal parameters
Standard Template Library Model
CIS601: Object-Oriented Programming in C++
CSE Object Oriented Programing
CSCE156: Introduction to Computer Science II
Presentation transcript:

Alex Stepanov Zander Kelley CSCE 221H Spring 2014

Career Born in Moscow, USSR, in 1950 Studied mathematics at Moscow State University ( ) -led to opinions that good programming should be “like math” (or even “good programming is math). -decided he wanted to work in a less abstract field with more practical, real world applications. Worked on computer control systems for hydroelectric dams General Electric Research Center – Tecton (1977) Assistant Professor at Polytechnic University (1984) -experience with graph theory showed him that functional languages (with no notion of “state”) are not feasible for generic programming.

Career Ada Generic Library (with Dave Musser) -extended the work that Dave Musser did in a specific domain (computer algebra) to general applications. Bell Labs -early attempt to create a generic library for C/C++ using object-oriented techniques (inheritance, ect.) fails. However, he did realize the importance of the C/C++ memory model for generality without losing efficiency. HP Labs – C++ STL (1993) -STL now possible due to introduction of templates. Currently working at A9.com

Origins of the STL Food poisoning revelation: algorithms are algebraic structures -algorithms can be specified in generic forms that are abstract (with respect to notions of containers, data types, predicates, ect.) with only a few fundamental specifications. Bell Labs: OO methods not enough for abstract algorithms -Ability of pointers to simultaneously provide efficiency and abstractness gives hope that it is possible, and that a C- based language is the right language for the job. HP Labs: new templates make the C++ STL possible ANSI/ISO proposal: STL is not just theoretical – people want it. C++ Implementation: support of Bjarne Stroustrup -Stroustrup was an important ally politically, and he also made some nuanced additions to the language that allowed some of the more obscure uses of templates in the STL code.

Standard Template Library Allows uniform access to data Provides common algorithms at no efficiency cost compared to hand-written code Makes code shorter, more readable, and more standard Separates logical ideas in code resulting in more flexibiliy

Criticism of Object-Orientation Thinks generic programming should be the fundamental programming paradigm -not necessarily that object oriented design is not useful. Not everything is an object max() algorithm in Java Hopes for future C-based language with generic programming in mind Interviews: