Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMPT 120 Introduction to Computer Science and Programming I Chris Schmidt.

Similar presentations


Presentation on theme: "CMPT 120 Introduction to Computer Science and Programming I Chris Schmidt."— Presentation transcript:

1 CMPT 120 Introduction to Computer Science and Programming I Chris Schmidt

2 CMPT 120 What will you learn? What will you learn? Basic concepts of Computing Science Basic concepts of Computing Science How computers store some types of data How computers store some types of data Algorithms (methods of solving problems) Algorithms (methods of solving problems) Data Structures (how to store complex data) Data Structures (how to store complex data) How to analyze and compare algorithms How to analyze and compare algorithms How to write programs in Python How to write programs in Python

3 Computing Science Comput-ing Science Comput-ing Science The majority of the time we aren’t concerned with the computer itself (hardware) 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 The main concern is the creation, analysis, and application of algorithms Hard to pin down a good definition Hard to pin down a good definition

4 Computing Science Computing Science is an extremely diverse field ranging from the completely theoretical to the very practical 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 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

5 The Basics Hardware Hardware Physical equipment (processor, monitor, keyboard, printer…) Physical equipment (processor, monitor, keyboard, printer…) If you can touch it, it’s hardware If you can touch it, it’s hardware Software Software Programs (sets of instructions) that run on the hardware Programs (sets of instructions) that run on the hardware

6 Hardware Some Basic Computer Components Some Basic Computer Components CPU: Central Processing Unit CPU: Central Processing Unit The computer’s central “brain” The computer’s central “brain” ALU: Arithmetic and Logic Unit ALU: Arithmetic and Logic Unit Memory Memory ROM: Read Only Memory ROM: Read Only Memory RAM: Random Access Memory RAM: Random Access Memory Storage Storage Hard Disk, CD-Rom, etc. Hard Disk, CD-Rom, etc. Input Input Keyboard, Mouse… Keyboard, Mouse… Output Output Monitor, Printer… Monitor, Printer…

7 Software Computer Program Computer Program A set of instructions that the computer will complete A set of instructions that the computer will complete The instructions that are used are defined by a programming language The instructions that are used are defined by a programming language

8 Programming Languages High Level Languages High Level Languages The languages you usually here about are high level languages (Python, C++, Java, Visual Basic.. 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 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 Use complex instructions that can’t be “directly” understood by a computer’s hardware

9 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."

10 Programming Languages Machine Language Machine Language Processors have a small set of simple instructions they understand Processors have a small set of simple instructions they understand Access/store a value, add two values, compare two values,… Access/store a value, add two values, compare two values,… Different processor types have different instructions Different processor types have different instructions Each instruction is identified by a unique number Each instruction is identified by a unique number

11 Programming Languages Assembly Language Assembly Language Machine language is difficult for humans to work with directly (its all numbers) Machine language is difficult for humans to work with directly (its all numbers) Assembly Language is one step higher Assembly Language is one step higher The instructions are given short names (mnemonics) so it is readable 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 A compiler converts the text of a program in assembly language into the appropriate Machine Language

12 Assembly Language Code ORG $0000 N1 DB %11110100 N2 DB !41 ANS1 RMB 1 ANS2 RMB 1 ORG $0010 START LDS #00FF LDD #!0 LDX #!0 LDY #!0 PSHA LDAA N1 PSHA..

13 Programming Languages Back to High Level Languages Back to High Level Languages Instead of using the simple instructions of assembly language we work with more readable 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 As with assembly language a compiler or interpreter is needed to convert the code to the machine language

14 Python Interpreted vs Compiled Interpreted vs Compiled Compiled languages (C++, Java) are written as text and then must be compiled into machine code 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 Interpreted languages (Python) are written as text, but do not need to be compiled. When run, an interpreter, converts the code line by line

15 Advantages Compiling Compiling Faster at runtime, no translation to machine code needed Faster at runtime, no translation to machine code needed Interpreting Interpreting More flexibility when editing, don’t have to recompile every time you want to test a change 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) More flexible at runtime (though we probably won’t take advantage of this in 120)

16 Hello World! The first program people often write simply tells the computer to print the phrase “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. The simplicity of a language can be seen to some extent by how complex the code needed to do this is.

17 Hello World! Python Python print "Hello World!" C++ C++ #include #include using namespace std; int main (){ cout << "Hello World!"; return 0; } Java Java public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World!"); }}

18 Python Powers of Two print "The first ten powers of 2." x=1 for i in range(10): print x, print x, x=x*2 x=x*2

19 C++ Powers of Two #include #include 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; }


Download ppt "CMPT 120 Introduction to Computer Science and Programming I Chris Schmidt."

Similar presentations


Ads by Google