ORF 201: Computer Methods for Problem Solving
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
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.
|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|
Lectures will become available online (click the appropriate link below) sometime shortly after the lecture is given in class.
|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|
|7||Post Review||Linked Lists|
|9||Hashing Continued||Last Hash|
|10||Databases||Static Variables, GUIer|
|11||Shortest Paths, Continued Fractions||Binary Trees|
|12||Java vs C vs C++||Review|
|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|
Each assignment is tentative until noon on the Monday prior to the due date---at which time it becomes official.
|1||Introduction to UNIX and Editing|
|2||The Internet: My House, My Home (Page)|
|3||Simple Graphics: An Analog Clock|
|4||Looping: Numerical Integration|
|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|