Honors Section

This page documents the topics and readings covered in the CSE 142 Honors section. One goal of publishing the readings here is so students not in the Honors section can still follow along.

Honors sections are led by Alex Miller (amiller@cs.washington.edu).

Honors Section #6 - Algorithmic Art

Reading: The Algorists by Roman Verostko

This week we explored algorithmic art. We began with a short discussion on the Algorists -- a group of artists who made early computer art which emphasized the role of the algorithm in the creative process. Unlike special effects for movies or video games, algorithmic art generally tends to highlight the algorithmic origin of the art, rather than obscure it. Algorithmic art "looks like" it came from an algorithm.

Then I gave a tutorial on how to make your own algorithmic art with a free tool called Processing. Processing is a simple programming environment designed for beginner programmers. It uses a modified version of Java that makes it easy to draw graphics to the screen (and feels similar to using DrawingPanel). Many tutorials exist to help you learn Processing on your own (for example in the tutorials section of the Processing website).

Next, I introduced an advanced type of algorithm that can be used to generate art: L-Systems. We wrote our own implementation of an L-System that draws the Koch snowflake in Processing (download below).

Koch_snowflake.pde

Honors Section #5 - Kurzweil and Futurism

For this section, we read Ray Kurzweil's essay "The Law of Accelerating Returns". In this essay, Kurzweil uses trends like Moore's law as evidence for his argument that technological progress is accelerating, rather than growing linearly.

We started off the section by talking about what communication infrastructure looked like in Victorian times. We discussed the economic impact of the first telegraph cables. The first Transantlantic telegraph cable could carry 8 words a minute. And you thought your 10 Mb/s Internet connection was bad!

Then we moved on to discuss the Kurzweil reading. Based on an exponential projection of technological progress, Kurzweil predicts that technological progress will begin growing so rapidly that humans won't be able to comprehend the advancements. Kurzweil calls the point at which this happens the "Singularity."

We discussed the plausibility of Kurzweil's claims. Not everyone believes that technological progress grows exponentially. For example, Paul Allen argues that technological complexity slows down progress. In his view, there are diminishing returns in technological progress, not accelerating returns. By some measures (for example, number of patents filed), technological progress has slowed down recently.

Honors Section #4 - Impact of Technology of the Economy

For this section, we read an MIT Technology Review article on the impact of technology on jobs. The article focuses on arguments by economists that while American productivity continues to increase, employment rates fall behind. I made sure to mention that economic productivity is notoriously hard to measure; some economists argue that productivity has actually decreased recently. In addition, some economists are more optimistic about technology's impact on jobs.

We had a wide ranging discussion about technology and unemployment. We talked about what types of jobs are especially vulnerable to replacement by automation -- those jobs which can be easily captured by an algorithm. These jobs usually end up being middle class desk jobs. Some blame automation in part for the hollowing out of the American middle class.

We discussed the idea that software generates revenue for writers of software, but doesn't create new jobs for anyone else. In contrast, technological innovation in the past has typically created a sufficient volume of new types of jobs to keep employment levels steady.

I talked about firsthand experience with job automation I had as a software engineer at Google while working on enterprise software.

Honors Section #3 - The Turing Test

For this section, we read Alan Turing's famous paper "Computing Machinery and Intelligence", in which Turing develops a thought experiment (now called the "Turing test") to asses whether a computer algorithm displays consciousness or not. Turing believed that engineers could eventually program a computer to be intelligent like a human. We talked about the thin line between consciousness itself and imitation of consciousness.

We then discussed John Searle's criticism of the Turing test; in particular, his Chinese room thought experiment.

I mentioned that the Turing test is no longer considered state-of-the-art for intelligence detection. I gave an overview of the Winograd Scheme Challenge -- a more objective and detailed test for intelligence.

Honors Section #2 - History of Computer Science

For this section, we read a chapter from Walter Isaacson's The Innovators on Ada Lovelace.

We started the section by introducing the idea of a formal system: a mathematical concept which plays an important role in the development of computer science theory. We tried to solve Douglas Hofstadter's MU puzzle to get our feet wet with formal systems.

We then followed the development of math and logic by looking at breakthroughs made by specific individuals:

Honors Section #1 - Introduction

In this section, I introduced the goals of the honors section:

  • To explore computer science as an academic field;
  • To preview what a career as a professional computer programmer is like;
  • To discuss how computer science impacts, and is impacted by, our concept of self and intelligence, global economy and politics, and culture and society.

I emphasized that while CSE 142 is all about how to program computers, computer science is much larger in scope than just programming (or even physical computers). There's a saying that gets at this: "Computer science is no more about computers than astronomy is about telescopes." Even though many students who major in computer science go on to become professional programmers, you study a lot more than programming to get a computer science degree.

We started discussing some big questions about computer science:

  • What is a computer? How is a computer different from a simple calculator?
  • What is computation?

These are questions which we'll come back to in later sections.