CSE 341
Programming Languages
Winter 2000
|
Department of Computer Science and Engineering,
University of Washington
Steve Tanimoto (instructor) and Jeremy Baer (teaching
assistant).
|
Syllabus
(most recently updated on 2 January 2000)
Tentative list of topics to be covered:
-
Overview of Programming Language Families
-
History of Programming Languages
-
Interaction with Lisp
-
Lisp S-expressions, representation of list structure
-
Lisp evaluation
-
Defining functions, recursion
-
Functional programming with Lisp
-
Lexical closures and their relation to objects
-
Pattern matching
-
The Object-Oriented Approach
-
Java classes and instances
-
Java commonly used classes
-
Java AWT
-
Java multitasking and networking
-
Visual programming: systems and issues
-
Introduction to visual programming systems
-
Scripting languages and Perl introduction
-
Pattern matching in Perl
-
String interpolation and other features of Perl
-
CGI programming
-
Integration with the OS, databases, and browsers
-
Fundamentals of logic programming
-
Logic programming using a Lisp resolution engine
Grading -- approximate percentages
-
Lisp programs 15%. Lisp Quiz 5%.
-
Java programs 15%. Java Quiz 5%.
-
Other assignments 15%.
-
Final exam 15%
-
Miniproject 30%.
Late Policy for Homework
Unless otherwise noted, if an assignment is turned
in after the beginning of the class at which the assignment is due, but
within one hour of the deadline, 10% off. Between 1 hour and 1 day
late, 15% off. Between 1 day and 1 week late, 20% off. After 1 week
late, 10% per additional week late.
Policy on Collaboration
WARNING: Unless indicated otherwise in writing,
each assignment is to be done by each student individually and independently.
Students are encouraged to study together and help each other in debugging.
However, sharing a solution with another student before the assignment
is due or looking at someone else's solution and subsequently modifying
your own before the assignment is due is inappropriate. Student solutions
judged by the TA and instructor to be suspiciously similar may lead to
prosecution under the College of Engineering's policy on academic misconduct.
Texts
1. Steven Tanimoto: Symbols, Programs, Interaction:
An Introduction to Common Lisp (Lisp Notes for CSE 341, Jan.
2000). Copies can be purchased for about $12.00 from Professional Copy
N Print at 4200 University Way, N.E.).
2.Timothy Budd: Understanding Object-Oriented
Programming with Java, 2nd ed. Reading, MA: Addison-Wesley, 1999. (available
at the University Bookstore).
3. Michael Schilli: Perl Power! : A Jumpstart
Guide to Programming with Perl 5, Reading, MA: Addison-Wesley, 1999.
(available at the University Bookstore).
References on Lisp
There are a number of online resources for LISP.
Here is one of them.
References on Java
Here
are some Java references to help you get started.
Here's the Java
online documentation (for the JDK 1.1 version).
References on Visual Languages
A few VL references are here:
-
A system called ToonTalk.
-
The KidSim
system
-
Info about a conference
on this subject that will take place in Seattle later this year.
References on Perl
Here are a few of the many online resources
for Perl:
References on Prolog
Here are some links for Prolog:
Course Mailing List:
Our email list is: cse341@cs.washington.edu
The archive is here.
General References on Unix and HTML
For those of you who are new to Unix,
you might like to read the local
ACM chapter's tutorial on Unix or look at this
web site.
For HTML, you can look at web page sources
in Netscape by clicking on View and then selecting Page Source.
You can also read about HTML
here.
For information on the Emacs text editor check
this
local page, which covers the Windows versions. Here's the GNU
Emacs online manual.