This course is intended for CS majors who have had a year of programming in high school and are admitted to the honors section. A strong math background, including credit for Math 305G (precalculus) or equivalent, is required.
We will use the programming language Scheme, a dialect of Lisp. The Scheme implementation we will use is DrScheme, which can be downloaded free; versions are available for most computers.
This course will move fast and will emphasize CS concepts more than programming language syntax. We will do a lot of programming (one program per week) and work hard, while hopefully learning a lot and having fun.
JavaTM 2 SDK and Documentation: According to Sun's Java homepage the Java 2 SDK is "Sun's product that implements the JavaTM 2 Platform, Standard Edition, v 1.3; it is a software development kit that can be used to build applications for the JavaTM 2 Platform, Standard Edition, v 1.3. The SDK includes both the development tools (compiler, etc.) and the JavaTM 2 Runtime Environment, Standard Edition, v 1.3". Essentially The Java 2 SDK, along with a text editor of some sort such as notepad or WordPad, is the minimum software you need to create and run Java programs. If you want to work on programming assignments at home you will need to download and install the Java 2 SDK. Instructions for download and installation.
BlueJ: BlueJ is a simple Interactive Development Environment, designed by educators at Monash University in Australia for use in introductory programming classes. It is written in Java and a lot simpler than the high powered IDEs such as CodeWarrior or JBuilder which were designed for use in industry rather than education. Mike Scott has provided instructions on how to download and install BlueJ and how to create projects and run programs with BlueJ.
Mike Scott's CS 307 web page has some useful material on Java.
Notes on Java
Class newsgroup: utexas.class.cs307 at newshost.cc.utexas.edu or news.cs.utexas.edu. Send mail to email@example.com
Certification of Individual Work
Instructor, Teaching Assistant and Lab Proctor Office Hours
Individual Tutoring for CS 307
Lecture notes by Contents or Index.      DO NOT print out the full set of slides on CS department printers.
What to turn in for Programs
How to Debug Programs
Avoiding Scheme Pitfalls
Clues to Writing Recursive Functions
FTP Directory for Software and Scheme Tutor
Using the Scheme Tutor
Books on Scheme
R5RS = Revised (5th) Report on Scheme A reference manual. DO NOT print this manual out on CS department printers.
Universities that use Scheme
Scheme vs. Common Lisp
Assignment 1: Basic Scheme
Assignment 2: Playing Peano and Gambling
Assignment 3: Turtle Graphics
Assignment 4: Snow and Trees
Assignment 5: List Manipulation
Study Guide for Exam 1: Oct. 5, in class
Study Guide Answers for Exam 1
Assignment 6: The Plot Thickens
Assignment 7: Treasure Hunt
Assignment 8: Symbolic Algebra
Study Guide for Exam 2: Nov. 2, in class
Study Guide Answers for Exam 2
Assignment 9: Drawing Trees
Assignment 10: Expression Unparsing
Assignment 11: Language Translation
Assignment 12: Lists in Java
Assignment 13: Symbolic Algebra in Java
Study Guide for Final Exam: Dec.14, 9-12 AM in WAG 101
Study Guide Answers for Final Exam