# Can Computers Think?Introduction to Computer Science

## CSC 106Union CollegeWinter 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.

• week 1: rur-ple
• week 2: python: expressions, statements, variables, functions, conditionals, first programming project due
• week 3: binary number system, internal representation of data, working with strings
• week 4: more on strings, loops, presentation (Commander Data's trial), first midterm
• week 5: lists, second programming project due
• week 6: multi-dimensional lists
• week 7: recursion, third programming project
• week 8: file I/O, dictionaries second midterm
• week 9: machine learning, fourth programming project
• week 10: GUI programming, presentations (current AI research)
• Final exam

### Class-by-class

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

Introduction.

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.

Th 1/7

More rur-ple.

Conditionals. If-statements. While loops.

Come to class with a solution to this exercise.

Fr 1/8

More rur-ple. Wall following.

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.

Th 1/14

Conditionals.

Python math library: documentation
Python random library: documentation

Do the first batch of CodeLab exercises before class.

Fr 1/15

More conditionals.

The first programming project is due today.

Solutions

^ 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.

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.

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.

^ 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.

Do the next batch of CodeLab exercises.

Th 1/28

Binary numbers. Representing characters and strings using binary numbers.

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

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.

Do the next batch of CodeLab exercises.

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?

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.

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

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.

Solutions

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

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.

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.

Do this exercise before class on Wednesday.

Th 3/4

Working with neural networks.

xor.py

Fr 3/5

Working with neural networks (ctd.).

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.

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
Fr 3/12

Presentations (ctd.).

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

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

^ Top
 Tue 3/16 Final exam. 9-11am in Olin 102. preparing for the final exam