CS 5244 - Internet Software - Professor Oliva

FAQ Subject: Prerequisites

What are the prerequisites for this class?
This class (along with CS 5744) is one of the two capstone classes of the Software Development Module of the VTMIT program.  As such, the foundation courses are the minimum prerequisites:
Please note that all of the assignments in this class require a significant amount of Java programming on your part, so you are expected to have a solid understanding of Java before we begin.  We will not be reviewing the basics of Java in this class, but we will cover in detail all of the advanced programming skills needed for developing distributed enterprise class applications.

I see that Java is a prerequisite; exactly how much do I need to know?
You are expected to have a good working knowledge of the Java language upon entering the class, since Java will be used as a common language to express the complex topics of this course. You will only need basic Java SE language skills (meaning only major classes from java.lang and java.util) but you should be very well-versed in the overall concepts of the Java language and environment.

For example, if you are at all uncomfortable with (or unfamiliar with) fundamental concepts such as:
...then you should definitely review those concepts very early in the semester (ideally before it begins). Be sure you understand how to read standard Java API Documentation as many of the packages presented throughout the semester are well-documented there.  Our first homework, which requires (only) these basic skills to complete, is due very early in the semester as a "warm-up" assignment.

Please note that if your only exposure to the Java language has been CS 5044, then you will need to review some of these fundamentals before the semester starts; that class is not designed to provide, on its own, sufficient background for this class.

My Java skills are relatively weak; can you recommend a good book to help me prepare?
I can't recommend any specific books or resources, because people tend to learn programming languages in vastly different ways.  What works well for one student may not work at all for another student.  Still, there are hundreds--if not thousands--of books that claim to teach you Java.  You can find any one or more of those, and/or try the extensive official online Java Tutorial.  If you have limited programming skills in general, you should consider taking the Preparation Course that has been tailored to the needs of VTMIT students.

Can professional experience substitute for any prerequisite classes?

Usually not, but there can be exceptions. If you believe you have a compelling case, please ask your faculty advisor to review your situation.  If your faculty advisor agrees, you may be allowed to enroll.