Course Syllabus 810:062
|
Instructor: Eugene Wallingford
- Office: 327 Wright
- Phone: 273-5919
- E-Mail: wallingf@cs.uni.edu
- WWW: http://www.cs.uni.edu/~wallingf/
- Click here for my my office hours and schedule
Resources
- Required Texts: None
- Optional Texts:
- Java in a Nutshell, by David Flanagan of O'Reilly Publishing
- The Java Programming Language, by Ken Arnold and James Gosling
- Understanding Object-Oriented Programming with Java, by Tim Budd
- Electronic resources:
- The course web page, http://www.cs.uni.edu/~wallingf/teaching/062/
- The course mailing list, 810-062-01@uni.edu
Note that to send messages to the course mailing list, you must send from the mailing address from which you are subscribed. By default, that is your acad.uni.edu e-mail address. If you'd like to be subscribed from some other address, just let me know.
Your skill as a programmer depends largely on how many ways you can think about problems and solutions. At the most abstract level, flexibility allows you to be creative. At a more concrete level, flexibility allows you to learn new kinds of programming languages more effectively. And, at the most concrete level, such flexibility allows you to use individual programming languages more effectively.
This course aims to help you develop an in-depth understanding of a new way to think about computer programs: as collections of independent objects that collaborate to achieve some goal. It does so by giving you the opportunity to design, critique, and implement object-oriented solutions in Java.
By the end of the semester, you should have a solid grasp of the object-oriented approach to software development. You should:
Among the more general goals that you should have for the course is to learn both low- and high-level patterns of programming that will make you wonderful, intelligent programmers and designers.
The course is not a "Java course". As a side effect, though, you will probably become a reasonable Java programmer. Likewise, the course is not organized so that you will be become expert 3:00 AM Java hackers, but that may happen anyway, depending on your programming habits.
Grades will be determined on the basis of your performance on homework assignments and examinations. Final grades will be based on the following distribution:
Item | Number | Weight |
---|---|---|
Homework | 10-12 | 30% |
Midterm exam | 1 | 35% |
Final exam | 1 | 35% |
Grades will be assigned using an absolute scale:
This means that there is no curve.
Discuss ideas, but write your own answers, including all code. You should acknowledge any collaboration explicitly in the work you submit. Undocumented or unacceptable collaboration is considered a form of academic dishonesty.
We will use computing resources in this course for two purposes: to communicate with one another and to do programming assignments that explore course topics.
Communication will be done by e-mail and by World Wide Web. I will post materials for the course to the 062 web page, and we will make use of other web-based resources when appropriate. We also have a class-wide mailing lists, 810-062-01@uni.edu, by which we carry on discussion outside the confines of class meetings. Be sure that you remain current in your use of these resources! I leave you on your own to choose and use web browsing and e-mail tools on any platform you like.
You will write your programs in the language Java. Numerous Java resources are available on the web, and Java implementations are available for many platforms, including Unix, MacOS X, and Windows.
My base platform for the course is the CNS Linux system for students. It provides Version 1.3 of the Java Development Kit, a set of tools for compiling and executing Java programs. I require only that I must be able to compile and run your programs in a standard Java 1.3 environment.
The following schedule gives a rough sketch of the topics we will cover and the distinguished dates this semester. It is tentative and subject to change at any time. I will announce any substantive changes in class and give you sufficient notice.
Week | Topics | Special Events |
---|---|---|
1 | Introduction to OO programming | . |
2 | Introduction to OO design | . |
3 | Basics of OOP | . |
4 | Basics of OOP | . |
5 | Basics of OOP | . |
6 | Intermediate OOP | . |
7 | Intermediate OOP | Midterm Exam (Thu) |
8 | Intermediate OOP | . |
9 | Polymorphism | . |
. | Spring Break | . |
10 | Polymorphism | Tue off? |
11 | Polymorphism | . |
12 | Polymorphism | . |
13 | OOP Patterns | . |
14 | OOP Patterns | . |
15 | OOP Patterns; Wrap-Up | . |
The FINAL EXAM is...