Www.umbc.edu CMSC202 Computer Science II for Majors Lecture 01 – Introduction and C++ Primer Dr. Katherine Gibson Based on slides by Chris Marron at UMBC.

Slides:



Advertisements
Similar presentations
Copyright © 2002 Pearson Education, Inc. Slide 1.
Advertisements

Chapter 1 C++ Basics. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 1-2 Learning Objectives Introduction to C++ Origins, Object-Oriented.
CS0007: Introduction to Computer Programming Console Output, Variables, Literals, and Introduction to Type.
 2005 Pearson Education, Inc. All rights reserved Introduction.
Introduction to C Programming
1 Java Basics. 2 Compiling A “compiler” is a program that translates from one language to another Typically from easy-to-read to fast-to-run e.g. from.
Three types of computer languages
 2007 Pearson Education, Inc. All rights reserved Introduction to C Programming.
A simple C++ program /* * This program prints the phrase "Hello world!" * on the screen */ #include using namespace std; int main () { cout
CSC 200 Lecture 2 Matt Kayala 1/25/06. Lecture Objectives More detailed intro to C++ Variables, Expressions, and Assignment Statements Console Input/Output.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Introduction to C Programming
CMSC 202 Computer Science II for Majors Fall 2009 Introduction.
COMPUTER SCIENCE I C++ INTRODUCTION
Introduction to C++ - How C++ Evolved Most popular languages currently: COBOL, Fortran, C, C++, Java (script) C was developed in 1970s at AT&T (Richie)
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
CPS120: Introduction to Computer Science Lecture 8.
CSM-Java Programming-I Spring,2005 Introduction to Objects and Classes Lesson - 1.
High-Level Programming Languages: C++
CMSC 202 Computer Science II for Majors Object-Oriented Programming.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
CPS120: Introduction to Computer Science Variables and Constants Lecture 8 - B.
CPS120: Introduction to Computer Science
CIT 590 Intro to Programming First lecture on Java.
Rossella Lau Lecture 1, DCO10105, Semester B, DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:
Chapter 1 C++ Basics Copyright © 2012 Pearson Addison-Wesley. All rights reserved.
Slide 1. Slide 2 Chapter 1 C++ Basics Slide 3 Learning Objectives  Introduction to C++  Origins, Object-Oriented Programming, Terms  Variables, Expressions,
Introduction to Java Java Translation Program Structure
School of Computer Science & Information Technology G6DICP - Lecture 4 Variables, data types & decision making.
Programming Fundamentals. Overview of Previous Lecture Phases of C++ Environment Program statement Vs Preprocessor directive Whitespaces Comments.
Today’s Lecture  Literal  Constant  Precedence rules  More assignment rules  Program Style.
How to execute Program structure Variables name, keywords, binding, scope, lifetime Data types – type system – primitives, strings, arrays, hashes – pointers/references.
General Computer Science for Engineers CISC 106 Lecture 12 James Atlas Computer and Information Sciences 08/03/2009.
CPS120: Introduction to Computer Science Variables and Constants.
12/14/2016CS150 Introduction to Computer Science 1 Announcements  Website is up!   All lecture slides, assignments,
CMSC 202 Java Primer 1. July 24, 2007 Copyright © 2008 Pearson Addison-Wesley 2 A Sample Java Application.
ICS102 Lecture 1 : Expressions and Assignment King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer.
C++ Primer I CMSC 202. Topics Covered Our first “Hello world” program Basic program structure main() Variables, identifiers, types Expressions, statements.
1 ENERGY 211 / CME 211 Lecture 3 September 26, 2008.
CMSC 202 Computer Science II for Majors Fall 2010 Introduction Version 9/101.
Introduction CMSC 202 Fall Instructors Mr. Ryan Bergeron – Lecture Section 01 Tues/Thu 1:00 – 2:15 am, Sondheim 111 – Lecture Section 04 Tues/Thu.
CMSC201 Computer Science I for Majors Lecture 05 – Comparison Operators and Boolean (Logical) Operators Prof. Katherine Gibson Prof. Jeremy.
CMSC201 Computer Science I for Majors Lecture 03 – Variables
Fundamentals of Programming I Overview of Programming
C++ First Steps.
Chapter 1.2 Introduction to C++ Programming
Lecture 1b- Introduction
UMBC CMSC 104 – Section 01, Fall 2016
Chapter 10 Programming Fundamentals with JavaScript
Chapter 1.2 Introduction to C++ Programming
Chapter 1.2 Introduction to C++ Programming
Chapter 1.2 Introduction to C++ Programming
CMSC201 Computer Science I for Majors Lecture 22 – Binary (and More)
Revision Lecture
ICS103 Programming in C Lecture 3: Introduction to C (2)
Data types and variables
Introduction to C++ October 2, 2017.
Lecture 2-3 C++ Basic Constructs
Computer Science 210 Computer Organization
Introduction to the C Language
Chapter 10 Programming Fundamentals with JavaScript
Introduction to Python
CMSC202 Computer Science II for Majors Lecture 04 – Pointers
CS150 Introduction to Computer Science 1
Building Java Programs
Introduction to C++ Programming
CMSC202 Computer Science II for Majors Lecture 03 – Arrays and Functions Dr. Katherine Gibson Based on slides by Chris Marron at UMBC.
Welcome to AP Computer Science A!
Warmup Write a function to add two integer parameters and return the result.
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

