Logo
  • Home
  • Classes
  • Conveying Computing
  • Exams
  • Fractal Gallery
  • Guides
  • Problem Sets
  • Syllabus

Classes

Classes 1-13

Class 1: Introduction [Notes]

What is Computer Science?
Computer Science and the Liberal Arts
   The Apollo Guidance Computer
Recursive Definitions and hippopotomonstrosesquipedaliophobia

Class 2: Language [Notes]

What is Language?
Components of Language
Being a Jeffersonian Student
Grace Hopper and the first Computer Programming Languages

Class 3: Rules of Evaluation [Notes]

Backus-Naur Form
Exponential Growth (Genome Sequencing)
Scheme Grammar and Evaluation Rules

Class 4: Making Procedures [Notes]

Lambda
Making and Applying Procedures
SVO/SOV/OVS Languages

Class 5: Procedure Practice [Notes]

If Expressions
Why we can’t define if ourselves
Practice defining procedures

Class 6: Programming with Data [Notes]

Procedure practice: middle, find-fixedpoint
History of Scheme
Introducing Pairs

Class 7: Programming with Lists [Quiz 1 (PDF)]

Making cons, car, and cdr
Threesomes, Quadruples, and More!
Lists
Gold Star Grading Scale

Class 8: Programming with Lists [Notes]

Reviewing Lists
Defining is-list?
Quiz Results and Comments
Recursive List Procedures

Class 9: Consistent Hashing [Slides] [Notes]

Danny Lewin, 14 May 1970 - 11 September 2001
Internet Caching
Lookup Tables
Hash Tables
Consistent Hashing

Class 10: Abstracting List Procedures [Notes]

Abstracting List Procedures
Edit Distance

Class 11: Deeper List Procedures [Slides] [Notes]

list-accumulate vs. list-cruncher
The Story so Far: Recursive Definitions, Universality, Abstraction
Problem Set 3: L-System Fractals

Class 12: Computing Machines [Slides] [Quiz 2 (PDF)]

Constitution Day!
Jefferson's Decimal Measurement System
Computing with Electricity
Transistors and Logic

Class 13: Digital Logic [Slides] [Notes]

Shockley-can Valley
Describing Functions with Truth Tables
Turing Truth Tables into Logic
Making and3 and or
Quiz 2 and Course Suggestions

Classes 14-27

Class 14: Turing's Model [Slides] [Notes]

Modeling Computers
Finite State Machines
Turing Machines

Class 15: Where are the Bagels? [Notes]

Practice with Digital Logic
Defining for and while

Class 16: Making Loops [Slides] [Notes]

Designing Turing Machines
Making Loops

Class 17: Golden Sneezewort [Slides] [Notes]

Generalizing Loops
Fibonacci
Measuring Cost
Golden Ratio

Class 18: Measuring Cost [Slides] [Notes])

Measuring Cost
Asymptotic Operators: O, Ω, &Theta

Class 19: Analyzing Algorithms [Slides] [Notes]

XOR Machines
Proof by Construction
Algorithm Analysis
Turing Machine for < (unary input)

Class 20: Running Time [Slides]

Steve Jobs, 1955-2011
Turing Machine for < (binary input)
Breaking Lorenz

Class 21: Changing State [Slides] [Notes]

Asymptotic Operators Practice
State
set!
Mutable pairs

Class 22: Stateful Evaluation Rules [Slides] [Notes]

Name, Places, Frames, and Environments
Stateful Evaluation Rules
Exam 1
Tandem Repeats

Class 23: Programming with State and Genetic Algorithms (guest lecture by Westley Weimer) (Slides [PDF])

Functional vs. Imperative Programming
Stateful Application Rule
mlist-append!
Genetic Algorithms

Class 24: Imperative Programming [Slides] [Notes] [Code]

list-append vs. mlist-append!
Aliasing

Class 25: Reversing Reverse [Slides]

Reverse Engineering
list-reverse
Analyzing running time and space
mlist-reverse!

Class 26: Objectifying Objects [Slides] [Notes]

Encapsulation
Making a better counter
Object-oriented programming

Real databases

Class 27: Pythonic Objects [Slides]

John McCarthy
Why learn Python?
Learning new languages
Objects in Python

Classes 28-41

Class 28: Entropy [Slides] [Notes]

Liberal Arts Checkup
Python Tuples and Lists
Reversing in Python
Entropy

Class 29: Trick-or-Treat Protocols [Slides] [Notes]

Protocols, Algorithms, and Procedures
Public-key Cryptography (RSA)
P=NP?
Inheritance

Class 30: Sex, Religion, and Politics [Slides]

