C++ Programming Language



Similar documents
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

El Dorado Union High School District Educational Services

The C Programming Language course syllabus associate level

Sources: On the Web: Slides will be available on:

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

C++ INTERVIEW QUESTIONS

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

Certified PHP Developer VS-1054

BCS2B02: OOP Concepts and Data Structures Using C++

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Java (12 Weeks) Introduction to Java Programming Language

Curriculum Map. Discipline: Computer Science Course: C++

RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science

Object Oriented Programming With C++(10CS36) Question Bank. UNIT 1: Introduction to C++

An Incomplete C++ Primer. University of Wyoming MA 5310

Keywords are identifiers having predefined meanings in C programming language. The list of keywords used in standard C are : unsigned void

Course Title: Software Development

Object Oriented Software Design II

C++ Language Tutorial

Informatica e Sistemi in Tempo Reale

Binary storage of graphs and related data

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

Illustration 1: Diagram of program function and data flow

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Java Application Developer Certificate Program Competencies

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is

Glossary of Object Oriented Terms

Variable Base Interface

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

AP Computer Science Java Subset

#820 Computer Programming 1A

Grundlagen der Betriebssystemprogrammierung

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

Fundamentals of Programming and Software Development Lesson Objectives

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

CEC225 COURSE COMPACT

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)

Fast Arithmetic Coding (FastAC) Implementations

Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum

An Introduction to Programming and Computer Science

JAVA - QUICK GUIDE. Java SE is freely available from the link Download Java. So you download a version based on your operating system.

C++FA 5.1 PRACTICE MID-TERM EXAM

C Interview Questions

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

16 Collection Classes

Syllabus for CS 134 Java Programming

Object Oriented Software Design

The programming language C. sws1 1

10CS35: Data Structures Using C

Object Oriented Software Design

Java EE Web Development Course Program

I PUC - Computer Science. Practical s Syllabus. Contents

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

Ch 7-1. Object-Oriented Programming and Classes

Programming and Software Development (PSD)

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

Phys4051: C Lecture 2 & 3. Comment Statements. C Data Types. Functions (Review) Comment Statements Variables & Operators Branching Instructions

Android Application Development Course Program

Computer Programming Tutorial

OpenCL Static C++ Kernel Language Extension

Delphi Developer Certification Exam Study Guide

XMOS Programming Guide

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

Computer Programming I

6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang

: provid.ir

Moving from CS 61A Scheme to CS 61B Java

C++ Support for Abstract Data Types

MSP430 C/C++ CODE GENERATION TOOLS Compiler Version 3.2.X Parser Error/Warning/Remark List

Basic Programming and PC Skills: Basic Programming and PC Skills:

Object Oriented Software Design II

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Habanero Extreme Scale Software Research Project

1/20/2016 INTRODUCTION

Course notes Standard C++ programming

Java SE 8 Programming

Semantic Analysis: Types and Type Checking

Java Interview Questions and Answers

1 Abstract Data Types Information Hiding

Tutorial on C Language Programming

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands

Project 1: Implement a simple hosts framework using UNIX TCP Sockets to demonstrate the concept of Mobile Agents

N3458: Simple Database Integration in C++11

Course MS10975A Introduction to Programming. Length: 5 Days

CORBA Programming with TAOX11. The C++11 CORBA Implementation

About The Tutorial. Audience. Prerequisites. Copyright & Disclaimer

5 Arrays and Pointers

Introduction to Java

Chapter 6: Programming Languages

Transcription:

C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract Programming is now a routine activity of scientists, be it experimental data processing or theoretical calculations. The increased complexity of experiments in physics especially in high energy physics has led to the domination of software written in C++. The concepts which underlie C++ are versatile and very powerful; the language is difficult to learn especially for beginners. Therefore, the course consists of two parts: the first one presents the C subset of C++ and programming basics. The second part presents the C++ language quite fully; students are acquainted with object-oriented programming. The seminars are held in parallel with lectures. At the seminars, problems are solved which illustrate the subjects presented at the lectures. Part 1: C - subset Lecture 1. Introduction. History of creation of C and C++. Acquaintance with the language C. The program HELLO, WORLD. What is the translator and how to use it. Lecture 2. Types of the data. Identificators. Region of visibility. Acquaintance with the operators. arithmetical operators. Hybrids with the assignment. The operators ++ and --. The type int. A program for acquaintance with the operators. Lecture 3. Representation of numbers in the computer. Bit operations. The operator sizeof. The types char and unsigned int. A program of printing an entire number in the binary representation.

