CS 144 Advanced C++ Programming January 24 Class Meeting

Slides:



Advertisements
Similar presentations
Using MyMathLab Features You must already be registered or enrolled in a current class.
Advertisements

Intro to CIT 594
Intro to CIT 594
1 Welcome to CS 105 Intro Comp Pgm’g I Welcome to IIT too?
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
Intro to CIT 594
Welcome to CS 115! Introduction to Programming. Class URL Please write this down!
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
COMP Introduction to Programming Yi Hong May 13, 2015.
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
CSc 2310 Principles of Programming (Java) Dr. Xiaolin Hu.
Instructor: Tina Tian. About me Office: RLC 203A Office Hours: Wednesday 1:30 - 4:30 PM or .
How to be an online student. How does it work? An online course follows a schedule and syllabus with due dates for assignments (just like an on-campus.
1 Object Oriented Design COP 3331 Spring 2011 MWF 11:50 AM – 12:40 PM CHE 103 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering ENB.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
C++ and Ubuntu Linux Review and Practice CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and.
1 COP 3331 Object Oriented Design Spring 2016 Section 001 F 8:00 AM – 10:45 AM CPR 115 Classroom Lecture 3 credit hours Instructor:Dr. Rollins Turner ENB.
1 COP 2510 Programming Concepts Spring credit hours Instructor:Dr. Rollins Turner ENB 343F Office Hours: MW 11:00 AM – 12:00.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Welcome to CS 115! Introduction to Programming Spring 2016.
CMPE Data Structures and Algorithms in C++ August 26 Class Meeting Department of Computer Engineering San Jose State University Fall 2016 Instructor:
Tutorial 1 Writing Your First C++ Program CSC1110C Introduction to Computer Programming By Paul Pun Acknowledgement: Special thanks to Dr. Michael Fung.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
CMPT 201 Computer Science II for Engineers
Course Overview - Database Systems
IST256 : Applications Programming for Information Systems
CS101 Computer Programming I
CSc 1302 Principles of Computer Science II
Jie(Jay) Wang Week1 Sept. 30
Computer Terms Review from what language did C++ originate?
Introduction to Programming
CMPE Data Structures and Algorithms in C++ August 24 Class Meeting
ECE 103 Engineering Programming Chapter 1 Introduction
CS 153: Concepts of Compiler Design August 29 Class Meeting
CSC215 Lecture Orientation.
September 27 – Course introductions; Adts; Stacks and Queues
Using MyMathLab Features
CMPE 152: Compiler Design January 25 Class Meeting
Week 1 Gates Introduction to Information Technology cosc 010 Week 1 Gates
CMPE 152: Compiler Design ANTLR 4 and C++
Welcome to CS 1010! Algorithmic Problem Solving.
Welcome to CS 1010! Algorithmic Problem Solving.
Course Overview - Database Systems
Welcome to CS 1340! Computing for scientists.
Welcome to CS 1010! Algorithmic Problem Solving.
CMPE 152: Compiler Design August 21 Class Meeting
Chapter 1: An Overview of Computers and Programming Languages
Welcome to CS 1301! Principles of Programming I.
Welcome to Intro to C/C++ CISC 192
Using MyMathLab Features
CS2013 Lecture 1 John Hurley Cal State LA.
Syllabus.
Intro to CIT 594
EE422C Software Design and Implementation II
CMPE 152: Compiler Design August 28/30 Lab
CS 1111 Introduction to Programming Fall 2018
CMPE 152: Compiler Design January 24 Class Meeting
Using CourseCompass Features
CS2013 Lecture 1 John Hurley Cal State LA.
CS 144 Advanced C++ Programming January 29 Class Meeting
Computer Networks CNT5106C
Computer Terms Review from what language did C++ originate?
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
CS31 Discussion 1H Fall18: week 1
Welcome to Intro to C/C++ CISC 192
Computer Engineering Department Islamic University of Gaza
Academic Integrity.
CMPE 152: Compiler Design August 22 Class Meeting
Presentation transcript:

CS 144 Advanced C++ Programming January 24 Class Meeting Department of Computer Engineering San Jose State University Spring 2019 Instructor: Ron Mak www.cs.sjsu.edu/~mak

Basic Info Office hours Website TuTh 3:00 – 4:00 PM ENG 250 Faculty webpage: http://www.cs.sjsu.edu/~mak/ Class webpage: http://www.cs.sjsu.edu/~mak/CS144/index.html Syllabus Assignments Lecture notes

Course Objectives The primary goal of this class is to learn a useful subset of C++ programming language and fundamental data structures and algorithms expressed in C++. You will learn best practices for developing reliable software. You will acquire software development skills that are valued by employers.

Not Course Objectives Complete knowledge of C++ We will briefly explore the new features of C++ 11 and 14. Advanced data structures and algorithms Advanced algorithm analysis

Software to Install Highly recommended: Eclipse CDT (C/C++ Development Tooling)

C++ on the Mac and Linux Platforms GNU C++ is usually pre-installed on the Mac and Linux platforms. No further action required! Avoid using Apple’s Xcode on the Mac for this class. You run the risk of writing programs that will not port to other platforms.

C++ on Windows The Windows platform has proven to be problematic for this class. Difficult to install the Cygwin environment correctly. Difficult to install C++ libraries successfully. Avoid using Microsoft’s Visual C++ on Windows for this class. You run the risk of writing programs that will not port to other platforms.

C++ on Windows, cont’d Run Linux in a virtual machine on Windows. VirtualBox Use Linux’s pre-installed GNU C++ environment. We will not provide support for Windows. If you insist on running Windows, you are on your own!

C++ on Windows, cont’d Visit http://www.cs.sjsu.edu/~mak/tutorials/index.html for helpful tutorials. For now, you should read: InstallVirtualBox.pdf InstallUbuntu.pdf InstallEclipse.pdf We will not provide support for Windows. If you insist on running on Windows, you are on your own!

C++ 2011 Standard We will start with the 2011 standard of C++. We’ll take a look later at newer versions of the language. You must set this standard explicitly for your project in Eclipse. On the command line: g++ foo.cpp –std=c++11 –o foo

Set the C++ 2011 Standard in Eclipse Right-click on your project in the project list at the left side of the window. Select “Properties” from the drop-down context menu. In the left side of the properties window, select “C/C++ Build”  “Settings”. In the Settings dialog, select “GCC C++ Compiler”  “Dialect”. For “Language standard” select “ISO C++ 11”. Click the “Apply” button, answer “Yes”, and then click the “OK” button.

Assignments You will get lots of programming practice! Multiple programming assignments per week. Several small practice programs that emphasize specific skill needed to solve the main assignment. We will use the online CodeCheck system which will automatically check your output against a master. You will be provided the URL for each assignment. You can submit as many times as necessary to get the correct output.

Assignments, cont’d Assignments will be due the following week, before the next lecture. Solutions will be discussed at the next lecture. Assignments will not be accepted after solutions have been discussed in class. Late assignments will receive a 0 score.

Individual Work You may study together. You may discuss the assignments together. But whatever you turn in must be your individual work.

Academic Integrity Copying another student’s work or sharing your work is a violation of academic integrity. Violations will result in harsh penalties by the university. Academic probation. Disqualified for TA positions in the university. Lose internship and OPT sponsorship at local companies. Instructors must report violations.

Moss Department policy is for programming assignments to be run through Stanford University’s Moss application. Measure of software similarity Detects plagiarism http://theory.stanford.edu/~aiken/moss/ Moss is not fooled by Renaming variables and functions Reformatting code Re-ordering functions Example Moss output: http://www.cs.sjsu.edu/~mak/Moss/

Quizzes In-class quizzes check your understanding of: the required readings the lectures Quizzes will be conducted online using Canvas. Each quiz will be open for only a very short time period, around 15 minutes. You are responsible for bringing a laptop or mobile device to class that can connect to the wireless. There will be no make-up quizzes.

Exams The quizzes, midterm, and final examinations will be closed book. Instant messaging, e-mails, texting, tweeting, file sharing, or any other forms of communication with anyone else during the exams violates academic integrity.

Exams, cont’d There can be no make-up midterm examination unless there is a documented medical emergency. Make-up final examinations are available only under conditions dictated by University regulations.

Final Class Grade 50% assignments 15% quizzes 15% midterm 20% final exam The median final score will earn a B- grade.

Fast Pace! This class will move forward at a fast pace. Lectures will consist of: New PowerPoint slides by the instructor PowerPoint slides from the textbook publishers Program examples and live demos In-class quizzes Questions, answers, and discussion Lecture materials will be posted to the class webpage: http://www.cs.sjsu.edu/~mak/CS144/index.html

Take roll!

What is C++ An object-oriented programming (OOP) language. Supports encapsulation, inheritance, polymorphism. Based on the C language with added OOP features. A complex language! Lots of features. Somewhat arcane syntax. Easy to make programming errors. Things happen automatically at run time | that you may not expect.

A Useful Subset of C++ We will only learn a useful subset of C++. Very few people (not including your instructor) know all of the language. Among professional C++ programmers, everybody knows a different subset, depending on experience, training, and application domains. It will be easy to stumble accidentally into an obscure language feature. We’ll have to figure out together what happened!

Our First C++ Program The infamous “Hello, world!” program. helloworld.cpp #include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; } ~mak/CS144/programs/HelloWorld: g++ -o helloworld helloworld.cpp ~mak/CS144/programs/HelloWorld: ./helloworld Hello, world!