CMSC202 Computer Science II for Majors Lecture 01 – Introduction and C++ Primer Dr. Katherine Gibson Based on slides by Chris Marron at UMBC

Course Overview

Course Information Second course in the CMSC intro sequence – Preceded by 201 CS majors must pass with a B or better CMPE majors must get at least a C 3

Quick Note About Grades Students are not allowed to retake a class if they have taken its successor If you are a CMSC major and received a “C” in 201, you must retake 201 before this class – If you receive a grade in this class, you can no longer be a computer science major at UMBC! Students are only allowed two attempts in CMSC 201 or CMSC 202 – A “W” counts as an attempt! 4

About Me Dr. Katherine Gibson – Education BS in Computer Science, UMBC PhD, University of Pennsylvania – Likes Video games Dogs 5

What the Course is About An introduction to – Object-oriented programming (OOP) and object-oriented design (OOD) – Basic software engineering techniques Emphasis on proper program design Tools – C++ programming language, GCC (Gnu Compiler) – Linux (GL system) 6

Review of the Syllabus Grading Criteria Course Policies Attendance Communication Academic Integrity Professor Marron’s website (for assignments) 7

Announcement: Note Taker A peer note taker has been requested for this class. A peer note taker is a volunteer student who provides a copy of his or her notes for each class session to another member of the class who has been deemed eligible for this service based on a disability. Peer note takers will be paid a $200 stipend for their service. Peer note taking is not a part time job but rather a volunteer service for which enrolled students can earn a stipend for sharing the notes they are already taking for themselves. If you are interested in serving in this important role, please fill out a note taker application on the Student Disability Services website or in person in the SDS office in Math/Psychology

Today’s Objectives To discuss the differences between the Python and C++ programming languages – Interpreted vs compiled – More restrictions on programming “style” To begin covering the basics of C++ – Classes – Object-Oriented Programming 9

Development Environment You will use the GL Linux systems and GCC (GNU Compiler Collection) suite for development. You will learn to be semi-literate in Linux and shell usage. You will learn to use a text editor — Emacs is recommended. You may use IDEs such as Eclipse or XCode, but support will not be provided, and… Your programs must compile and function correctly on the GL Linux systems. 10

Challenges Getting used to the Linux environment (tends to hit transfer students hardest). Starting the projects early. CMSC 202 is much more difficult than CMSC 201 – you will need to be more self-sufficient. Waiting too late to seek help. Thinking all that matters is the projects. – Practice programming outside of the projects! 11

Why C++ for CMSC 202? Popular modern OO language Wide industry usage Used in many types of applications Desirable features – Object-oriented – Portable (not as much as Java, but fairly so) – Efficient – Retains much of its C origins 12

Procedural vs OOP Procedural – Modular units: functions – Program structure: hierarchical – Data and operations are not bound to each other – Examples: C, Pascal, Basic, Python 13 A Collection of Objects A Hierarchy of Functions Object-Oriented (OO) – Modular units: objects – Program structure: a graph – Data and operations are bound to each other – Examples: C++, Java, Python (huh?!)

Classes First off, what is a class? – A data type containing: Attributes – make up the object’s state Operations – define the object’s behaviors 14 Bank Account account number owner’s name balance interest rate more? deposit money withdraw money check balance transfer money more? Operations (behaviors) Type Attributes (state) String sequence of characters more? compute length concatenate test for equality more?

Objects An object is a particular instance of a class For any of these accounts, one can… – Deposit money – Withdraw money – Check the balance – Transfer money 15 Marron’s AccountChang’s AccountGibson’s Account Katherine Gibson $ % Chris Marron $1, % Richard Chang $ %

