Resources

Syllabus

The syllabus for this course is here.

Daily summary

Monday, January 4

I covered sections 1.2, 1.3, 2.2, and 2.3 in the text. You should read these sections. Here are the slides for my first lecture.

Friday, January 8

If finished chapter 2 by developing the pattern matching algorithm discussed in section 2.3.4 of the text. Here are two drafts of that algorithm that I developed in class. Here also are some slides for the lecture. You should finish reading chapter 2.

First Homework Assignment

Do Exercise 10 from the end of chapter 2. This is due on Friday, January 15.

Monday, January 11 and Friday, January 15

Chapter 3. Reading is pages 80 through 105.

Friday, January 15

Our lab next week is lab 9. In preparation for that lab you should read sections 4.2 (pages 130-141), 5.2, and 5.3.

Second Homework Assignment

Do exercises 3 and 15 from the end of chapter 3. This is due on Friday, January 22.

Third Lab

The lab for this week is lab 9, von Neumann machines. The files you will need for this lab are here.

Friday, January 22 and Monday, January 25

I began discussing Java. Reading is sections 8.1 through 8.5. You should pay particular attention to section 8.5, as the next lab will be based on material in that section.

First Midterm

The first midterm exam is coming up on Friday, January 29. That exam will cover chapters 2 and 3. I will ask two specific types of questions: (1) given a problem, write an algorithm to solve that problem and (2) given an algorithm, describe what it does and be able to answer specific questions about its efficiency.

Fourth Lab

The lab for this week is lab 12, which is the first of three Java labs. The project you will need for this lab is here.

Monday, February 1

Methods in Java - reading is section 8.7

Fifth Lab

The lab for this week is lab 13, which is the second of three Java labs. The project you will need for this lab is here.

Third Homework Assignment

Write a Java program that prompts the user to enter a time in hour and minutes and an interval in minutes and then computes ands prints the new time in hour and minutes format. For example, given an input time of 10:50 and an interval of 200 minutes, your program should print 2:10. This program is due on Friday, February 5.

Friday, February 5

I talked a little more about methods and showed several different solutions to the GCD problem. I began the discussion of object- oriented programming. Reading is section 8.8 in the textbook.

Monday, February 8

I covered section 8.9, Graphical Programming. You should read that section.

Sixth Lab

The lab for this week is lab 14, which is the third of three Java labs. The project you will need for this lab is here.

Monday, February 15

I talked a little more about object-oriented programming in Java and showed two versions of a program that plays a simple guessing game. Here are the projects for version one and version two and some lecture notes for today's lecture.

Seventh Lab

This week's lab covers graphical user interfaces in Java. The instructions for the lab are available here.

Fourth Homework Assignment

Write a Java program that asks the user to enter 10 integers and then prints the numbers back out in the order in which they were entered, but with duplicates removed. For example, on the input

10 -1 2 10 3 -4 -2 2 2 7

your program will print

10 -1 2 3 -4 -2 7

This program is due on Friday, February 19

Monday, February 15 and Friday, February 19

I talked about HTML and showed how interactive web applications using HTML and Java are built. You will find a basic discussion of HTML in section 9.3.2 in the textbook. The material on web applications is all bonus material that will not be covered on any exam. If you would like to see the web application example I showed in class, here is the NetBeans project for that application.

Friday, February 19 and Monday, February 22

Lisp programming - reading is section 9.4.1 in the textbook. On Monday I showed some examples of recursively defined functions in Java and Scheme.

Second Midterm Exam

The second midterm exam is coming up on Friday, February 26. This exam will cover Java programming only, and will be limited to those aspects of Java programming discussed in chapter 8 in the textbook. To help you prepare for the midterm, I have prepared some sample questions with solutions.

Monday, March 1 and Friday, March 5

Turing machines - reading is all of chapter 11.

Eighth Lab

The lab exercise this week is parts of labs 18 and 19, Turing machines. For lab 18 you should do parts 18.1 -18.4. For lab 19 you should do parts 19.1-19.3. To do lab 18 you will need the file example.sta - that file is here.

Monday, March 7

Neural networks - reading is section 14.4.

Ninth Lab

The lab exercise this week is lab 23, Neural Networks. Here are the files you will need for this lab.

Friday, March 12

High level AI - reading is section 14.5. I showed a number of examples in the Prolog language, which is one of the languages used for artificial intelligence programming.

Final Exam

The final exam will be held on Friday, March 19 at 1:30. Here is a study guide with sample questions.