ORF 201: Computer Methods for Problem Solving

Spring 1999

Professor: Robert J. Vanderbei
Lectures: Tuesday & Thursday, 10:30 - 11:50 am, Room C-207
Labs: Monday 1:30-2:20, 3:30-4:20, 7:00-7:50 & Tuesday 2:30-3:20, Room E-423


Description | Administrata | Outline | Readings | Assignments

ORF 201 provides an introduction to problem solving on computers. It is one of the two courses that can be taken to satisfy the School of Engineering and Applied Science's Computing Requirement (COS 126 is the other one).

Other than some mathematical maturity, the course has no prerequisites. In particular, students with no prior computer programming experience are encouraged to take this course.

The computer language taught in the course is JAVA. In the recent past, the language was C/C++. JAVA offers a few key advantages over other languages such as C. First, it provides an easy mechanism for a programmer to "publish" his/her programs on the internet. That is, a working program can easily be embedded in a web page and then run automatically by anyone visiting the page. No other programming language offers this capability. Second, JAVA has very simple tools for creating nice graphical user interfaces. Both of these features of JAVA will be exploited in ORF 201. In fact, every program a student writes for the course will feature a nice user interface and will be incorporated into the student's home page.


Description | Administrata | Outline | Readings | Assignments

Office Hours:

Phone Hours Location
Robert J. Vanderbei 258-0876 Tues & Thurs, 1:30 to 3:00 pm E-Quad ACE-42
Anastasia Papavasiliou 258-2833 TBA 211 Fine Hall
Christopher White 258-4593 TBA E-Quad E-314

Undergraduate Helpers in E-423:

Steve Anen ??
Erez Lirov ??


Programming Assignments 60%
Midterm Exam(s) 20%
Final Exam 20%


  • MAT 103.

Required Books:

  • Computing Concepts with JAVA Essentials, C. Horstmann.

Reference Books:

  • Core JAVA, G. Cornell and C. Horstmann.
  • Algorithms in C, R. Sedgewick.
  • Hahn's Student Guide to UNIX, H. Hahn.

Online Reference Materials:


Description | Administrata | Outline | Readings | Assignments

Lectures will become available online (click the appropriate link below) sometime shortly after the lecture is given in class.

Week Tuesday Thursday
1 Hardware, Software, History Arithmetic, Simple Loops
2 Decisions, Decisions Simple Data Structures: Arrays and Classes
3 Functions aka Methods Functions and Graphics
4 Searching Java is Pointerless
5 Call-by-Value and Recursion Sorting
6 Review Midterm
7 Post Review Linked Lists
8 GUI Hashing
9 Hashing Continued Last Hash
10 Databases Static Variables, GUIer
11 Shortest Paths, Continued Fractions Binary Trees
12 Java vs C vs C++ Review

Click here for source code to JAVA programs covered in class.


Description | Administrata | Outline | Readings | Assignments

Week Tuesday Thursday
1 1.1-1.11 2.1-2.5, 6.1-6.2
2 2.5 3.1-3.3, 4.1-4.2, 6.4, 9.1-9.2
3 5.1-5.5 2.6, 4.4, 12.6-12.7
4 4.5, 5.8-5.9, 10.1-10.2
5 12.1-12.5 3.1-3.2
6 3.8, 13.1-13.2 Midterm
7 Appendix A2
8 13.4
9 8.1-8.9
12 Appendix A3 Review


Description | Administrata | Outline | Readings | Assignments

Each assignment is tentative until noon on the Monday prior to the due date---at which time it becomes official.

Week Assignment
1 Introduction to UNIX and Editing
2 The Internet: My House, My Home (Page)
3 Simple Graphics: An Analog Clock
4 Looping: Numerical Integration
5 Simulation: Earth--Moon
6 Midterms...No assignment
7 Algorithms: Facility Location
8 Recursion: The Maze Solver
9 GUIs: The Gaussian Eliminator
11 Optimization: Shortest Path Trees
12 Dynamic Programming: Optimal Sailing Strategies

Last modified: Thu Apr 16 14:15:09 EDT 1998 © Princeton University