Video Trailer for Computer Science 2000


[Home]

Introduction to Information Systems, Fall 2025

Video Trailer in Canvas Media Library.

MW 2:30 - 3:50pm, RTBA.

Stephen Slade
113 AKW, 432-1246 stephen.slade@yale.edu
Office hours over zoom: Wednesday, 4-6 pm, and by appointment.
Zoom meeting id: 459 434 2854.

What am I like?

I started at Yale over 50 years ago. I went away from time to time to do other things. For the past ten years, I have been teaching in the Computer Science Department.

Biography. Hybrid: academia (theory) / industry (practice).

One thing you should know is that I tend to use the web a lot to organize the class materials. This web page is a good example.

What makes this course great?

First, this course satisfies the prerequisite for the Certificate in Programming, as well as the data structures course, Computer Science 2230. In the past, you could take a placement exam to get into CS 2230. As of this term, you must satisfy the hard prerequisite of either CS 2010 or CS 2000, this course.

There is a standard scheme for giving a talk.

  1. Tell the audience what you plan to tell them.
  2. Tell them.
  3. Tell them what you told them.
We will start with step 1.

Many students come to Yale thinking that programming and computer science are the same thing. This course is aimed to disabuse you of that notion.

For years, academic computer scientists have debated the role of programming in introductory computer science courses. Many have argued that an introductory science course should expose the student to the great ideas of the discipline. Thus, an introductory biology course should cover topics such as evolution and molecular genetics, but not how to build a microscope. Accordingly, a computer science course should emphasize the major intellectual issues of computing, not how to write programs.

We do not agree with this position. First, programming is a major intellectual issue in computer science. Second, the comparison of programming to building a microscope misses the point. Writing programs in computer science is more like building a living organism in biology. If biology had advanced to a stage that permitted introductory students easily to construct amoebas and clams and roses and rabbits, there would be little debate over the intellectual content of such exercises. (Slade, The T Programming Language, 1987)

Here is the our framework. For most of the course, we will execute step 2. On December 3rd, I will execute step 3.

What happens in class?

In most classes, I will lecture about the above topics and related programming assignments. The lecture notes will be available online, and well as video recordings of the lectures. To assess class participation, there will be in-class quizzes. Students get full credit for class participation by completing 50% of the quizzes.

In most classes, I will also demonstrate code online - both Python code and UNIX commands. Transcripts of these online sessions will be available outside of class on the course website.

What are the assessments and feedback like?

There will be regular homework assignments, primarily Python programs. Students will submit their code using gradescope, which has an autograder to provide instant feedback. The assignments also include unit tests to facilitate development and debugging.

There will be two midterm exams and one final exam. Again, the grading will be through gradescope, and you will have the opportunity to request regrades for questions that you feel were not assessed accurately.

What will I do?

There is some reading, but not much. We expect you to know Python for the problem sets and exams, and UNIX for the exams.

Most of your time in this course will be outside of the classroom. Your resources include the course web site, lecture notes, transcripts, lecture recordings, ULA office hours, Ed Discussions, and email access to the staff. I also encourage students to use Clarity and related AI bots to generate practice problems and questions.

A digression: The Trolley Problem

In the world of driver-less cars, people discuss the trolley problem

Should you pull the lever to divert the runaway trolley onto the side track?

This problem originated in the 1960's in the context of abortion and other dilemmas. Today it often crops up in discussions about autonomous vehicles, as in, what decision should the driver-less car make in a similar circumstance?

Some people conclude that we should not have driver-less cars until we solve the trolley problem.

By that argument, we should not allow people to drive either.

My solution to the trolley problem for autonomous cars is the same as for human drivers: obey the traffic laws.

Nonetheless, there has been a lot research into the cultural and developmental differences involving the trolley problem. Here is one example: 2 year old Nicholas and the trolley problem A few years later, his sister Nora was given the same problem.

I think the trolley problem misses the boat. I propose the following as a more meaningful test for a driverless car.

A driverless car will be able to run errands for you. For example, it could pick up your dry cleaning or groceries. It could pick up your children at school.

Let's say that Otto (your driverless car) is supposed to pick up your teenage son at soccer practice. When Otto arrives, your son says that he injured his leg and needs to go to the hospital. Otto should comply with this change of plan.

Instead, suppose that Otto arrives at soccer practice, and your son says that he needs to go to the liquor store. What should Otto do?

There might be a legimate reason for your minor child to go to a liquor store, but Otto should not automatically comply. What should a human driver do?

We will see that for many of these decision problems, there is no one right answer. However, they help us to refine our cognitive model for automated decision making.

Update: I came across the following last year (1/16/2024)

I am always looking for opportunities to get students to question their assumptions.

If you have questions, feel free to write to me: stephen.slade@yale.edu.