This resource and advice page is for entering CS 2114 students who have NOT taken CS 1114. Students who have not taken CS 1114 at Va Tech will either have learned Java in another course or have learned another language, (Python or C++). Classify your self and read the following appropriate section. You may wish to first review the topical prerequisite knowledge for CS 2114 at the end of this page.
If you have taken a Java course previously, (CS 1054, transfer credit, AP credit), then you may not need to do any or little work to be prepared for CS 2114. For prerequisite Java knowledge, I would advise taking a look at the following two books and their listed chapters.
Book | Chapters | Comments |
the Free Java Book | 1, 2-optional, 3, 4, 5, 7, 8, 9, 10-optional | This online text also introduces the ACM Java Library for basic graphics programming. CS 2114 does NOT use the ACM Java Library. However the VT BlueJ distro supports the ACM Java Library. |
Java A Beginner's Tutorial | 11, 2, 3, 4 (skip Garabage collection & finalize), 5, 6 (skip recursion, mested/inner classes & variable length arguments), 7 (skip abstract, final & Object class), 8- only the interface sections. | If you encounter trouble accessing this textbook through the link at the left, visit the VT library online, click on the databases tab and search for Safari. Follow the Safari Books Online link and search for the title. You may need to follow their access off campus instructions. |
If you wish to obtain a free Java development environment for practice and review you may download and install the VT BlueJ IDE distro. CS 2114 does NOT use the VT BlueJ IDE.
You may also wish to read the section for non-Java users to access the online practice sites if you have not programmed recently.
If you have taken a Python or C++ course then you will need to transfer your programming knowledge to Java by learning what the languages have common in common and where they differ. It is strongly recommended that you work your way through an introductory Java textbook or one of several online introductory Java programming courses.
Book | Chapters | Comments |
Beginning Programming with Java | 1-19 and from chapter 22 sections: ArraysList, Integer, Math, Scanner, String. | This online text provides a very gentle introduction to Java. If you find it too slow paced try the following textbook. |
Java A Beginner's Guide | 1, 2, 3, 4 (skip Garabage collection & finalize), 5, 6 (skip recursion, mested/inner classes & variable length arguments), 7 (skip abstract, final & Object class), 8- only the interface sections. | This text assumes you already have some programming experience. If you find yourself confused by some of the discussion use the text above. |
If you encounter trouble accessing these online textbooks through the above links, visit the VT library online, click on the databases tab and search for Safari. Follow the Safari Books Online link and search for the title. You may need to follow their access off campus instructions.
Students with C++ only experience may find the following online chapter from Cay Horstmann useful: "A Crash Course from C++ to Java".
Students with Python only experience may find the following online book useful: Java for Python Programmers.
The following web sites provide free instruction with drill and practice to help you learn the Java langauge and the Java syntax.
Site | Comments |
CodeWorkout | Online programming practice and exercise site used in CS courses at Va Tech. (Sign on using your VT email PID and password). |
codingbat.com | Provides a variety of short problems to program. Codingbat provides tests to help you check your solutions. |
Problets | Problets employs software assistants to help students learn and access their programming knowledge. Click on the Topics linka dn select the Java topic you wish to learn/practice. (It will take a few moments for the Java appplets containing the problet to start.) |
Students may find going through one of these online Java courses the best way to prepare:
Programming / Object-oriented concepts
Java specific topics
It is assumed that students coming into CS 2114 can develop programs similar to the following:
In CS 2114, students use an integrated development environment such as Eclipse. They also use Web-CAT to submit and perform TDD testing evaluation of programming projects. Students not familiar with Test-First based program development should read and work through the Unit Testing in BlueJ tutorial. Course notes on TDD and Web-CAT are also available. The JUnit API class documentation is available on-line. Web-CAT requires students to submit unit test classes with their classes to ensure the correct functionality of their solution. Student solutions must include thorough testing code and pass the Web-CAT reference test cases for the problem.Experience with these tools prior to taking the course is helpful. In CS 2114, students are expected to come up to speed with these tools with minimal instruction.