Lecture 4. Input-output, C-style. Functions of the families printf and scanf. Seminar, The type double. A program of printing tables of sines and cosines. Lecture 5. Managing of a program. The operators if and goto. Logical operators. Operators of the relation. Ternary operator. The choice operator switch. A program of counting letters and numbers in an input file. Lecture 6. Cycles while, do-while, for. The operators break and continue. The program of computing a mean value and the dispersion for a distribution. Lecture 7. Functions. Parameters and variables. Transmission by a value. Declaration and definition of a function. Formatting the previous programs as functions. Lecture 8. Addresses and indexes. How to avoid troubles with the indexes? Arithmetic of the indexes. The program of swapping two numbers (swap). The bubble sorting. Lecture 9. Arrays. Access to the elements. Transfer of the arrays in parameters. Strings, C-style. A program for histogramming of the length of strings in a file.

Lecture 10. Arrays and indexes. Multi-dimensional arrays, arrays of indexes. The real function main(). The program analyzing its inner parameters. Printing of the environment variables. Lecture 11. User types of data in C. Structures. Byte fields. Unifications. Enumeration. The operator typedef. An improved version of the program for histogramming the length of strings in a file using the structures. Lecture 12. Dynamical memory, C-style. The universal index void*. A program using the functions malloc(), calloc(), realloc() and free(). Lecture 13. The front-end processor. Phases of the translation[s]. Directives of the front-end processor. Macrodefinitions. Application of the macrodefinitions. Printing of byte size of all built-in types. Lecture 14. The front-end processor and a separate translation. The specificators extern, static. Specificators of the type const, volatile. Compilation of the programs stored in different files. The notion on the make file. Saving programs in a library file. The header file. Lecture 15. Survey of the standard library C: Functions of working with the errors, errno. Streams: buffered/non-buffered input-output<stdio.h>.

The program of reading from a file with the verification of correctness of opening and reading. Lecture 16. Survey of the standard library C (continuation): Functions of the common use <stdlib.h>. THE mathemarical functions <math.h>. Analysis of the symbols <ctype.h>. Working with the strings <string.h>. Using the program sort() from the standard library C. Lecture 17. Survey of the standard library C (continuation): Lists of arguments of the variable length <stdarg.h>. Working with the date and time <time.h>. The limits <limits.h>, <float.h>. Working with the signals <signal.h>. The program of printing the current date and time. Computing the time spent by the program. Part 2: C++ Lecture 1. Introduction. Recommended literature. Evolution of the programming languages. The program HELLO, WORLD in C++. Translator of the language C++. Lecture 2. C++ as an improved C. New version of the comments. New syntaxes of reduction of types and initialization. Creation of the variables. Built-in (inline) functions. Unnamed parameters. Using inline-functions instead of macrodefinitions. The program of printing first 100 simple numbers. Lecture 3. C++ as an expanded C. The new style of input-output. Name space. Reloading of the functions. Prototypes and signatures.

The program using mixed input-output in C and C++ styles. Lecture 4. Links (references). Dynamical memory, the C++-style. The program of swapping (swap) of two numbers using links. Application of new and delete for arrays. Lecture 5. User types of data: classes. What for one needs classes if there are already structures? Object style of programming. The class for 2D-vectors. The header file. The simplest functions of access and printing. Lecture 6. Constructors and destructors. The constructor by default. The copying constructor. Constructors as the type reduction operators. Developing of class for the 2D-vectors: writing of constructors and destructors. Testing of the statical and dynamical creation of the objects. Lecture 7. Reloading of the operators and functions. Class friends. Developing of the class for 2D-vectors: reloading operators of addition, subtraction and multiplication by a number. Lecture 8. Inheritance. Virtual functions. Abstract classes. The class for 3D-vectors as an inherit of the class for 2D-vectors. Virtualization of the operation of printing output. Lecture 9. Inheritance and polymorphism. The basic idea. RTTI and dynamic_cast.

The program using an array of indexes to classes of 2D and 3D-vectors. Polymorphism on practice. Lecture 10. Exceptions. Exceptions and polymorphism. A program using exceptions. Takeover of the exceptions of the operator new. Lecture 11. C++-style of the input-output. Reloading of the operators of input-output. Managing of the format output. Manipulators. A program of printing tables of sines and cosines using manipulators. The program of reading and recording to a file (C++ style). Lecture 12. Templates. The notion of generic programming and introduction to the standard library of templates (STL). Recommended literature on STL. Programming of the simplest templates of functions. A program using std::vector. Lectire 13. Using STL: Containers, algorithms, iterators. Sequential containers vector and list. The program of deleting from std::vector and std::list of all odd numbers. Lecture 14. Using STL: Associative containers set and map. A program using std::map. Lecture 15. Using STL: Algorithms. Function object.

A program using algorithms of sorting for std::vector. Sorting in increasing and decreasing order. Lecture 16. The standard library C++: string, complex. Useful functions. C++, what is left behind the scene? A program using std::complex and std::string