ITP120 Java Programming I – V1
Virginia Western Summer 2015

Instructor: Dr. Diane D Wolff                                                             Office: Business Science M224
Email:                                                      Phone:  540-857-6214

Office Hours: TBA

Course description:  ITP 120 Java Programming I (4 CR) Prerequisite: None for the VT section. Entails instruction in fundamentals of object-oriented programming using Java. Emphasizes program construction, algorithm development, coding, debugging,and documentation of console and graphical user interface applications. Lecture 4 hours per week.


ITP 120 is the first semester of Java programming.  The Java programming language is one of the most important computer languages for both client-side and server-side applications. Java allows you write intranet applications and other e-business solutions that are the foundation of corporate computing. It also is integral to the development of client-side applications for everything from games to Droid applications.


This course introduces the fundamentals of general computer programming and specifically, Java.  Topics include a review of constructs from ITP100 including decisions, loops, and method calls.  Collections are introduced and include arrays and ArrayLists.


Getting Registered:   Use the following instructions for applying to Virginia Western, registering, and paying for your class.
How to apply to VWCC  If you have any problems with applying, call the Admissions Office at 540-857-7231. NOTE: Do not declare a major.  Indicate that you are a transient  (non-degree seeking) student.
  How to find your student ID

  How to register and pay for a class.   NOTE: You cannot register yourself for this class.  We keep it on closed enrollment to make certain that degree seeking students from VWCC do not get in.  Once you have your student id, email that to and we will help you finish the process.



Contact Methods and Response Time: Office: I am teaching all distance learning classes this summer so the fastest contact method is through email at  I read email just about 24/7 and generally respond within 24 hours if it is not within two days of the due date. This includes most weekends.   As due dates get closer, my email load increases dramatically so response may be slower (you can prevent this being a problem for you by starting early).  I am not in my college campus much so phone call response will be much slower.  Discussion forums will usually be answered within 24 hours.  I will be grading right after you submit and grades will usually be posted within 48 hours of the due date.  See more details below.




Attendance:  This is a distance learning class with assignments due in one week increments.  There will also be Collaborate recordings that you will be expected to watch.  “Attendance” will be determined by submission of your assignments on the due dates.



            Introductory survey                                                                  10 points

                        (see instructions in portal on how to complete this)            

            Laboratory assignments 8 @ 45 points each                         360 points   

à NOTE 5 of these points are for comments

            Quizzes 8 @ 20 points each                                                   160 points

            Project @ 50 points                                                                  50 points

                                                                                                            580 points


NOTE: quizzes are open book/open Internet quizzes that can be taken anytime during the module up until the noon due date for the module listed above.  These have a one hour time limit with only one attempt allowed.  It is critical when taking them not to close the browser!   I will post answers after the due date. 

            90%=A   80-89% = B   70-79% = C   60-69% = D 

NOTE:  You must complete each of the modules and the project to pass the course.


Make-Up/Late-Work Policy:

The schedule below lists the due dates for each module.  You may progress faster than the schedule but not slower without instructor permission.  This is for your good and mine since I must have all grades in right after the semester is over and I will be posting the answers 24 hours after the due date/time. Any submissions after the due date without instructor permission will be docked 30% if turned in within 24 hours of the due date/time. With previous instructor permission, only 20% off. For EXTREME circumstances, contact me.  No late quizzes will be allowed.  


Penalties for Academic Honesty Violations You are here to learn a very critical IT topic.  Know that I am here to help.  I expect all submissions to be your own work.  Any assignment/test/quiz where this is not the case will result in a zero.  See Virginia Western policies for more details.

Inclement Weather Schedule:
  Watch Blackboard for announcements about rescheduling events due to inclement weather.  This should not be a problem in the summer!


NOTE: Virginia Western policies, the course outline, and course syllabus are available in Blackboard from the course syllabus button.  Additional student resources are available in Blackboard from the Student Resource button.


