260 likes | 378 Vues
Computer Science is often misunderstood as merely the study of computers and programming. However, it encompasses a diverse range of topics, including theoretical elements like algorithms and computational theory, as well as applied aspects like artificial intelligence and robotics. It's best described as the scientific approach to computation and its applications, emphasizing the importance of algorithms and problem-solving over the actual machines. This introduction highlights key areas within computer science and the ongoing research contributing to this dynamic field.
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