Comp. Sci. - Computing Science

Download Report

Transcript Comp. Sci. - Computing Science

CMPT 120
Introduction to Computer Science and
Programming I
Chris Schmidt
CMPT 120

What will you learn?

Basic concepts of Computing Science
How computers store some types of data
 Algorithms (methods of solving problems)
 Data Structures (how to store complex data)
 How to analyze and compare algorithms
 How to write programs in Python

Computing Science

Comput-ing Science



The majority of the time we aren’t concerned
with the computer itself (hardware)
The main concern is the creation, analysis,
and application of algorithms
Hard to pin down a good definition
Computing Science

Computing Science is an extremely diverse
field ranging from the completely
theoretical to the very practical

Logic, Complexity and Computability,
Database Management, Artificial Intelligence,
Human-Computer Interaction, Graphics,
Natural Language Processing, Operating
Systems, Programming Languages,
Networking, Bioinformatics, Computer
Architecture, Software Engineering
The Basics

Hardware



Physical equipment (processor, monitor,
keyboard, printer…)
If you can touch it, it’s hardware
Software

Programs (sets of instructions) that run on
the hardware
Hardware

Some Basic Computer Components

CPU: Central Processing Unit



Memory



Hard Disk, CD-Rom, etc.
Input


ROM: Read Only Memory
RAM: Random Access Memory
Storage


The computer’s central “brain”
ALU: Arithmetic and Logic Unit
Keyboard, Mouse…
Output

Monitor, Printer…
Software

Computer Program


A set of instructions that the computer will
complete
The instructions that are used are defined by
a programming language
Programming Languages

High Level Languages



The languages you usually here about are
high level languages (Python, C++, Java,
Visual Basic..
These languages are used to write the
everyday applications we see
Use complex instructions that can’t be
“directly” understood by a computer’s
hardware
High Level Code (Python)
metres = float(raw_input( \ "Enter your height (in metres): "))
total_inches = 39.37 * metres
feet = int(total_inches/12)
inches = total_inches - feet*12
print "You are " + str(feet) + " feet and " \ + str(inches) + " inches tall."
Programming Languages

Machine Language

Processors have a small set of simple
instructions they understand



Access/store a value, add two values, compare two
values,…
Different processor types have different
instructions
Each instruction is identified by a unique
number
Programming Languages

Assembly Language




Machine language is difficult for humans to
work with directly (its all numbers)
Assembly Language is one step higher
The instructions are given short names
(mnemonics) so it is readable
A compiler converts the text of a program in
assembly language into the appropriate
Machine Language
Assembly Language Code
N1 DB
N2 DB
ANS1
ANS2
START
ORG $0000
%11110100
!41
RMB 1
RMB 1
ORG $0010
LDS #00FF
LDD #!0
LDX #!0
LDY #!0
PSHA
LDAA N1
PSHA
.
.
Programming Languages

Back to High Level Languages


Instead of using the simple instructions of
assembly language we work with more
readable high level languages
As with assembly language a compiler or
interpreter is needed to convert the code to
the machine language
Python

Interpreted vs Compiled


Compiled languages (C++, Java) are written
as text and then must be compiled into
machine code
Interpreted languages (Python) are written as
text, but do not need to be compiled. When
run, an interpreter, converts the code line by
line
Advantages

Compiling


Faster at runtime, no translation to machine
code needed
Interpreting


More flexibility when editing, don’t have to
recompile every time you want to test a
change
More flexible at runtime (though we probably
won’t take advantage of this in 120)
Hello World!


The first program people often write
simply tells the computer to print the
phrase “Hello World!”
The simplicity of a language can be seen
to some extent by how complex the code
needed to do this is.
Hello World!


Python
print "Hello World!"
C++
#include <iostream>
using namespace std;
int main (){
cout << "Hello World!";
return 0;
}

Java
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello World!");
}
}
Python Powers of Two
print "The first ten powers of 2."
x=1
for i in range(10):
print x,
x=x*2
C++ Powers of Two
#include <iostream>
using namespace std;
int main (){
int x = 1;
cout << "The first ten powers of 2.\n";
for (int i=0; i < 10; i++){
cout << x << " ";
x = x*2;
}
return 0;
}