Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Class 1: The Computer

Class 1: The Computer

Class notes for 11/14/2013.

Ian Luke Kane

November 14, 2013
Tweet

More Decks by Ian Luke Kane

Other Decks in Technology

Transcript

  1. Syllabus Review Weekly Schedule Class: Thursdays, 7:15pm - 9:30pm •

    1:00 Theory/Discussion • 0:15 Break Time • 1:00 Practical Workshop Holiday Breaks
  2. Syllabus Review Readings All texts are freely available, though a

    few are available in other formats if you so desire. The Cathedral and the Bazaar is the main discussion text. Overview of other texts, e.g. Hackers & Painters Course Site: Lore
  3. Course Broadness This course will be very broad and will

    cover many deep topics. We all come into this course will various levels of experience and technical skill. “You…have to develop a kind of faith in your own learning capacity - a belief that even though you may not know all of what you need to solve a problem, if you tackle just a piece of it and learn from that, you'll learn enough to solve the next piece - and so on, until you're done.”
  4. On Learning “I can't give complete instructions on how to

    learn to program here — it's a complex skill. But I can tell you that books and courses won't do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.” “Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.”
  5. Cardinal Rule If you have only a limited time to

    engage in the course for the week, always use your time on the practical skills. Read code. Write code.
 
 (Practice.)
  6. Key Questions • What is a computer? • How does

    a computer work? • When you write code and execute it, what is really happening?
  7. What is a computer? A computer is a general purpose

    device that can be programmed to carry out a finite set of arithmetic or logical operations. Since a sequence of operations can be readily changed, the computer can solve more than one kind of problem. Conventionally, a computer consists of at least one processing element, typically a central processing unit (CPU) and some form of memory. The processing element carries out arithmetic and logic operations, and a sequencing and control unit that can change the order of operations based on stored information. Peripheral devices allow information to be retrieved from an external source, and the result of operations saved and retrieved.
  8. How does a computer work? • Turing Machine • All

    you need is an infinitely long tape, a head that can read and write cells on the tape, and a table of instructions.
  9. When you write code and execute it, what is really

    happening? At the most basic level, this is what is happening when you write code and execute it. Crazy, right? You are flipping bits. So what exactly is “flipping” in a modern computer?
  10. Transistors Intel Core 2 Extreme QX6700 Processor: 582 million transistors

    Raspberry Pi (ARM1176JZF-S 700 MHz processor): 30K transistors
  11. 1.21 Petaflops?! Recent example of incredibly powerful computers: Ars Technica:18

    hours, $33K, and 156,314 cores: Amazon cloud HPC hits a “petaflop” “A petaflop is one quadrillion floating point operations per second, or a million billion.”
  12. Discussion What are some characteristics that exemplify the hacker attitude

    and mindset? What does it take to learn how to program?
  13. The Hacker Attitude 1. The world is full of fascinating

    problems waiting to be solved. 2. No problem should ever have to be solved twice. 3. Boredom and drudgery are evil. 4. Freedom is good. 5. Attitude is no substitute for competence.
  14. Final Quote of the Day “Work as intensely as you

    play and play as intensely as you work. For true hackers, the boundaries between "play", "work", "science" and "art" all tend to disappear, or to merge into a high-level creative playfulness. Also, don't be content with a narrow range of skills. Though most hackers self-describe as programmers, they are very likely to be more than competent in several related skills - system administration, web design, and PC hardware troubleshooting are common ones. A hacker who's a system administrator, on the other hand, is likely to be quite skilled at script programming and web design. Hackers don't do things by halves; if they invest in a skill at all, they tend to get very good at it.”