1 / 46

470 likes | 701 Views

Introduction to Computer Science. CS 21a: Introduction to Computing I First Semester, 2013-2014. Outline. Computer Science from a Philosophical Standpoint Computer Science from a Pragmatic Standpoint A Brief History of Computer Science. Computer Science from a Philosophical Standpoint.

Download Presentation
## Introduction to Computer Science

**An Image/Link below is provided (as is) to download presentation**
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.
Content is provided to you AS IS for your information and personal use only.
Download presentation by click this link.
While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

**Introduction to Computer Science**CS 21a: Introduction to Computing I First Semester, 2013-2014**Outline**• Computer Science from a Philosophical Standpoint • Computer Science from a Pragmatic Standpoint • A Brief History of Computer Science**What Is Computer Science?**• It’s not about computers. • Any more than astronomy is about telescopes • It’s not a science (yet). • In the strict sense of developing a theory and testing the theory with experiment**If Not A Science, Then What?**• A kind of esoteric philosophy? • Physics is to matter as computer science is to mind • Think about the terms associated with computer science: • Information • Memory • Languages**If Not A Science, Then What?**• A way of looking at the world? • Objects in the world have information, or some state that can change over time. • Objects in the world change their state by doing something or by having something done to them, or by going through an algorithm.**If Not Computers, Then What?**• Data and Algorithms • Like particles and physical laws in physics • Notes and music theory in music • Cells and biological processes in biology • People and culture in anthropology**If Not Computers, Then What?**• Atoms (quarks) are the stuff of the universe. Data is the stuff of whatever it is that CS studies. • Physical laws determine how universes unfold. Algorithms determine how whatever it is that CS studies unfolds.**Whatever It Is That CS Studies?**• It’s a difficult question to answer, because the field is relatively young. • Preliminary Answer: Intelligent processes and systems**So Does That Mean We Aren’t Going to Study About**Computers? • No, because the computers will be our platform for studying these higher ideas. • Computer programs will be the concrete ground for the more abstract idea of an algorithm.**Philosophical Questions For CS**• What is a number? What do addition, subtraction, multiplication, division mean? Can all of mathematics be automated? • What is language? How does a choice of language determine the kinds of ideas that can be easily expressed? How do intelligent beings communicate with one another? • Are there inherent limitations in the processes of the universe? If so, what and why?**Short Summary of What’s Been Said So Far**• We’re going to study computers and programs, but ultimately, there are things more abstract and meaningful that computer science is all about – data and algorithms.**Outline**• Computer Science from a Philosophical Standpoint • Computer Science from a Pragmatic Standpoint • A Brief History of Computer Science**What Is Computer Science?**• A problem arises because there is a chasm between what we desire and what is real. • The “Eastern” way to solve problems is to eliminate the desire. • The “Western” way to solve problems is to translate the desire into reality. • Computer Science is a kind of “Western” problem solving.**How Does This Problem Solving Work Out?**• There are things that we’d like to have or do. • A house • A cake • Go to outer space**How Does This Problem Solving Work Out?**• There are things that we already have. • Wood, nails, steel, concrete, etc. • Eggs, sugar, whipped cream, etc. • Powerful engines, fuel, the escape velocity for the earth, oxygen tanks, etc.**How Does This Problem Solving Work Out?**• There are things that we already know how to do. • Hammer the nails into the wood, solder the steel together, mix and pour concrete, etc. • Beat eggs, measure a specific amount of sugar, etc. • Build aircraft, build suits that will allow breathing in places that we can’t breathe, etc.**How Does This Problem Solving Work Out?**• Problem solving is about translating what we don’t already have or know how to do into what we already have and know how to do.**How Does This Problem Solving Work Out?**• Ultimately, there are things that we already inherently have or know how to do, what nature provides us, or what we call primitives. • Problem solving, and the whole history of technology is all about building more and more complex structures from these primitives.**How Is This Computer Science?**• It doesn’t really need to be about computers. • But a lot of the high-paying problems we have in the world right now are solvable from a very specific set of primitives – bits and their operations in a computer, hence we’re stuck with the term.**How Is This Computer Science?**• And it’s good that there’s an agreed upon set of primitives. • It’s easier to apply algorithmic ideas from one context to another. • In fact, almost all computer scientists believe that all solvable computational problems can be solved by the basic set of primitives that all computers use.**So What If There Were No Computers?**• The ideas of problem solving would still be valid, but the computer allows us to perform some primitives quickly, like mathematical operations.**So What If There Were No Computers?**• It’s not that we don’t know how to do the math, it’s just either too boring or we’re too slow at it. • Computers expand what we can feasibly do by having faster versions of what we can theoretically do. • Computers allow us to actually perform solutions to problems that we might be able only to express but not actually realize.**Incidentally…**• The word computer originally referred to a human whose job it is was to do tedious calculations. • Electronic computers were invented to eliminate slavery. • Reduce complicated but boring or dehumanizing tasks into minute steps that dumb, unconscious electrons can “understand” and perform. • So that humans can be free to do the more “human” and creative things to do**So, Can Computer Science Solve World Hunger?**• We’ll see. • The hidden question here is, “Are all problems computational problems?”**So Really The Computer Revolution Is All About…**• Providing a universal language for solving problems, for expressing all the how-to’s • Providing a universal machine that can quickly translate the universal language into action • Expanding the kinds of solutions the universal language can express • Expanding the kinds of activities the universal machine can perform**Practical Questions For CS**• How can we make traffic systems more efficient? • How do I make a video game? • How do I make a system that can easily facilitate this company’s business processes? • How can I detect if this patient has cancer or not?**Short Summary of What’s Been Said So Far**• We’re going to study computers and programs, but ultimately, there is something more important and is the driving force of all technological breakthroughs – problem solving.**Outline**• Computer Science from a Philosophical Standpoint • Computer Science from a Pragmatic Standpoint • A Brief History of Computer Science**Ancient Times**• Discovery of numbers, early algorithms, simple computing machines • 3400 BC, Mesopotamia: First number system • 2400 BC, Babylon: First computing tool – abacus • 300 BC, Greece: Euclidean Algorithm • 5th century BC, India: Pāṇiniwrites Aṣṭādhyāyī, a technical account of the rules of Sanskrit grammar. • 100 BC, Greece: First mechanialanalog computer for calculating astronomical positions – Antikytheramechanism**Islamic-Arabic Golden Age**• More abstract algorithms, first programmable machines • 825: Al-Khawarizmi describes the algorism, rules for calculating with the Hindu-Arabic numerals • 850: Al-Kindi develops algorithms for cryptanalysis and frequency analysis • 850: BanūMūsā brothers write about automata (self-operating machines or robots) in their Book of Ingenious Devices • 1206: Al-Jazari invents the castle clock, the first programmable analog computer**Pre-modern Europe**• Philosophical ideas • 1232-1315: Ramon Llull describes thought experiments about systematically producing new knowledge from simple and known philosophical truths. • 1703: Leibniz begins to develop binary logic. • 1854: George Boole publishes his Boolean algebra, the complete, mathematical system for binary logic used in today’s computers.**Pre-Modern Europe**• Analogprecursors of today’s digital computers • 1694: Leibniz completes the Stepped Reckoner, a calculator for all four arithmetic operations. • 1801: Joseph-Marie Jacquard invents a loom programmable with the use of punched cards. • 1837: Charles Babbage describes the Analytical Engine, a general-purpose, programmable analog computer. • 1843: Ada Lovelace writes an algorithm to calculate Bernoulli numbers for the Analytical Engine. • 1880: Herman Hollerith uses punched cards to store data.**Dawn of Modern Computer Science**• Theoretical Foundations • 1931: Kurt Gödel publishes papers on the Incompleteness Theorems. • 1936: Alonzo Church and Alan Turing independently give a formal definition of an algorithm (Church-Turing thesis). • 1937: Alan Turing creates the universal Turing machine and lays the foundations of theoretical computer science.**Dawn of Modern Computer Science**• Theoretical Foundations • 1937: Claude Shannon showed how Boolean logic can be implemented with certain electrical circuits (now called logic gates). • 1945: The idea of stored programs (Von Neumann Architecture) is invented. • 1948: Claude Shannon invents information theory in his paper "A Mathematical Theory of Communication.“ • 1948: Norbert Wiener invents cybernetics, which influenced artificial intelligence.**Dawn of Modern Computer Science**• Computers for Military Applications • 1941: KonradZuse builds the Z3, the first programmable, fully-automatic, Turing-complete computer • 1942-1946: Richard Feynman supervises a group of human computers for the Manhattan project. • 1946: KonradZuse creates the first high-level programming language, Plankalkül • 1946: The ENIAC is the first electronic, general-purpose computer.**The Road to Ubiquitous Computing**• 1940’s – The ACM is founded. • 1950’s – Computers are commercialized. Transistors replace vacuum tubes. Programming begins to become as important as computer hardware. • 1960’s – Minicomputers replace mainframes. The chip is invented. Computer science is recognized as an independent academic discipline. “Software Engineering” conference highlights issue that programmers don’t know theoretical CS. Time-sharing**Our Era: Computers Are Everywhere**• 1970’s – Pocket programmable calculators, personal computers • 1980’s – Windows, Mac, graphical user interfaces, desktop publishing (office) software • 1990’s – Laptops, the Internet • 2000’s – Proliferation of mobile technology**Summary**• Computer Science is not just about computers. It studies something different from everything else we’ve studied before. We’re just not sure yet what to call it, but there are words to express aspects of this facet of reality we are only beginning to understand.**Summary**• Computer Science spans a great spectrum of knowledge from philosophical ideas to practical technologies. • Data, algorithms, and problem solving form the core of computer science. • Two of the main driving forces behind computer science are the desire to understand intelligent processes, and the need to solve real-world problems.**In Fact…**• Alan Turing, considered the father of modern computer science, did exactly this. • Thinking and writing about artificial intelligence on the one hand • Building machines to crack the Nazi codes during WWII on the other**Summary**• The history of computing shows that there is always something new and exciting each time. • Welcome, and I hope you become part of this wonderful history. • Whether to answer some of the deep questions • Or to invent new and exciting technologies • Or to pass down this tradition of our age**Next Time…**• The Core Concepts – data and algorithms • We need to able to clearly reason about intelligent processes and systems through algorithms. How do we do this? • Problem Solving is about translating high-level goals into low-level primitives. How exactly does that work?**Recommended Reading**• Chapters 1 and 2 (up to page 37 only) of Algorithmics – Spirit of Computing by Harel and Feldman

More Related