|
CATALOG DESCRIPTION: Areas and intellectual questions of computer science; Its impact in the world; Theory, systems, graphics and interaction, artificial intelligence, and more.
REQUIRED TEXTBOOKS:
Available for Free Online
1) Lawrence Lessig, Code: Version 2.0, Basic Books 2006
2) Stephen Wolfram, A New Kind of Science, Wolfram Media 2002 http://www.wolframscience.com/
3) Richard Stallman, Free Software, Free Society: Selected Essays of Richard M. Stallman, Free Software Foundation, 2002
4) Ray Kurzweil, Are We Spiritual Spiritual Machines? Ray Kurzweil vs. the Critics of Strong AI, Discovery Institute, 2002
5) Eric Raymond, The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary, O’Reilly, 2001
Available for Purchase at the Bookstore
1) David Harel, Computers Ltd: What They Really Can’t Do, Oxford University Press, 2003
2) Paul Graham, Hackers and Painters: Big Ideas from the Computer Age, O’Reilly Media, 2004
3) Steven Levy, Hackers: Heros of the Computer Revolution, Penguin, 2001
4) Simon Singh, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Anchor, 2000
5) Martin Davis, The Universal Computer: The Road from Leibniz to Turing, W.W. Norton and Company, 2000
6) Charles Petzold, Code: The Hidden Language of Computer Hardware and Software, Microsoft Press
7) Scott Rosenberg, Dreaming in Code: Two Dozen Programmers, Three Years, 4732 Bugs, and One Quest for Transcendent Software, Crown, 2007
COURSE GOALS: The primary goal of this course is to answer these simple questions:
- “What is Computer Science?”
- “What do Computer Scientists do?”
- “How does Computer Science interact with the rest of the world?”
This course is NOT about and does NOT involve programming.
Detailed information can be found at http://www.cs.northwestern.edu/~pdinda/cs101
COURSE COORDINATOR: Peter Dinda
PREREQUISITES: NONE - this course is open to all students at Northwestern who are interested in learning about what computer science is, what computer scientists do, and how both affect the world from the practical to the esoteric. Freshmen are welcome.
DETAILED COURSE TOPICS:
The topics of this course are questions such as the following:
- How can we make it possible for human beings to design and build ever more complex artifacts
- How do we sustain the exponential growth of computing power, storage capacity, and communications capacity? How do we exploit it?
- What are the mathematical and physical limits to computation and communication? What can’t computers do? What is computation? What is communication?
- What kinds of computational problems are there? How does the universe limit how fast they can be solved?
- What kinds of computers are there? Are some fundamentally more powerful than others?
- What kinds of languages are there? Can we find one that’s equally adept at getting things done on a computer and explaining how it’s done to a person?
- How can we translate from one language to another? How is this problem different for human languages and computer languages? Do answers for one have influence on the other?
- How can computers and human beings best interact?
- Is software creation an art, a science, or an engineering discipline?
- What are the opportunities for computer scientists in the “real world” and in entrepreneurship?
- Can we make a computer learn by itself instead of programming it?
- Can we, and how can we, make a mind? How can we tell that we’re successful?
- Is intellectual property theft? What are the implications to society of the fact that a computer can process any information and making copies of information is free? What are the implications of the Free (as in Freedom) software movement?
- What are the limits to security and privacy that can be achieved computationally? What implications do these fundamental limits have for politics and law?
- Is complex behavior in nature computation?
We will approach these and related questions in the following way:
- Introduction
- History
- Structure of the field
- What computer scientists do
- The exponential “laws”
- Theoretical computer science
- Computability
- Communication
- Programming languages
- Syntax and computation
- Formal languages
- Programs and proofs
- Algorithms and data structures
- Systems
- Architecture
- Compilers
- Operating systems
- Software engineering
- Databases
- Networking
- Distributed and parallel systems
- Performance analysis
- Human-computer interaction and graphics
- Artificial Intelligence
- Turing test
- Techniques
- Philosophy
- Security
- Cryptography
- Quantum computers and cryptography
- Secure protocols
- Intrusion detection
- Bleeding edges and crazy ideas
- Digital physics
- Biological computing
- Smart dust
- Additional topics TBD
ESSAYS:
In the course of the quarter students will write two essays. The first essay will be about a personality of computer science, a person of impact. The second essay will be about an idea of computer science.
|