CS 2114: non-CS1114 entry

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.

Students with Java background

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.

Students with NO (or little) Java background

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.

C++ Background

Students with C++ only experience may find the following online chapter from Cay Horstmann useful: "A Crash Course from C++ to Java".

Python Background

Students with Python only experience may find the following online book useful: Java for Python Programmers.

Online Practice

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.)


Online Java Programming Courses

Students may find going through one of these online Java courses the best way to prepare:

 


CS 2114 Prerequisite Knowledge

Programming / Object-oriented concepts

Java specific topics

It is assumed that students coming into CS 2114 can develop programs similar to the following:

Tools

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.