CPSC 427a: Object-Oriented Programming

Similar documents
CPSC 427: Object-Oriented Programming

CPSC 427: Object-Oriented Programming

Object-Oriented Principles and Practice / C++

Study Guide to Exam 2

CPSC 427a: Object-Oriented Programming

Lecture 13 Introduction to Software Architecture

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Object Oriented Programming

CSCI 6620 Data Structures

Outline. Computer Science 331. Course Information. Assessment. Contact Information Assessment. Introduction to CPSC 331

Objects and Classes Lecture 1

Data Structures and OO Development II

ITE 205 Software Design and Programming I

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CSE 333 Lecture 1 - Systems programming

ITT Technical Institute. ET376 C/C++ Programming Onsite Course SYLLABUS

CSc 2310 Principles of Programming (Java) Jyoti Islam

Lecture 1b: Why C++?

Outline. Database Management Systems (DBMS) Database Management and Organization. IT420: Database Management and Organization

CSE341: Programming Languages Lecture 26 Course Victory Lap. Dan Grossman Spring 2016

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013

Paradigms of computer programming

San Jose State University - Department of Computer Science

C++ Programming Language Lecture 2 Problem Analysis and Solution Representation

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

CSE 333 Lecture 1 - Systems programming

Object-Oriented Programming CSCI-UA

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Software Engineering

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Introduction to UML. (Unified Modeling Language)

Transact Qualified Front End Developer

6. The Document Engineering Approach

CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points

CS240: Programming in C

CSE 142. Lecture 1 Course Introduction; Basic Java. Portions Copyright 2008 by Pearson Education

ECE573 Introduction to Compilers & Translators

Python for Analytics. Python Fundamentals RSI Chapters 1 and 2

Fundamentals of Digital System Design ECE 3700, CPSC 3700

CS 4800: Algorithms & Data. Lecture 1 January 10, 2017

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Compulsory course in Computer Science

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

Programming for Engineers in Python

COMP 410 Lecture 1. Kyle Dewey

CS 132 Exam #1 - Study Suggestions

The University of Aizu School of Computer Science and Engineering Introduction to Programming. Course Syllabus (Special Track for Foreign Students)

Introduction to Data Structures

Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon)

LAB 6 Testing the ALU

CIS 3308 Web Application Programming Syllabus

CS4470: Intro to UI Software CS6456: Principles of UI Software. Fall 2006 Keith Edwards

CS 1803 Pair Homework 3 Calculator Pair Fun Due: Wednesday, September 15th, before 6 PM Out of 100 points

20486-Developing ASP.NET MVC 4 Web Applications

Windows Server 2008 Applications Infrastructure Configuration (ITMT 2322)

Overview of the Class

Address book. Presenting the Java assignment about an Address Book v

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

Practical Programming Methodology

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

PRINCIPLES OF SOFTWARE BIM209DESIGN AND DEVELOPMENT 00. WELCOME TO OBJECTVILLE. Speaking the Language of OO

CS 3030 Scripting Languages Syllabus

Computer Science II Lecture 1 Introduction and Background

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

TDDD38 - Advanced programming in C++

Central Washington University Department of Computer Science Course Syllabus

CS 520 Theory and Practice of Software Engineering Fall 2017

In this third unit about jobs in the Information Technology field we will speak about software development

CS 2316 Individual Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 18th, before 11:55 PM Out of 100 points

Unified Modeling Language (UML) and Modeling

Writing Secure Code with Visual Studio Team System

COMP Data Structures

: Dimension. Lecturer: Barwick. Wednesday 03 February 2016

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

CSc 372 Comparative Programming Languages

Software Engineering Testing and Debugging Testing

IA010: Principles of Programming Languages

COMP Data Structures

CS 3030 Scripting Languages Syllabus

Think Java: How to Think Like a Computer Scientist, written by

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

CS 374 Fall 2014 Homework 2 Due Tuesday, September 16, 2014 at noon

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

SOFTWARE ENGINEERING

Object oriented programming Concepts

CSC207 Week 3. Larry Zhang

Check out FilesAndExceptions from SVN. Exam 2 Review File I/O, Exceptions Vector Graphics Project

CIS* Programming

