CSCI 1520
Computer Principles
and C++ Programming
Introduction
Spring, 2015
1
Outline
1. Introduction to programming
2. Overview of C++
What is a Computer?
A computer is a machine that manipulates data
according to a list of instructions.
E.g.: Desktop PC, smartphone, tablet, Xbox,
What do computers have in common?
Computer Organization
Input Unit
John von Neumann
CPU
Arithmetic
& Logic
Unit
Memory Unit
Storage
Unit
Control
Unit
Output Unit
Flow of data
Von Neumann Architecture
Input Unit
Computer Organization
CPU
Arithmetic
& Logic
Unit
Memory Unit
Storage
Unit
Control
Unit
1. Input unit
Output Unit
Obtains information from input devices
Keyboard, mouse, microphone, touch panel, networks,
2. Output unit
Takes information processed by computer
Places information on output devices
Monitor, printer, speaker, networks,
Information used to control other devices
Input Unit
Computer Organization
CPU
Arithmetic
& Logic
Unit
Memory Unit
Storage
Unit
Control
Unit
Output Unit
3. Central processing unit (CPU)
CU (Control Units)
Supervises and coordinates other sections of computer
Arithmetic and logic unit (ALU)
Performs arithmetic calculations and logic decisions
Input Unit
Computer Organization
CPU
Arithmetic
& Logic
Unit
Memory Unit
Storage
Unit
Control
Unit
4. Memory unit
Rapid access, relatively low capacity
warehouse section
Retains information from input unit
Immediately available for processing
Retains processed information
Output Unit
Until placed on output devices
Refers to the Random Access Memory (RAM)
7
Input Unit
Computer Organization
CPU
Arithmetic
& Logic
Unit
Memory Unit
Storage
Unit
Control
Unit
5. Secondary storage unit
Long-term, high-capacity warehouse section
Storage
Data and programs that are not immediately needed
Secondary storage devices
Output Unit
Disks and Optical discs
Longer to access than primary memory
Less expensive per unit than primary memory
What is programming?
A programming language is an artificial
language designed to express computer
instructions
High-level programming languages More Englishlike, easier to use
E.g.: BASIC, Pascal, C, C++, Java, JavaScript, PHP, Python,
To execute a program written in a high-level
programming language, we need a compiler or
an interpreter.
9
What is programming?
10111111
10101011
11010110
10101111
11110101
00101101
10101111
01110101
00111101
11011110
10101100
11100000
10101111
Compiler
or
Interpreter
A = 1 + 2;
print A;
Compiler a program that translates instructions written in a
programming language into another language (usually a
machine language). The resulting program can then be
executed by the computer directly.
Interpreter a program that directly executes instructions
written in a programming language
10
Fundamentals of Programming
Understand the basic concepts and principles of
programming
Understand (and sometimes memorize) the
syntax of a programming language
Express your idea and solution into equivalent
instructions
Know what APIs (Application Programming
Interface) are available and learn how to use
them
11
Overview of C++
History of C and C++
Why C++?
Why not C++?
Phases of C++ programs
First view of a C++ program
12
History of C and C++
History of C
Developed by Dennis Ritchie (at Bell Lab) around 1970
General purpose, mid-level language
Development language of UNIX and many other software
History of C++
Developed by Bjarne Stroustrup (at Bell Lab) around 1980
C with OOP support
Include features to support object-oriented programming (OOP),
which is a new paradigm for designing and constructing programs
13
Why C++?
General purpose
Highly platform independent
High performance
Ability to directly access/manipulate contents in
memory
Writing device driver or low-level system programs
Widely use
Support Object-Oriented Programming
14
Why Not C++?
Inherits the drawbacks of C
A bloated programming language
Platform dependent (?)
Mix and match OOP and procedural
programming
15
Phases of C++ Programs
Source
Files
(.cpp files)
You edit these files
Compile
Object
Files
(.obj files)
Link
Executable
Program
(.exe files)
Other object files and library files
(.obj, .lib, or .dll files)
Compile: Translate C++ codes into equivalent machine (or
binary) codes
Each object file is like a "part" of a program.
Link: Put all the binary "parts" together to form an executable
program
In VS/Xcode, "Build" = Compile + Link
16
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Hello! Welcome to CSCI1520
Computer Principles and C++ Programming!
First view of a C++ Program
A C++ program that outputs a few lines of text.
17
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
Single-line
comments
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Every program has some basic elements
18
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
Single-line
comments
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Comments
Document programs
Improve program readability
Ignored by compiler
Single-line comment begins with two slashes //
19
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
The main function
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Every C++ program has exactly one function named
"main".
20
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
Beginning
using namespace std;
part of the main function
int main()
Body of the main function
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
Ending
} // End of function "main"
part of the main function
Characteristics of the main function
The function body contains the instructions that make up your
program.
21
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Statements
Each instruction is called a statement.
Statement is terminated by a semicolon (;)
A single statement can possibly perform many tasks.
22
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
We need these in order to
use "cout" to perform
output in the program.
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Performing simple output
cout is an object that knows how to send output to the screen.
"Hello! " represents the data to be passed to cout.
<< (called an insertion operator) indicates the you want to pass
the data on the right of the operator to cout.
23
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
String Literals
String a sequence of characters
String literal a string enclosed by a pair of double-quote
character (")
24
1
2
3
4
5
6
7
8
9
10
11
12
// The first C++ program.
#include <iostream>
using namespace std;
Use a backslash character (\)
and not a forward slash
character (/)
int main()
{
cout << "Hello! ";
cout << "Welcome to CSCI1520\n";
cout << "Computer Principles and C++ Programming!\n";
return 0;
} // End of function "main"
Hello! Welcome to CSCI1520
Computer Principles and C++ Programming!
Representing special characters in a string literal
\n newline (enter key)
\\ backslash (\)
\" double quote (")
\t tab key
25
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main()
{
statement_1;
statement_2;
...
statement_n;
return 0;
}
General form of a simple C++ program
26
Summary
Basic components of a computer
What it means by programming in a high level
programming languages
Advantages of learning C++
Design a solution first, program later
First look at a C++ program
Next Lecture: C++ Basics
27