Cost:  This course is a four credit class.  Projected costs for courses at VWCC are about $150/credit hour for Virginia residents. Out of state rates is about $350/credit (see ).  Plus the cost of the books (we supply the software).


Important Dates:

First Day to Register April 13th

First Day of Classes May 18h      

Last Day to Register/Add a Class May 25th     

Last Day to Drop and Receive Refund May 28th    

Last Day to Withdraw Without Grade Penalty June 29th    

Last Day of Classes July 29th    


Blackboard location:


Our Schedule for ITP120 Va Tech:

NOTE: during the normal semester, modules are two weeks long. During the compressed summer schedule, these are one week so expect to be working fast and hard during this time.  Know that I am here to help!             

Schedule:                               Due  (Tuesday 8:00 AM)                

Survey                         May 26th                                

Module 1                    May 26th                                              

            Module 2                    June 2nd                                                          

            Module 3                    June 9th                                       

            Module 4                    June 16th                                     

            Module 5                    June 23rd                                            

            Module 6                    June 30th

            Break to start project – the rest of the assignments are due on Saturday                             

            Module 7                    Saturday July 11th                                              

            Module 8                    Saturday July 18th                                                    

            Project                        Saturday July 25th   


Collaborate Online Sessions

             We will be using the movies from the spring semester since we are on a compressed schedule.  However, we can get online and do extra examples, explanation, etc. as needed.



Java, How to Program,  10th edition, Paul and Harvey Deitel, ISBN

 978-0133807806  and there is actually a loose leaf version of it for half the price with the ISBN of 9780133813227.  Make certain that the book you get says “early objects”.  You do not need the CD and the international edition is fine.


Note: The textbook is available online and there will be a link in Blackboard where you can read a free version (this one must be read through the web and is not downloadable).


Required software:

            We will be using a version of Eclipse that you can download from Blackboard. You can also go to  to get the 64 bit download. Instructions for unzipping and use can be found at .  



Spend 80% of your time coding – not reading! You cannot learn a computer language by reading a book.  SKIM the material in the book, watch the movies, and start on the assignment.  Use the text as a reference and guide.

Blackboard information:  You will be obtaining all of your handouts and assignments from Blackboard.  This is also where you will submit all of your work.  There are many useful documents and tools on the portal. 

Please note:  It is our hope that NO ONE has to drop the class - we will strive to make you successful!  But it is NOT our responsibility to drop you if for some reason you cannot finish the class - PLEASE fill out the appropriate form if you must drop!! June 29th  is the last day to withdraw.


Incompletes: A student will receive an Incomplete only under mitigating circumstances. An Incomplete will give the student additional time beyond the end of the semester to complete the course requirements. The student and instructor will decide on an appropriate deadline. Any outstanding work not completed by this agreed upon deadline will result in the Incomplete being changed to an F. An Incomplete will only be given if the student has mitigating circumstances and cannot complete the last few assignments or the final exam on time. Please contact me immediately if you have problems.


Prerequisites:  basic computer knowledge.


