Instructor Luke Hunsberger Lectures Mon/Wed @ Noon - 1:15 p.m., OLB 105
We will use the following programming languages in this course:
Software that enables us to use all of these languages is provided
on the lab computers in the computer science department. Each
student will have a computer science account that will provide access
to all software needed for this course. However, if you want to
download this kind of software onto your own computer, it is
available from the following sources:
There will be regular writing assignments, usually about one every two
weeks.
All assignments must be done individually. No
collaboration of any kind is allowed. Any cases of inappropriate
collaboration (cheating) have to be reported to the department
chair, and will be dealt with promptly.
There will be one in-class exam during the semester, shortly
after Spring break. There will also be a final exam. Each
will involve composition only.
The elements of the course (assignments and exams) will be
weighted as follows when determining your overall grade:
Academic accommodations are available for students with
disabilities who are registered with the Office of Disability and
Support Services. Please schedule an appointment with the
instructor early in the semester to discuss any accommodations for
this course which have been approved by the Director of Disability
and Support Services as indicated in your accommodation letter.
Overview
This course explores a variety of approaches to computation using
basic programming examples in programming languages such as Scheme,
Java, Haskell and Prolog that represent alternative programming paradigms.
Similar examples from web programming, graphical user interfaces and
artificial intelligence are also addressed. Regular writing assignments
focus on the different aspects of computation embodied in the many examples.
Nuts and Bolts
We may also examine HTML programming for Web pages. In addition,
we will use the Latex software to generate publication-quality
formatting of written assignments.
Assignments 70% Midterm Exam 15% Final Exam 15% Calendar
Monday
Wednesday
Jan. 23
Introduction. Code snippets in
Scheme, Java and Haskell; and sample latex and pdf files.
Scheme
summary.
Asmt. 1: Due Monday, Feb. 4, 2013
Jan. 28
Introduction to Scheme: syntax, semantics, primitive dataJan. 30
Continuing with Scheme: evaluating non-empty lists, the
Feb. 4
Continuing with Scheme:
Definitions from class,
Interactions from class.
Feb. 6
Continuing with Scheme: conditional expressions and recursive functions.
Code from class.
Asmt. 2: Due Friday, Feb. 15, 2013
Feb. 11
Comparing the performance of the BUBBLE-SORT and MERGE-SORT
functions (for sorting a list of numbers into non-decreasing
order).
Code from class.
Feb. 13
Guest Lecture: Ben Stoutenburgh -- Command-Line Basics
Feb. 18
Guest Lecture: Prof. Marc Smith
Code from class
Feb. 20
Latex tutorial; HTML tutorial.
Asmt. 3: Due March 1 @ 3:00 p.m.
Feb. 25
Further Latex tricks: footnotes, lists, verbatim. Continuing
with HTML.
Feb. 27
Converting Latex to HTML (latex2html manual);
Introduction to Java and drJava (drjava.org).
March 4
A Java class definition as a container of (static) methods (e.g., FACTY)
Code from class;
Interactions like those seen
in class.
March 6
A Java class that contains (1) a template for creating objects; and
(2) methods that can be "run" by those objects.
Code from class;
Interactions like those
seen in class.
SPRING BREAK! March 25
Graphical applications in Java using Model-View-Controller
paradigm! Code from class.
March 27
Code from class.
Asmt. 4: Due Friday, April 5 @ 5:00 p.m.
April 1
MIDTERM EXAM!
This exam will ask you to write one or two essays.
April 3
Prolog! Code from class.
April 8
Sample research paper (writeup.tex,
writeup.pdf).
April 10
What is Computation?
April 15
Prolog examples.
April 17
More fun with prolog!
April 22
A sample grammar for a portion of English that simultaneously
handles tense agreement, number agreement, and generating parse
trees. Prolog code from class.
Asmt. 5: Due Wed., May 1 @ noon! April 24
Alan Turing's
1950 paper: Computing Machinery and
Intelligence; Lessons
from a Restricted Turing
Test; Loebner's Response; An
alternative proposal for a 'Turing Test'.
April 29
Computers and Two-Player Games: Handout; Chess Program;
Instructions for Chess Program.
May 1
Neural Networks!
Asmt. 6: Due Wed., May 8th @ 5:00 p.m.
May 6
Last day of class!
May 8
THIS SPACE FOR OFFICE USE ONLY!