Instructor: John Franco
Office: 821 Rhodes (Office Hours: W-F 11:00AM-12:00PM)
Phone: 556-1817
Email: franco@gauss.ececs.uc.edu (among other things for an account on helios)
TA:Weiya Yue
Office: 805C Rhodes (Office Hours: X-X XX:XX-XX:XXPM)
Email: yuewa@email.uc.edu
Description:
| Treats sophisticated ways to use advanced programming constructs which are now or are beginning to be commonplace in modern general purpose programming languages. For example, we consider the advanced use of exceptions, threads, reflection, streams, sockets, remote method invocation, virtual functions, among other concepts. In addition, modern security features including provisions for public-key crytosystems and class encoding will be discussed. All the examples we use will be coded using Java. Hence, learning Java will be part of the course. |
Prerequisites:
| The usual programming courses that a senior will have taken including 20-ECES-323 and 20-ECES-403. The student is expected to know what Object Oriented Programming is and is expected to have significant programming experience in OOP, especially using C++. |
Grading (approx):
| Distribution of credit: Midterm exam - 30%; Project - 70%. Grades are assigned on an informal "curve". If you fail the project you fail the course. The project will be assigned by the middle of February and will be due on the last day of the final exam week of this quarter. A preliminary version of the project appears now on the official course web page. Watch for updates, though. |
Textbook - Niemeyer preferred:
| Learning Java
by Patrick Niemeyer and Jonathan Knudsen, O'Reilly, 3rd Ed., ISBN:
0-59600-873-2 (2005) Available online: here Java How to Program, 6th Edition by Paul Deitel and Harvey Deitel, Prentice-Hall, ISBN: 0-13148-398-9 (2004) |
Accounts:
| You will have the opportunity to get an account on my machine so you will
have access to cgi-bin for some Common Gateway Interface programming in Java
and a late version of Java (1.5.0). To get an account, show up in my office
and ask for one (it is probably best to specify a desired account name which
matches that of a machine you have access to since you will use ssh to
login). You will also have your normal university accounts. However, note
that unless you do something to protect it, all students and most faculty
have access to your department account.
The name of the machine holding the account is helios.ececs.uc.edu. |
Homework Policy:
| Four homeworks will be assigned this quarter. Solutions were provided but now that we have a grader why don't we let him take a look at what you do and return comments. So, give the problems a try and, if you need to, see me or the grader for help. Please remember, you are professionals, the homeworks are intended to excercise your mind, not to punish. So, for your benefit, I would suggest doing them. |
Schedule: (approximate, SUBJECT TO CHANGE - Do-At-Home-Exam in 7th week)
| Week | Class Material | Reading (Niemeyer, 3rd ed.) |
| 1 | Basic Introduction to Java Applications | Chapters 2, 3 |
| 2 | Exceptions, Arrays, Packages, Variable Visibility | Chapters 4, 5 |
| 3 | Multiple Inheritance, Interface, Threads | Chapters 5, 6, 9 |
| 4 | Threads, Abstract Windowing Toolkit | Chapters 9, 16, 17 |
| 5 | AWT, Reflection | Chapters 7, 9, 18, 19 + other sources |
| 6 | Utilities, Input/Output Streams | Chapters 11, 12 |
| 7 | Out of Town - Do At Home Exam | Your Brains |
| 8 | Network Programming | Chapters 14, 15 |
| 9 | Network Security, Data Base (JDBC) | other sources |
| 10 | Data Base (JDBC), Review | other sources |