Problems and Procedures
P=NP Recap
Endless Golden Ages
Golden Catastrophes
Optimism

Class 31: Dictionaries [Slides] [Notes] [Code]

Python Dictionaries
Plagarism Detection
(Pre-)History of Object-Oriented Programming

Class 32: Interpreters [Slides] [Notes]

Meta-Linguistic Programming
Interpreters
History of Object-Oriented Programming
Implementing Application

Class 33: Diving Deep (guest lecture by Ivan Alagenchev) [Slides] [Notes]

Class 34: Unprovability [Slides] [Notes]

Problem Set 8
Axiomatic Systems
Proving 1+1=2
Russell's Paradox

Class 35: Self-Reference [Slides]

The true story of Epimenides
Gödel's Proof
Introducing Computability

Class 36: Halting Problem [Slides] [Notes]

Halting Problem
Proving Non-Computability
Universal Turing Machines

Class 37: Computability in Theory and Practice [Slides]

Computability Practice
Universal Languages
Lambda Calculus
Ali G Problem

Class 38: The Internet [Slides] [Notes]

Type Checking
Networking
Latency and Bandwidth
The Internet

Class 39: ...and the World Wide Web [Slides]

The World Wide Web
Dynamic Web Applications
Search Engines
MapReduce
Course Summary

Class 40: Research (Notes: [PDF])

Jonathan Burket, GuardRails: A (Nearly) Painless Solution to Web Application Security [PPTX] [GuardRails Website]
Virginia Smith, Big Data, Bees, and Buildings [Prezi Presentation]
Peter Chapman, Secure Computation on Mobile Devices [PPTX] [MightBeEvil.com]

Class 41: The Cake of Computing

Print Friendly Print Get a PDF version of this webpage PDF

13 Responses to “Classes”

  1. Michael Carmone says:
    21 September 2011 at 12:13 pm

    It may just be me, but Fridays seem to be a bad day to submit the Problem Sets. I get most of my work done on Sunday and throughout the week I am very busy.

    Log in to Reply
  2. Michael Carmone says:
    21 September 2011 at 4:33 pm

    Also ElevenLearning.com is fine, it would be better with a “Find” Feature

    Log in to Reply
    • David Evans says:
      21 September 2011 at 7:10 pm

      Yes, it would be useful to have a search in book, which doesn’t seem to exist. Note with google you can do searches across the PDFs by using site:computingbook.org in your search. For example,
      site:computingbook.org Ada.

      Log in to Reply
  3. Colton Beck says:
    21 September 2011 at 4:38 pm

    I agree with Michael. Problem sets would be much easier to manage if they were due after the weekend rather than before.

    Log in to Reply
  4. David Evans says:
    21 September 2011 at 7:05 pm

    Most of the remaining problem sets are scheduled to be due on non-Fridays (except PS5 which is scheduled for Oct 21), so hopefully that will help. (I should note, though, that there is more that a week for every problem set, so if you find it easier to schedule your work over a weekend you can always start early even for a problem set due on a Friday!)

    Log in to Reply
  5. Anonymous says:
    28 September 2011 at 5:48 pm

    Is there a place on this website or elsewhere for us to check our grades and progress in the class?

    Log in to Reply
    • David Evans says:
      28 September 2011 at 7:06 pm

      Not yet, but I’ll make the grades available for you to check sometime after Exam 1.

      Log in to Reply
      • Anonymous says:
        29 September 2011 at 10:16 pm

        Awesome. Thank you.
        Will we be able to view our PS and Quiz grades as well?

        Log in to Reply
      • Anonymous says:
        29 September 2011 at 10:26 pm

        Will we be able to view our PS and quiz grades as well?

        Log in to Reply
        • David Evans says:
          14 October 2011 at 12:53 pm

          Yes, you’ll be able to see all your grades.

          Log in to Reply
          • Anon says:
            17 October 2011 at 7:19 pm

            Where/When will you be posting them?

          • Any says:
            20 October 2011 at 3:58 pm

            Soon?

  6. David Evans says:
    20 October 2011 at 6:56 pm

    I sense from the questions, you are wanting this because you don’t know your grades on some of the assignments. This isn’t the point of me posting the grades. It is only so you can verify that I have grades recorded correctly. I won’t post grades for assignments that haven’t yet been collected, since I don’t want students to substitute carefully reading our comments on your assignments/exams, for seeing just the posted score.

    So, the grades will be posted before the end of the semester (but probably a bit before that), but only grades for assignments that have already been collected.

    Log in to Reply

Leave a Reply Cancel reply

You must be logged in to post a comment.

cs1120 | RSS | Comments RSS | Book | Using These Materials | Login | Admin | Powered by Wordpress