260 likes | 373 Views
Computer Science 1000. Introduction. What is Computer Science? the study of computers? not quite rather, computers provide a tool for which to carry out (some) computer science and its applications
E N D
Computer Science 1000 Introduction
What is Computer Science? • the study of computers? • not quite • rather, computers provide a tool for which to carry out (some) computer science and its applications • "Computer Science is no more about computers than astronomy is about telescopes." – E. Dijkstra* * Also attributed to Michael Fellows
What is Computer Science? • programming? • better, but still not quite • there is much more to computer science than simply programming • many in the computer science field do not program • theorists • interaction researchers
What is Computer Science? • difficult to state precisely • the scientific and practical approach to computation and its applications • – Wikipedia • in other words, the critical component is the computation, not the computer
What is Computer Science? • much of the discipline does not involve computers at all • Ex #1: computational geometry • study of algorithms (processes) for solving geometric problems • often never implemented – sufficient to show that it can be computed within a certain time bound
What is Computer Science? • much of the discipline does not involve computers at all • Ex #2: quantum computing • research into designing programs to run on quantum machines • many examples exist (e.g. Deutsch-Jozsa) • no practical quantum computers exist* * http://www.sciencedaily.com/releases/2012/06/120607154138.htm
Computer Science • often divided into two categories: • theoretical computer science • the "theory" of computation • often considers more abstract concepts • applied computer science • the application of computers and computational theory • deals in the tangible
Theoretical Computer Science • example: convex hull problem • given a set of points, find a set of points that "contains" all of the other points • goal of theorists is to find efficient methods for doing this • applications include GIS, games (collision detection), etc For a more rigorous definition, see: http://mathworld.wolfram.com/ConvexHull.html
Applied Computer Science • example: chess • design a computer program that can play competitive chess • interesting history: • Herbert Simon predicted that a computer would be chess' world champion in less than a decade • that was 1957 • so when did it happen?
Applied Computer Science • Answer: 1997! • http://www.youtube.com/watch?v=NJarxpYyoFI vs Garry Kasparov "Deep Blue" (IBM)
The Many Faces of Computer Science • computer science encompasses a broad range of topics • many of these topics are the subject of intense research • we consider a few examples here
Topic #1: Programming (of course) • The science (art) of constructing a program to achieve a specific goal • That is, for every program you have on your PC/laptop/phone, a programmer (team of programmers) had to design and implement that program
Computer Program • A sequence of instructions designed to perform a specific task, or collection of tasks • Eg. Microsoft Word • Monitors keyboard input, displays it on the screen • Formats input for more readable presentation • Spellchecks your work • Prints your work • Saves your work • ….
Programming • How do you make a computer into a word processor/internet browser/gaming console? • You give it step-by-step instructions • Each instruction is performed by the processor • Your computer is like a good assistant, willing to perform any task that you ask • However, you must learn to speak its language
Example • Suppose we wish to perform the following calculation: • how do we program our computer to make this calculation? (17 + 29) x 56
Machine Code • the language of your processor • each line represents an instruction to be executed place value "17" in memory location 1 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 place value "29" in memory location 2 add values in loc. 1 and 2, place in loc. 3 place value "56" in memory location 4 multiply values in loc. 3 and 4, place in loc. 5 • the solution to the problem is in memory location 5
High-Level Programming Language • e.g. C++, Java, Python • offers a more natural language for programming • commands are much less tightly coupled to the instructions of the processor cout << (17 + 29) * 56;
HL Code to Machine Code • processor does not understand high-level code • a separate program called a compiler translates the code to machine code Compiler 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 (17+29) * 56;
Topic #2: Artificial Intelligence • a branch of computer science dealing with the simulation of intelligent behavior in computer - Merriam Webster • examples • game-playing agents (Deep Blue) • robotic controllers (RoboCup) • automated medical diagnosis • pattern recognition • simulating human behaviour (Turing Test) • etc ...
Topic #3: Computer Networking • Networking allows information from one computer to be transferred to another computer
This simple act has given us: • The World Wide Web • Facebook • Twitter • Instagram • Wikipedia • P2P File Sharing • Connectivity • Skype • Facetime
The History of the Internet • Today: • Internet has over 2.4 billion users • 78% of North Americans use internet • people of all ages • Internet has over 900 million hosts • Challenges faced: • addressing (DNS) • scalability • security • bandwidth
Many other topics: • hardware and architecture • database programming • graphics and games • human-computer interaction • privacy and security
What makes Computer Science unique? • it is young • first general purpose computer: 1946 (ENIAC) • phrase "computer science" coined: late 50's • consider your other university science topics: • mathematics: ~5000 years* • chemistry: ~3000 years* • economics: ~240 years*
What makes Computer Science unique? • it is dynamic • My first computer (1997) • 200 MHz processor (single core) • 32 MB RAM • 3.1 GB HD • 15 inch CRT monitor • 28.8K bps (time to download a song: 19 minutes) • $4000 • My current computer (2013) • 3.4 GHz processor (4 cores) • 8 GB RAM • 2 TB HD • 3 flat screen monitors • high-speed internet (time to download a song: 5-10 seconds) • $800
What makes Computer Science unique? • it is accessible • consider what it takes to be an experimental physicist? • expensive equipment • a laboratory • what about a computer programmer? • a computer • many programming tools are freely available