Fundamentals of Computing Science: Introduction & Basics
190 likes | 220 Vues
Learn basic computing concepts and how computers store data, analyze algorithms, and structure data. Understand the hardware components and software instructions. Explore programming in Python.
Fundamentals of Computing Science: Introduction & Basics
E N D
Presentation Transcript
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; }