Course Specific Requirements and Policies:

  1. If you need to drop the class (hopefully no one will have to do so!) you must do it yourself online (I can help you find the link).  The last day to drop this class without an F grade for spring semester is June 29th .
  2. Do NOT just download everything from the portal on day 1!! As the faster people work through the material and may have questions, I may add more examples, etc.  I certainly will not make any changes to submission requirements after the start date above and will not significantly change requirements ever (only maybe clarify them).   I will post an announcement with a heads up that the instructions or jar file has changed.  
  3. There will be Collaborate online session for every module.  There will be good information during these --- and it is highly suggested that you listen to the recording of them. 
  4. Keep up with the discussion forums since you are responsible for clarifications posted there (hopefully---there will not be too many of them…)
  5. I will be grading all submissions right after the due date of that module, even if you submit early. It is critical that you make your final submission through Blackboard only!
  6. As you are working through the material and have questions, you need to do one of two things.  If the question is about a general concept or topics where you would like to see more examples, submit this through the discussion forum in Blackboard.  Do not post large chunks of your code there.  If you want me to look at your specific problems (that is what I am here for!) jar up your file (include ONLY those files needed to make the program where your questions are run!!!) and send it through email to the address above.  Make certain to explain the problem in the text of the email.  I will response VERY quickly to both of these types of postings.
  7. For anyone located close to VWCC, we have tutoring and office hours here on campus that you can utilize.  Contact me for more information.
  8. Start early on each module if you can.  I am very receptive to helping all I can, especially early in the module sequence.   However- on the few days before the due date, I may not be able to answer as quickly due to high traffic.
  9. PLEASE CHECK THE PORTAL RIGHT AFTER THE DUE DATE FOR YOUR GRADE!!!    Open up the assignment and you will see my comments. If you have omitted something or misunderstood an instruction, I may put comments here and let you make changes with no penalty for the first module and a five point penalty after that.  I will not be looking at your submissions until the due date, no matter how early you submit.  You cannot resubmit and correct normal errors. I am only allowing resubmissions if you (for instance) include the .class files instead of the .javas, etc.   You will have the 24 hours to get it back in with changes.  If you do not see my comments within this time, you will not be allowed to resubmit.
  10.  I also want to improve this course for future semester offerings.  We are changing the book and all assignments this semester so you can help me with improving the class.  I am asking that for 5 points each, you use the textbox on the laboratory submission to give me comments about the module.    Please include positive comments as well as constructive suggested changes for each module.  Noted typos or suggested rewording would be appreciated.  And please include an approximate number of hours spent totally (reading, writing, coding) for the module as a whole so I can judge the assignment requirements.  I appreciate your help in this matter. 


Further information for you:

             This course has been specifically geared towards VTMIT students.  This course was developed in conjunction with the VT professors to give you the specific prerequisite knowledge that they will assume.   I am dedicated to being available to you as needed, and to make this course a very positive learning experience for you.

            If you have comments about what I can do to better serve you, please let me know.

Let’s have a great semester!!!!!  


Suggestion for progressing through each module.

  1. Download the appropriate jar file from the lab assignment. It will always be named itp120modx_1516.jar where x is the module number.  Import the jar file into Eclipse.
  2. Go to the syllabus and see what chapters the module covers.  Skim/read those chapters and watch the power point movies.  Do not spend a lot of reading. But as you skim, look at the examples from the text (they will always be found in the jar file downloaded above in packages named after the associated chapters).
  3. Get the lab instructions from the assignment in Blackboard. It will always be named ITP120modx_1516.doc where x is the module number. Work on these.  Refer back to your text as needed.
  4. See if there are auxiliary readings and if so, download them and look them over.
  5. Finish the lab and return the assignment back to me with the completed jar file.
  6. Remember to include your comments about the assignment in the textbox.


Jar file instructions

  1.  Assignments will be turned in as jar files (similar to zip files).  The instructions will indicate how to create these.
  2. Jar files must have the .java files in it (after you jar the file, open it up in an unzipping software and verify this).
  3. Jar files must have only the programs that make the programs that are listed at the bottom of the lab instructions run (delete any that were just my examples).  In some cases you will delete entire extra packages that have just my examples in them.
  4. Make certain there are no stray import statements (to test this, create a new project and re-import your jar file and see if it runs).
  5.  Jar files must have the name of both the package and the actual jar file changed.  For example, if your name is Mike Miller, you will need to change the package name to mmilermod3 and send it to me as mmilermod3.jar.


Module 1: Introduction to Java, Classes, and Objects
            Learning objectives:

1.     Understand how to declare a Java class and a the main method

2.     Understand input and output to Java programs

3.     Be able to run Java programs in Eclipse

4.     Be able to import and save Java applications as .jar files

5.     Understand Java arithmetic

6.     Be familiar with equality and relational operators

7.     Know the common primitive data types

8.     Understand Java expression and how to write them


Reading Assignment:

1.     Textbook – Chapters 1-2 (just skim chapter 1) 

2.     CodeConventions.pdf (included in the assignment files) 


