Northwestern "CS 101"
An Introduction to Computer Science
For Everyone

Course Begins!

  • When: Tuesdays and Thursdays, 3:30-5pm, starting Tuesday, March 27
  • Where: Tech MG28
  • Who: Peter Dinda (Prof) and Ashish Gupta (TA)
  • Optional Recitation: Wednesdays 6pm, Tech L150

  • Online discussion
  • Google Group CS 101 - Northwestern University
  • cs.101 newsgroup, also accessible from the ACM Student Chapter's web interface

  • Office hours: Peter: 1:30-3:30pm, Thursdays; Ashish: 3-6pm, Wedesdays
  • Official Documents

    Although I will hand out paper copies of these documents in class, the versions below are always the current ones.
  • Syllabus (Also includes all reading assignments)
  • Reading List (These are all the materials the course draws from, a small fraction of which you will read)

  • Assignments
  • Essay on a Personality in Computer Science (due 5 pm, Friday, April 27)
    10 pages, single-spaced
    A handout, lising many possible personalities was provided in class
  • Essay on a Topic in Computer Science (due 5 pm, Friday, June 1)
    10 pages, single-spaced
    A handout, lising many possible topics will be provided in class

  • Exams
  • Midterm ("Take Home": Out: Tuesday, May 1, In: Thursday, May 3 (beginning of class))
    Covers the first five weeks
  • Final (Regular finals schedule: Tuesday, June 5, 3-5 pm, Tech MG28 (our regular classroom)
    Covers the last five weeks

  • Who Should Take This Class

  • 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, including in engineering, science, business, law, and politics.
  • Freshmen and those who are thinking about the pursuing the computer science majors/minors in either McCormick or Weinberg.
  • McCormick students in majors other than computer science who want to know what the fuss is about.
  • Computer science and computer engineering students, who should become familiar with the breadth of the intellectual endeavor of the field.
  • What This Class Is About

    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?
  • There will be no programming in this course. The course is about the intellectual content, personalities, structure, history, and aspirations of the field. Here is a short selection of some of the questions and issues that computer science grapples with and that we will talk about in this course.
  • How can we make it possible for human beings to design and build ever more complex artifacts? Computer software is among the most complex creations of human beings and is at the bleeding edge of what we understand how to design and build. How do we manage its complexity?
  • 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?
  • 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 computation based on physics or is physics based on computation?
  • Is the universe a simulation?
  • When And Where

    The first iteration of this course will be taught in Spring, 2007. It is scheduled for Tuesdays and Thursdays, 3:30-5, and is listed as EECS 395-0, Section 21, taught by Peter Dinda. Please do not let the "395" number concern you. This course has no prerequisites, is open to all, and will eventually become a 100 level course. There is no programming involved in this course.