Interpreters, Compilers, & Hybrids 16 Interpreted Languages (e.g. JavaScript, Perl, Ruby) translate & execute source code interpreter Interpreter translates source into binary and executes it Small, easy to write Interpreter is unique to each platform (operating system) Compiled Languages (e.g. C, C++) Compiler is platform dependent compile source codebinary code execute compilercommand JVM is an interpreter that is platform dependent Many other models: e.g., Java (Python is stranger still): Bytecode is platform independent compile translate & execute source code bytecode Java Virtual Machine (JVM) Java compiler

C++ Compilation and Linkage 17 C++ source code Linux C++ compiler Windows C++ compiler Linux linker Linux C++ binary Linux C++ executable code Windows linker Windows C++ binary Windows C++ executable code Linux C++ code library binary library code Windows C++ code library binary library code Any text editor

Python vs C++ Syntax These pieces of code do the same thing! What’s different about these two languages? 18 print "Hello, world" quotient = 3 / 4 if quotient == 0: print "3/4 == 0", print "in Python" else: print "3/4 != 0" #include using namespace std; int main() { int quotient; cout << "Hello, world"; quotient = 3 / 4; if (quotient == 0) { cout << "3/4 == 0"; cout << " in C++"; } else { cout << "3/4 != 0"; } return 0; } PythonC++

Python vs C++ Syntax: Answer 19 print "Hello, world" quotient = 3 / 4 if quotient == 0: print "3/4 == 0", print "in Python" else: print "3/4 != 0" #include using namespace std; int main() { int quotient; cout << "Hello, world"; quotient = 3 / 4; if (quotient == 0) { cout << "3/4 == 0"; cout << " in C++"; } else { cout << "3/4 != 0"; } return 0; } PythonC++ Must have a “ main() ” function Statements end with “ ; ” Variables must be declared “ if/else ” syntax different Statement blocks demarcated by “ {...} ” But much of it is similar

C++ Primer 20

A Sample C++ Program 21

Sample Program Usage 22

C++ Identifiers and Variables C++ Identifiers – Can’t use keywords/reserved words – Case-sensitivity and validity of identifiers – Meaningful names! – Used for variables, class names, and more Variables – A memory location to store data for a program – Must declare all data before use in program 23

Variable Declaration Syntax: ; Examples: int sum; float average; double grade = 98; Must be declared before being used Must be declared to be of a given type (e.g. int, float, char, etc.) 24 Don’t forget the semicolon at the end!

Declaring a Variable When we declare a variable, we tell the compiler: – When and where to set aside memory space for the variable – How much memory to set aside – How to interpret the contents of that memory; AKA, the specified data type – What name we will be referring to that location by: its identifier, or name 25

Naming Conventions Naming conventions are rules for names of variables to improve readability – CMSC 202 has its own standards, described in detail on the course website Start with a lowercase letter Indicate "word" boundaries with an uppercase letter Restrict the remaining characters to digits and lowercase letters topSpeed bankRate1 timeOfArrival Note: variable names are still case sensitive! 26

Simple Data Types 27

Simple Data Types 28 Important Data Types

More Simple Data Types 29

More Simple Data Types 30 Important Data Types

Data Types One of the big changes from Python to C++ Variables can only be of one type – A string cannot be changed into a list – A tuple cannot be changed into a dictionary – An integer is always an integer – forever A variable’s type must be explicitly declared 31

Assigning Data You can initialize data in declaration statement – Results will be "undefined" if you don’t initialize! int myValue = 0; Assigning data during execution – Lvalues (left-side) & Rvalues (right-side) Lvalues must be variables Rvalues can be any expression – Example: distance = rate * time; Lvalue: " distance “ Rvalue: " rate * time " 32

Data Assignment Rules Compatibility of Data Assignments – Type mismatches Cannot place value of one type into variable of another type – intVar = 2.99;  2 is assigned to intVar ! – Only the integer part "fits", so that’s all that goes – Called "implicit" or "automatic type conversion" Literals – 2, 5.75, 'Z', " Hello World\n " – Also known as "constants": can’t change in program 33

Literal Data 34 Literals – Examples: 2 // Literal constant int 5.75 // Literal constant double 'Z' // Literal constant char "Hello World\n" // Literal constant string Cannot change values during execution Called "literals" because you "literally typed" them in your program!

Announcements There will be an important handout on Tuesday, which will only be available in class The Blackboard site will be available soon Next Time: Continuation of the C++ Primer, and we’ll begin Functions 35