CS 307: Foundations of Computer Science (Honors)

CS 307 is an introduction to Computer Science and programming.

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.

New: Download Java!

You may wish to dowload Java and BlueJ for use in class assignments. (Note: Java is over 30 MB; it may be advisable to download it at UT and write it onto a CD rather than download over a phone line.)  

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 utexas-class-cs307@cs.utexas.edu



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

Downloading Scheme

Using DrScheme

Using MacGambit

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

MIT Scheme


Gordon S. Novak Jr.