Effective C++ Digital Collection: 140 Ways to Improve Your Programming

10961B: Automating Administration with Windows PowerShell

Transcription:

CPSC 427a: Object-Oriented Programming Michael J. Fischer Lecture 1 September 2, 2010 CPSC 427a 1/54

Overview Course information Goals Learning C++ Programming standards Comparison of C and C++ Example Insertion sort C version C++ version Building Your Code C++ Concepts Basic I/O Languages and Design Goals C++ Goals Differences Between C and C++ Using Classes CPSC 427a 2/54

About This Course CPSC 427a 3/54

Where to find information All information about this course is posted on the course website: http://zoo.cs.yale.edu/classes/cs427/2010a/ There you will find: Syllabus. The main textbook Exploring C++ by Alice Fischer. Lecture notes. Code samples. Homework assignments. The syllabus contains important additional information. Raed it! CPSC 427a 4/54

Course mechanics You will need a Zoo course account. Get it now! You can t submit work without it. Submit your assignments on the Zoo using the script in /c/cs427/bin/submit. I recommend that you buy the book Herbert Schildt, C++: The Complete Reference, 4th edition. It serves as a basic text for C++ as well as a reference manual. Course Requirements: Homework assignments ( 35%), two hour exams ( 20% each), and a significant programming project ( 25%). CPSC 427a 5/54

Topics to be Covered Major Areas 1. Foundations (basics of objects and classes) 2. Reusable software design (both language support and design technique) 3. Programming for reliability 4. Programming for efficiency 5. Software toolset and framework design CPSC 427a 6/54

Course goals - practical Learn how to follow instructions, and how question them if you think they are wrong. Learn how to get a big job done one module at a time. Learn how to use a reference manual. Learn how to design for efficiency and reliability. Learn how to test, analyze, and debug code. Learn how to present your work in a professional manner. Become proficient at C++ programming, starting with a knowledge of C. Learn how to use UML (Unified Modeling Language) to document your work. CPSC 427a 7/54

Course goals - conceptual What object-oriented programming is and isn t. The basic principles and patterns of object oriented design. Learn how C++ differs in syntax and semantics from standard ISO C on the one hand and from other languages with support for OO-programming such as Python, Ruby, and Java. Learn about classes, objects, type hierarchies, templates, and their implementations in C++. The principles behind the exception handler and how to use it. Learn how to use class libraries such as the C++ standard template library (STL), GTKmm, boost, etc. CPSC 427a 8/54

Kinds of Programming CPSC 427a 9/54

Two views of programming People program for different reasons. Programming is... 1. A means to solve computational problems; 2. The process of software construction. CPSC 427a 10/54

Problem solving Desired properties of programs for solving problems: Correct outputs from correct inputs Succinct expression of algorithm Simple development cycle Beginning programming courses tend to focus on programs to solve small problems. CPSC 427a 11/54

Software Construction Desired properties of software constructed for widespread use: Correct outputs from correct inputs Robust in face of bad inputs; reliable Economical in resource usage (time and space) Understandability and verifiability of code Security Ease of repurposing Ease of deployment Maintainability This course will focus on constructing large-scale software. CPSC 427a 12/54

Programming in the large Thousands of lines of code Written by many programmers Over a large span of time Deployed on a large number of computers With different architectures and operating systems Interacting with foreign code and devices CPSC 427a 13/54

C++ Programming Standards CPSC 427a 14/54

Three commandments for this course From Chapter 1 of Exploring C++: 1. Use C++ input and output, not C I/O, for all assigned work. 2. Don t use global variables. If you think you need one, ask for help. Your class-design is probably defective. 3. Test every line of code you write. It is your job to prove that your entire program works. If you submit a program without a test plan and test output, the TA will assume that it does not compile and will grade it accordingly. CPSC 427a 15/54

Can is not the same as should! From Chapter 1 of Exploring C++: C++ is a very powerful language, which, if used badly can produce projects that are badly designed, badly constructed, and impossible to debug or maintain. Your goal is to learn to use the language well, and with good style. Please read and follow the style guidelines in Section 1.2 Download the two tools files from the website. Read Section 1.3, about the tools library, and use this information to customize your own copy of the tools. CPSC 427a 16/54