190 likes | 404 Views
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)
E N D
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 • The computer’s central “brain” • ALU: Arithmetic and Logic Unit • Memory • ROM: Read Only Memory • RAM: Random Access Memory • Storage • Hard Disk, CD-Rom, etc. • Input • 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 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 . .
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> usingnamespace std; int main (){ cout << "Hello World!"; return 0; } • Java publicclass HelloWorld { publicstaticvoid 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> usingnamespace 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; }