Laboratory Assignment:

1.     Laboratory 1



Module 2: Objects, classes, and decisions

               Learning objectives:

1.     Understand the concept of objects and classes

2.     Be able to declare and use simple Java classes

3.     Understand getters and setters

4.     Understand the difference between primitive and reference data types

5.     Understand program flow

6.     Understand how to program if  and if/else statements

7.     Understand how to use Boolean expressions and how to compare data

8.     Understand the do and the while construct


Reading Assignment:

1.     Textbook –Chapters 3 (skip 3.6) and 4 (to section 4.7)


            Laboratory Assignment:

1.     Laboratory 2


Module 3: More constructs, loops

               Learning objectives:

1.     Be able to use the for construct

2.     Understand what an iterator is and how to use one

3.     Understand the logical operators

4.     More on classes

5.     Begin writing your own Java classes


Reading Assignment:

2.     Textbook –Chapter 4 (4.8-4.14) and Chapter 5  (skip 5.11)


            Laboratory Assignment:

2.     Laboratory 3



Module 4:   More Classes and Object Oriented Design.  Lots of methods

            Learning objectives:

1.     Methods, methods and more methods!!!

2.     Be able to design more complete Java class

3.     Understand what constructors are and how to use them

4.     Understand the relationship between Java objects

5.     Understand method overloading

6.     Understand constructor overloading

7.     Be able to describe the different access modifiers

8.     Understand has-a and is-a

9.     Understand the concept of static

10.  Understand how to read APIs

11.  Understand how to use APIs

12.  Be able to use methods in the String, StringBuilder, and Character classes


Reading Assignments:

1.     Textbook – Chapters 6 and 8 (skip 6.13, 8.16), Also 14.1-14.5


Laboratory Assignment

1.     Laboratory 4


Module 5: Arrays, ArrayLists, and other Collections                     

            Learning objectives:

1.     Understand how to use arrays in Java

2.     Understand how to declare and create arrays in Java

3.     Understand the enhanced for  statement

4.     Be able to pass arrays into methods

5.     Understand the Arrays class

6.     Understand alternatives (ArrayLists, etc)

7.     Become familiar with the Java Collections API


            Reading Assignment:

1.     Textbook – Chapter 7  (skip 7.11-7.12, 7.17)


Laboratory Assignment

1.     Laboratory 5  


Module 6:  Advanced Inheritance Topics and Interfaces

            Learning Objectives:

1.     Understand class hierarchies and the ramifications

2.     Understand the relationships between super classes and subclasses

3.     Understand method overriding

4.     Be able to design for inheritance

5.     Understand the Object  class

6.     Be able the discuss polymorphic behavior

7.     Understand how to use abstract  classes

8.     Understand the concept of interfaces and their use

9.     Be familiar with common searching and sorting algorithms

10.  Understand designing for interfaces


Reading Assignment

1.     Chapters 9 and 10  (skip 9.7, 10.11)


Laboratory Assignment

1.     Laboratory 6


Module 7:  I/O, Exceptions, and JavaDocs

Learning Objectives:

1.     Understand Java Exceptions Hierarchy

2.     Understand how to use a try/catch/finally structure

3.     Understand how to read and write text files

4.     Understand how to read and write object oriented serialized files

5.     Understand how to use the Java File  and JFileChooser classes

6.     Understand exception handling

7.     Understand how to create JavaDocs


Reading Assignment

1.      Chapter 11 and 15

2.      Appendix G JavaDocs


Laboratory Assignment

1.     Laboratory 7


Module 8:   Generic Collections

            Learning Objectives:

1.     Collections Overview

2.     Wrapper classes

3.     Auto-boxing and Auto-unboxing

4.     Interface Collection and Class Collections

5.     Lists

6.     Collections Methods

7.     Sets

8.     Maps

9.     Properties Class

10.  Synchronized and Unmodifiable Collections

11.  Abstract Implementations


Reading Assignment

1.     Textbook –Chapter 16


Laboratory Assignment

1.     Laboratory 8