Can Computers Think?
Introduction to Computer Science

CSC 106
Union College
Winter 2010

Overview

This is just a rough overview of what the focus will be on each week. Details may change as we go along. Below is a class-by-class overview which will develop as the course progresses.

Class-by-class

Week 1
DateWhat's going to happen in classHow to prepare
Mo 1/4

Introduction.

Read the syllabus.

We 1/6

Intro to rur-ple.

Simple commands/functions. Defining functions. "Repeat" loops.

Fill in the survey. It is linked from the course's Blackboard page.

Read the syllabus (if you haven't done so already).

Th 1/7

More rur-ple.

Conditionals. If-statements. While loops.

ex_2_harvest_1.wld ex_3_harvest_2.wld ex_5_hurdles.wld ex_6_trash.wld ex_8_uneven_hurdles.wld

Come to class with a solution to this exercise.

Fr 1/8

More rur-ple. Wall following.

Worlds: wall_following_1.wld, wall_following_2.wld, wall_following_3.wld, wall_following_4.wld, maze.wld

Robot programs: wall_following_1.rur, wall_following_2.rur, wall_following_3.rur

Come to class with a solution to this exercise.

Solutions

^ Top
Week 2
DateWhat's going to happen in classHow to prepare
Mo 1/11

Discussion of the Turing paper.

Introduction to the Python interpreter.

Read the paper Computing Machinery and Intelligence by Alan Turing (see the Resources page for a link). Answer these questions.

We 1/13

Statements and Expressions. Variables. Simple function definitions.

Reading: Chapter 2 of "Think Python: How to Think Like a Computer Scientist".

Th 1/14

Conditionals.

Python math library: documentation
Python random library: documentation

Reading: Gaddis, Chapter 2 (to review Wednesday's class)

Do the first batch of CodeLab exercises before class.

Fr 1/15

More conditionals.

temperature_with_condition.py, wage.py, congress.py

Reading: Gaddis, Chapter 3 on functions (to review Thursday's class)

The first programming project is due today.

Solutions

Notes on grading programming exercises.

^ Top
Week 3
DateWhat's going to happen in classHow to prepare
Mo 1/18

Discussion of Searle's paper.

Read the paper Is the Brain's Mind a Computer Program? by John Searle (see the Resources page for a link). Answer these questions.

Do the next batch of CodeLab exercises.

Reading: Gaddis, Chapter 4 on conditionals.

We 1/20

While-loops. Working with strings: indexing and slicing.

Solutions for rock-paper-scissors.

Do this exercise. Turn it in on Blackboard and bring a print out that you can hand in in the beginning of class.

Reading: Gaddis, Section 5.2 on while-loops.
Recommended: They're made out of meat by Terry Bisson.

Th 1/21

Working with strings (ctd.): string methods, for-loops.

Solutions for the number guessing game.

Do the next batch of CodeLab exercises.

Fr 1/22

(More on) defining functions: passing parameters and returning values.

count_vowels.py, drop_vowels.py

Do this exercise.

^ Top
Week 4
DateWhat's going to happen in classHow to prepare
Mo 1/25

Commander Data's trial

preparing for Data's trial

We 1/27

More on defining functions.

count_vowels_with_function.py, more_vowels.py, piglatin.py

Do the next batch of CodeLab exercises.

Reading: Gaddis, Chapters 3 and 6 (functions), Chapter 8 (only the first part about strings)

Th 1/28

Binary numbers. Representing characters and strings using binary numbers.

ascii_nolists.py (converting words to ASCII codes and back)

Reading: Gaddis, Chapter 1.3 (binary numbers, ASCII)

Fr 1/29

First Midterm Exam.

an interview with Jean Bartik (one of the very first programmers)

Preparing for the midterm

Solutions to the midterm.

^ Top
Week 5
DateWhat's going to happen in classHow to prepare
Mo 2/1

Local vs. global variables. Intro to lists.

First set of examples: ex_1.py, ex_2.py, ex_3.py, ex_4.py, ex_5.py, ex_6.py

Second set of examples: ex_7.py, ex_8.py, ex_9.py

Nothing special to prepare. But please have a look at the second programming project so that you can plan for the necessary time to work on it.

We 2/3

Working with lists.

count_elements.py, find_min.py, greater_than_list.py

Do the next batch of CodeLab exercises.

Reading: Gaddis, Chapter 8 (Lists)

Th 2/4

Swarm intelligence.

Today's programming project

Do the newest batches of CodeLab exercises. (There are two for today. Some of you have already done the first.)

Fr 2/5

More lists. Swarm intelligence.

Second programming project due.

^ Top
Week 6
DateWhat's going to happen in classHow to prepare
Mo 2/8

Discussion: Who is responsible for software errors?

Prepare for the discussion

Do the next batch of CodeLab exercises. (Some more exercises to practice using for-loops and for-loops with range.)

We 2/10

Searching and sorting lists.

linear_search.py, binary_search.py

Finish the swarm exercise. (I have provided you with solutions to step 1 as well as the code for the cohesion, separation and alignment functions.)

Th 2/11

Working with multi-dimensional lists.

Today's exercises.

Talk by Jeff Orkin. 12:50-1:50.
Write 1-2 pages explaining what the main goal of his research is, how he is trying to achieve this goal and describe one potential problem that you see with this approach.

Fr 2/12

Wrapping up lists.

^ Top
Week 7
DateWhat's going to happen in classHow to prepare
Mo 2/15

Discussion: Promises and threats of AI.

Intro recursion.

Prepare for the discussion.

Review the solution to the "Lights Out" programming exercise.

Do the survey on Blackboard.

We 2/17

Recursion

If you haven't done so, yet, do the survey on Blackboard.

Th 2/18

More recursion.

Today's exercises.

Solutions

Reading: Gaddis, Chapter 11 (Recursion)

Do exercise 3 on p. 416 (Gaddis, Ch. 11) and submit your solution on Blackboard.

Fr 2/19

Role of the operating system.

File I/O.

to get started: gol_with_file_input.py

example inputs: gol_mini_input.txt, gol_glider_gun.txt

The third programming project is due today.

Please download a new version of gol_display.py. (Tim K. found an error in the old version.)

Solutions

^ Top
Week 8
DateWhat's going to happen in classHow to prepare
Mo 2/22

Discussion: Copyright.

Python under Linux.

Prepare for the discussion.

We 2/24

More file I/O.

to get started: gol_with_file_input.py

example inputs: gol_mini_input.txt, gol_glider_gun.txt

Th 2/25

Workign with dictionaries and file I/O.

bush_state_of_the_union.txt, clinton_state_of_the_union.txt

Talk by Richard Stallman. 4:00pm

Questions for the writ-up on the Stallman talk: What is, according to Stallman, the problem with copyright? How can it be fixed? Do you agree?

Fr 2/26

Second midterm.

More on dictionaries.

Preparing for the second midterm exam.

Solutions

^ Top
Week 9
DateWhat's going to happen in classHow to prepare
Mo 3/1

Discussion: Privacy.

More on dictionaries.

build_word_frequency_dictionary.py

Do the Codelab exercises for today.

Prepare for the discussion.

Decide on a topic you want to work on for the final presentations. Ask me if you need suggestions or help finding material.

We 3/3

Finishing dictionaries.

Intro to neural networks.

Reading:
Chapter on Dictionaries from "Think Python"

Do this exercise before class on Wednesday.

Th 3/4

Working with neural networks.

xor.py

Fr 3/5

Working with neural networks (ctd.).

recognize_9.py, optdigits.tra, optdigits.tes, optdigits.names

Reading:
Overview of neural networks
my slides on neural networks

I postponed the 4th programming projct until the following Monday because we needed a little longer than I had planned for dictionaries.

^ Top
Week 10
DateWhat's going to happen in classHow to prepare
Mo 3/8

Event-driven programming.

The fourth programming project is due today.

We 3/10

Event-driven programming.

Examples: tkinter_1_mainwindow.py, tkinter_2_labels.py, tkinter_3_buttons.py, tkinter_4_quit.py, tkinter_5a_entry.py, tkinter_5b_entry.py, tkinter_6_entry_and_output.py, tkinter_7_frame.py

Solution: multiplication_game.py

Th 3/11

Presentations on a current AI research project.

  • Ciro, Rob
  • Patricia
  • Autumn, Lindsey, Emily
  • Andie, Lexi, Ashley
  • Tim K., Mike

preparing the presentations

Fr 3/12

Presentations (ctd.).

  • Lucas, Will
  • Tim S., Brian
  • Kayleigh

Review session in Olin 102, 12:50-1:50pm.

preparing the presentations

^ Top
Finals Week
Tue 3/16

Final exam.

9-11am in Olin 102.

preparing for the final exam