COP 2800
Java Programming I

Java Programming I Syllabus
View Weekly Course Schedule Other interesting links:

Resources  (examples, ...)
www.oracle.com/technetwork/java/ - The source for the Java SE JDK, and more.
On-line version of the Java 7 JDK docs.  ( Java 7 API docs.)
docs.oracle.com/javase/ - links to all official Java documentation, including references, guides, and tutorials.
on-line Java Language Reference - Great explanations of language features.
on-line Java Tutorials - Excellent tutorials on all topics, including sample code.
Download the JDK.  (For Windows, always use the 32-bit version!  After downloading and then running the installer, you need to set the PATH environment variable.)  Once installed, you can test your JRE installation here.

Syllabus

Fall 2013

Course policies
Time & Place: Ref No. 45462:  Tuesday, Thursday, 7:00–8:15 PM, Dale Mabry Room DTEC–427
Instructor: Name:  Wayne Pollock
E-mail:  Internet:
Office & Phone:  DTEC–404, 253–7213
DM Office Hours:  Monday–Thursday, 3:55–5:25 & 8:30–9:00 PM;
On-line Office Hours:  Tuesday–Friday, 12:00 PM (noon)–1:00 PMor by appointment.
Contact Information
Instant Messenger ID (Yahoo Messenger):  waynepollocklive
Homepage URL:  http://www.hccfl.edu/pollock/
          Yahoo Messenger on-line status - click to chat or leave a message
Text: Liang, Y. Daniel, Introduction to Java Programming, Custom Edition Volume I, ©2013 Pearson/Prentice-Hall:
ISBN-10: 1-269-24111-7,   ISBN-13: 978-1-269-24111-3

This is a custom textbook, made from the Ninth Edition Comprehensive version.  This book only contains the material used in our class, and should be much cheaper.  However, it is probably only available from the HCC-DM bookstore.

HCC bookstore on-line

Description: (This course is 3 credit hours long.)  “Introduces programming in Java.  This course will cover the basic features of Java, including procedural programming (datatypes, variables, operators, control structures, etc.), an introduction to object-oriented programming concepts (objects and classes, abstraction, encapsulation, and inheritance), GUI programming, applets, and error handling view exceptions.”

The class format will be lecture and discussion; class participation is strongly encouraged.  In addition, there will be numerous examples and in-class group programming exercises (model solutions to these and all projects will be provided.)

Students are expected to prepare for each class by completing all reading assignments, reviewing examples and model solutions provided, and practicing programming outside of class.  (This is important — you can't learn a skill such as Java programming only by attending class and reading a book.  You must practice, practice, practice, several hours each week!  If you won't have enough time available, consider auditing the course.)

Objectives: “After completing this course, the student will be able to:
  1. Understand what programming is, and the unique features of Java
  2. Understand the use of programming tools such as editors, compilers, API (JavaDoc) documentation, and IDEs
  3. Understand the importance of proper program style, and be able to write programs using an acceptable style (including naming conventions and indenting)
  4. Understand the importance and use of comments
  5. Understand the differences between an applet and a stand-alone program
  6. Understand the proper use of “import” statements
  7. Understand basic GUI programming concepts: a Graphics object, drawing methods, and the coordinate system
  8. Understand basic (primitive) data types, their uses, literals, and how object types differ from primitive types
  9. Understand the differences and considerations of using integers and floating point numbers
  10. Understand variables, including declaring, initializing, and using them
  11. Understanding the difference between local, class, and instance variables
  12. Understanding expressions and mathematical operators (+, –, *, /, %, ++, ––, etc.), including the concepts of precedence and associatively
  13. Understand assignment statements and assignment operators
  14. Use math functions from the java.lang.Math class
  15. Understand type promotion and type conversion
  16. Understand the use of Strings and String literals in Java, including concatenation
  17. Understand Boolean expressions and operators
  18. Understand and select appropriate control structures (if-statements, nested if statements, if-ladders, switch statements, the :? operator, the while, do-while, and for loops, and the break and continue statements)
  19. Understand testing for equality for floating point and for objects (especially Strings)
  20. Understand the basic use of Exceptions and try-catch-finally blocks
  21. Understand different methods of console input and output (PrintWriter, printf, and Scanner class), and simple GUI input and output with JOptionPane)
  22. Understand the purpose of methods, when to create them, invoking them, passing arguments and returning values from them
  23. Understand method overloading and the concepts of a method signature
  24. Understanding basic memory use in a program: the stack and the heap
  25. Understand the concept and use of a program exit status (program return code)
  26. Understand the concept of recursion
  27. Understand the concepts of scope and persistence (or lifetime)
  28. Understand the issues of scope and initialization for local variables, class variables, and instance variables
  29. Understand, create, initialize (using constructors and the role of a class loader), and use objects and classes
  30. Understand basic Java modifiers (public, private, final, static, ...)
  31. Understand how to create and use packages
  32. Understand how to create JavaDoc web page documentation
  33. Understand and use StringBuilder (and StringBuffer) and tokenizers
  34. Identify deprecated classes and methods, and how to migrate from them
  35. Understand and use arrays and 2-dimensional arrays
  36. Understand the basic concepts of sorting and searching (linear and binary searching)
  37. Understand how to use command line arguments
  38. Understand and use object-oriented programming concepts including inheritance, overriding (polymorphism), abstract classes and methods, interfaces, and nested and inner classes
  39. Work with dates and times in Java
  40. Understand and use basic collections such as ArrayLists, Sets, and HashMaps
  41. Understand and explain graphic user interface concepts including: event-driven programs, event handlers (listeners), graphic components, fonts, and differences between graphic toolkits such as AWT and swing
  42. Understanding how to use (and when to not use) layout managers
  43. Understand applets and related concepts including applet security, lifecycle (or milestone methods), and HTML needed
  44. Understanding basic multi-media (adding audio and graphics)
  45. Understand how to create and use Java Archive files (JARs)”
Prerequisite: COP 1000, or permission of the instructor.  Students enrolled in a degree or college credit certificate program must complete all prerequisites.  Note!  HCC registration computers may not check for prerequisites before allowing you to enroll.  Be certain you have all required prerequisites or you won't have much of a chance of success.  Also you may be dropped from the class.
Facilities: All assignments can be performed on any computer that supports Java 7.  You can obtain Oracle's “JDK”, including all tools and documentation, for free from www.oracle.com/technetwork/java/.  You may use any other Java development tools too if you prefer, such as eclipse.

You will need your own flash disk, writing materials for note-taking, and three Scantron 882–E or 882–ES forms for the exams.

You can use HawkNet (WebAdvisor) or Florida Virtual Campus (formerly called FACTS.org) to obtain your final grade for the course.  You can use your assigned Hawkmail (Hawkmail365) email address if you wish to discuss your grades via email.  (Note, it may be possible to setup your Hawkmail account to forward all received emails to some outside email account; but you still must send mail from Hawkmail to discuss grades.)

Most college systems now (or will in the future) use a single sign-on user ID, known as HCC “NetID”.  Visit netid.hccfl.edu to register and to update your credentials.  (Your initial password is your uppercase first name initial, lowercase last name initial, and your seven digit student ID number.)  Note, the quickest way to resolve login issues is the HCC Live Web Portal (hcclive.hccfl.edu).

Hawk Alert text messaging service allows you to receive important information regarding campus closures or emergencies.  You may also sign up for financial aid notifications and registration and payment deadlines.  This is a free service, although some fees may be applied by your cellular service provider or plan for text messages.  To sign up, or for more information, visit www.hccfl.edu/alerts/.

HCC DM Open Lab

Computers with JDK (and other tools, such as Eclipse) are located in the computer science department open lab, in DTEC–462.  Lab hours are:

Dale Mabry campus open lab hours
Monday – Thursday8:00 AM to 10:00 PM
Friday 8:00 AM to 4:30 PM
Saturday 8:00 AM to 2:30 PM

(Note:  Lab technicians (“Lab Techs”) are not teaching assistants or tutors, and shouldn't be expected to help you with your coursework.)

Rules for Using HCC Facilities

  1. No food or drinks near computer equipment.
  2. Students bringing their own laptops need to use the wireless network only.  Students cannot disconnect network cables from classroom's computers to connect their personal devices.
  3. Students are not allowed to disconnect monitors or computers to power their personal equipment.
Grading:
Grading Policy
3 equally weighted closed-book multiple choice exams     50%
Programming projects (about 6): 35%
Homework assignments (about 8): 15%
Classroom participation: +5%

Grading scale:  A=90-100,   B=80-89,   C=70-79,   D=65-69,   F=0-64
(If you stop attending the course before it is 60% complete, you will be awarded an “FX” grade.)
(You can elect to “audit” the class during the add/drop period.)

Policies:
  • No make-up exams will be offered without the prior approval of the instructor.  If a make-up exam is offered, you can take the exam in my office during my regular office hours, or from the Dale Mabry Testing Center.  (Check for their hours of operation, and make sure to give yourself sufficient time to complete an exam.)
  • Exams will be closed book and closed note multiple choice exams.  While the exams are non-cumulative, each does build upon knowledge acquired earlier.  Exams are based mostly upon material presented in class.  However some questions may be from assigned readings (the textbook and on-line resources).
  • Exams will only cover material discussed in class or assigned as reading, before the exam.  Should the class fall behind the course schedule, some topics shown on the syllabus due for an earlier exam will be tested on the following exam instead.
  • The schedule for the final week of the term may cause a conflict between our class schedule and another class's final exam.  It is up to you to determine if you will have a conflict, and to bring it to the attention of your instructor, so that appropriate arrangements can be made.
  • Regular attendance is imperative for the successful completion of this class.  The textbook and on-line resources should be considered as required course supplements; in other words, the course is not based on the text.
  • All phones, pagers, and beepers must be turned off during class time, except with prior permission of the instructor.  No food or drink is permitted in HCC classrooms.
  • Attendance will be taken within 5 minutes of the start of class; after 4 unexcused absences and/or lateness, the student will lose 2 points off the final grade for each additional occurrence.
  • If you miss a class, you are still responsible for the material covered in that class.  All students should exchange contact information (name, email address, phone number) with at least one other student in the class.  If you must miss a class, you should then contact another student and request they take class notes for you.  (Note, Hawknet has Hawkmail365 email for HCC students.)
  • Credit for class participation includes attendance, preparedness, and adding to class discussions by asking questions and participating in discussions.  Playing computer games, surfing the Internet, or working on assignments for this or other classes during class time will lose you credit.
  • Additional time outside of class will be required.  For typical students an average of between 8 and 12 hours each week outside of class are required for preparation, practice, projects, and homework assignments.
  • Students are expected to prepare for each class by completing all reading assignments (including “common errors”, “advanced topics”, and all other sidebar material in the assigned chapter), reviewing examples and model solutions provided, and practicing outside of class.  This is important — you can't learn a skill such as Java programming only by attending class and reading books.  You must practice for several hours, a few days each week!  If you won't have enough time available, consider auditing the course.
  • Students are expected to check the class website regularly.  Any syllabus changes, class cancellations, project assignments, and homework assignments are announced in class and posted to the website and the RSS feed for this class.
  • A student shall not, without my express authorization, make or receive any recording, including but not limited to audio and video recordings, of any class, co-curricular meeting, organizational meeting, or meeting with me.  Further, you do not have my permission to post on the web or otherwise distribute my class lectures and other course materials.  (You can distribute freely any materials I make publicly available from the HCC (or the wpollock.com) website, without asking permission, provided you give me credit for the work and don't alter it.  Any other use will require expressly given permission.)
  • Working together on individual assignments is considered as cheating!  Turning in someone else's work without giving them credit is also considered cheating (plagiarism).  Cheating will result in an automatic F (zero) for the project for all parties.  Also, you can only earn credit for your own work and not someone else's, even if you do cite your sources.  Note that some projects may be designated as group projects, where members of small groups work together on a project.  It is also okay to ask a fellow student for class notes (in the event you miss a class) or for help in understanding the text or material given to the class (e.g., examples on the class website).  You are encouraged to study together as well.
  • You must abide by the HCC Acceptable Use Policy (AUP) for computers and services.  In particular, you must not run network scanners, or attempt to obtain administrator (“root”) privileges or otherwise disrupt HCC computers and services.
  • You must follow the academic honesty policy and the student code of conduct for HCC.  A second cheating offense will result in an “F” for the course, and your name will be turned over to the dean for further handling.  I take these matters very seriously.  You have been warned!
  • Every effort will be made to stick to the weekly schedule for our course.  However it may happen that we will fall behind the schedule at some point.  If so, no topics will be skipped.  Instead we will attempt to catch up over the following weeks.
  • Please be aware that if we fall behind on the weekly schedule, the topics discussed may not match what shows on the syllabus.  The weekly schedule may (but probably won't be) updated in this case.
  • In case we do fall behind, homework assignments are automatically postponed until the next class (i.e., homework assignments that show on the schedule as due the same day we discuss some topic, will be due the day we will discuss that topic in class).  Projects and exams will not be automatically postponed.  Should your instructor deem it necessary, projects and exams may be rescheduled; this will be announced in class and on the RSS feed.
  • Communications Policy:  I will respond to your emails within 48 hours or two business days.  HCC policy is that grades can only be discussed in person during office hours, or via email only if you use your assigned HCC HawkNet (Hawkmail365) email account.
  • No appointment is necessary to see me during my scheduled, on-campus office hours.  You can just “walk-in”.  You can make appointments for other times as long as I'm available.
  • Occasionally my office hours will be canceled on short (or no) notice, for example if the dean calls me for a meeting.  Before driving out to campus just for my office hours, you should contact me the day before to make sure I still plan to be there.
  • Late Policies:  Late assignments (homework assignments, projects, or exams) generally will not be accepted.  An assignment is late if not turned in by the start of class on the day it is due.

    Late assignments will be accepted late only if you obtain the instructor's permission prior to the due date of the assignment, or for a documented serious medical reason.  All late assignments are subject to a late penalty of at least one letter grade (10%) regardless of the reason for the delay.

    Projects and homework assignments later than one week will receive a more severe late penalty; very late assignments without adequate excuses will receive a grade of “F” (0).  However if you have a very good reason your instructor may waive any or all of the late penalty.  (Examples of good reasons include extended illness that prevents working, being out of town for work, or military service.  Remember, documentation will be required.)

  • The dangers of the flu or another contagious disease require some changes to normal policies.  HCC is implementing the recommendations for institutions of higher learning of the CDC.  (See www.cdc.gov/h1n1flu/guidance/ and www.flu.gov/ for guidance from the CDC.)  You won't need documentation if you miss class due to the flu.  (But if you think you have the flu, you should see a doctor as soon as you can.)  In the unlikely event of a school closure due to the flu, some plan to make up the missed work will be made.

    If you think you have the flu, stay home.  Do not come to HCC until 48 hours after your fever has broken as you are still infectious.  Also, people are infectious to others for a day or so before they have any symptoms.  Flu is spread by touching doorknobs, computer keyboards, railings on stairs, etc., that were touched by someone with the flu.  Avoid shaking hands; use the “fist shake” (touching of fists) if you must use a physical greeting.  The most effective way to avoid catching the flu is to wash your hands frequently, especially after touching something that was touched by others.  Avoid unnecessary touching of eyes, nose and mouth.  While not as good as properly washing hands, hand sanitizers have been installed throughout the campus; use them often.

Projects: Projects will be assigned from the class web page at various times.  You will have sufficient time to complete the projects, at least a week but usually two or more weeks.  Although there will be in-class group exercises, you must work individually on the projects, typically outside of regular class hours.

Programming projects are graded according to their design (25%), how well they compile and run (20%), how well your project meets the requirements specifications (20%), the coding style (15%), the amount (and quality) of your comments (10%), and your creativity in extending the project usefully, or an innovative design that uses the features taught in class well, etc. (10%).

Projects are not graded when turned in.  They are graded all at once, sometime after the project deadline has passed (usually the following weekend).  Further details will be provided with your first project.  (See also submitting assignments below.)

Homework
Assignments:
Homework assignments (also known as take-home quizzes) are assigned from the class web page at various times.  These questions come from the text; the current version no longer include “review questions” at the end of each chapter.  The homeworks are from the “Check Point” questions spread throughout each chapter.  (However, the author does have end of chapter multi-choice quizzes on-line, for self-study purposes.  There is a link in the class resources, below.)

You may work together in small groups (two or three people) for the homework assignments, provided the names of all who worked together are listed.  Each student must still submit their own copy (for feedback, and in case you don't list the others you worked with).

Homework assignment questions are intended to focus your studying of the readings and to stimulate class questions and discussion.  For this reason, they are generally due before the class where that material is covered.  It is not intended that students can answer all the questions assigned, but you must show you have thought about the questions and read the required material in order to earn a “B” grade or higher.

Submitting Assignments: All assignments (except when noted) should be submitted by email to .  Please use a subject such as “Java Homework Assignment #1 Submission”, so I can tell which emails are submitted work.  Send only one assignment per email message.  Email your Java source and HTML files by copy-and-paste.  (Please do not send as attachments, except when noted in the assigment directions.)  Note: If you use Microsoft Outlook Express or a similar email program, please be aware that this program has a “feature” that automatically converts slash-slash (“//”) comments in your email to “FILE://”.  Make sure your Java (and other) source is correct before you send the email!  If possible, use the “text” and not the “HTML” mode of your email program.

In the event a student submits more than once for the same assignment, I will ignore all but the last one received up to the deadline.  Assignments submitted after the deadline will not count toward your grade except as allowed by the course late policy.  Also, you cannot resubmit an assignment once it has been graded.

The HCC email server automatically accepts and silently discards email with certain types of attachments.  If you must send email to my Internet (non-YborStudent) email account please avoid using any attachments, but especially “zip” files.  To send email with a “.zip” attachment you must first rename the file extension to “.zap” and then send the renamed file as an attachment.

To avoid having your submitted work rejected as “spam”, you can use Hawkmail365 to send email to professors.  (This doesn't always work either!)

If you have an email problem, you may turn in a printout instead.  Be sure your name is clearly written on the top of any pages turned in.  Please staple multiple pages together (at the upper left).

Always keep a backup copy of your submitted projects, until you are certain they have been received and graded correctly.

Academic Calendar
HCC Academic Calendar:
Classes Begin: Monday  8/19/2013   (First class meeting: Tuesday 8/20/2013)
Add-Drop Ends: Friday   8/23/2013
Last Day to Withdraw:  Saturday  10/26/2013
Classes End: Monday  12/9/2013  (Last regularly scheduled day of class: Thursday 12/5/2013)
Grades Available:  Wednesday  12/11/2013 (from Florida Virtual Campus (formerly called FACTS.org), or from HawkNet)
HCC is closed on: Monday  9/2/2013 (Labor Day),
Friday  10/18/2013 (College Day),
Monday  11/11/2013 (Veterans' Day),
Thursday–Saturday  11/28/2013–12/1/2013 (Thanksgiving Holiday)

Request For Accommodation

If, to participate in this course, you require an accommodation due to a physical disability or learning impairment, you must contact the Office of Services to Students with Disabilities, Dale Mabry campus: Student Services Building (DSTU) Room 204, voice phone: (813) 259–6035,  TTD: (813) 253–7035,  FAX: (813) 253–7336.  Brandon campus: voice phone: (813) 253–7914.

HCC has a religious observance policy that accommodates the religious observance, practices, and beliefs of students.  Should students need to miss class or postpone examinations and assignments due to religious observances, they must notify their instructor at least one week prior to a religious observance.

 

Quotes on learning
Quotes:         Tell me and I'll listen.
Show me and I'll understand.
Involve me and I'll learn.
    — Lakota Indian saying
        Learning is not a spectator sport!     — Chickering & Gamson

Course schedule for COP 2800

Day by day course schedule
Dates
Tue       Thu
Topics, Assigned Readings, and Assignment Due Dates
  8/20   Course introduction, LAN use.  Open Lab procedures and hours.  Role of lab techs.  Java overview.  Computer, Compiler basics, JDK tools (and installation), edit-compile-run cycle.  First Java program, console output.  OOPS, programming basics (comments, use of white-space, program style, main method, errors ...).
Readings:  Chapter 1, Soft Skills
  8/22  

  8/27  
Using import and packages.  Using Java API docs (and deprecation).  Simple applets, HTML, basic graphics (coordinates, Graphics class methods: drawXXX, fillXXX, and setXXX).  Newer Graphics2D methods.  Syntax, Logic, and Runtime errors.
Readings:  Chapters:  13.1–13.3, 20.1–20.3, 1.11, On-line Java docs (just learn how to navigate the site), and Java program style
  8/29   [Bucs game at home today @7:30 PM; expect traffic delays and parking problems.  Parking passes will be distributed in class beginning 8/22]
Declaring variables, identifier naming rules.  Data types.  Differences between Java primitive numeric types and object references.  Big numbers.  Using static final for constants.  final for primitives versus for object references.
Readings:  Chapters 2, 8.5.4, 10.14
  9/2 (Mon)   Labor Day  —  HCC Closed
  9/3     9/5   Expressions.  Converting types (cast).  Using static methods of java.lang.Math and java.util.Random.
Console input with Scanner (tokenizing).  Simple GUI input and output with JOptionPane.  Working with Strings and StringBuilder.  Formatted output (PrintWriter, printf).  Wrapper classes, auto-boxing.
Readings:  Chapters 2, 3.16–3.18, 5.10, 5.11, 8.6.2, 9, 10.12, 10.13
Homework Assignment #1 due 9/5
9/10     9/12 Control structures: block statements, if statement, selection operator, switch statement.  Boolean expressions, operators, and comparing integer, floating point, and object values (especially String).  The null value.  Loops: while, do, and forbreak and continue.
Readings:  Chapters 3, 4
Homework Assignment #2 due 9/12
Project #1 due 9/10
9/17     9/19


  9/24
Methods (a.k.a. functions): calling, returning values, passing parameters.  Pass by reference versus pass by value.  Method signatures and overloading.  Getters and setters (accessors and mutators) methods, for JavaBean standard.  Design guidelines for methods: structured programming, testing, and good comments.
Scope and lifetime: local, instance, and class variables.  Memory concepts: stack, heap, review garbage collection.  Recursion overview.
Readings:  Chapter 5
Project #2 due 9/24
  9/26     Exam #1
10/1     10/3

  10/8
Overview of Exceptions (and try – catch – finally); checked and unchecked exceptions.
Arrays: declaring, using, initializing, linear search, sorting, binary search.  for-each loops.  2-d arrays.  Copying arrays with clone and System.arraycopy.  Using partially filled arrays.
Using command line arguments.
Readings:  Chapters 14.1–14.6, 6, 7, 9.7
Homework Assignment #3 due 10/3
10/10  


10/15    10/17
Object concepts: object references and assignment, construction of objects (constructors, classLoader, initialization of local, instance, class (static) variables and methods, and of objects.  Garbage collection and finalizers.
Object-orientation, design and implementation of classes.  Abstraction and encapsulation.  Object properties (a.k.a. fields, attributes, columns, instance variables) and class properties.  Adding a test driver to classes.  Immutable objects.
Readings:  Chapters 8,10
Project #3 due 10/15
Homework Assignment #4 due 10/17
  10/18 (Fri)   Faculty In-Service (All-College) Day  —  HCC Closed
10/22    10/24 [USF Bulls game at home Thursday, 10/24 @8:25 PM; expect traffic delays and parking problems]
Scope (part 2), this, modifiers, packages, CLASSPATH, Java class libraries.  Commenting classes with doc comments and using the javadoc tool.
Readings:  Chapters 8.6, 8.8, Appendix D (“Java modifiers”), Packages (PDF of Liang supplement III-G), Javadoc lecture notes
  10/29   Exam #2
  10/31   OOP concepts: Inheritance, super, polymorphism (overriding, Early and late binding), instanceof, super.
Readings:  Chapter 11
  11/5    11/7 Interfaces, Abstract classes and methods.  Nested, inner, and anonymous classes.
Readings:  Chapters 15, 16.4, 16.5
Project #4 due 11/5
Homework Assignment #5 due 11/5
11/11 (Mon)   Vetrans' Day  —  HCC Closed
  11/12   Dates, Calendar, timestamps.  ArrayLists, Sets, and HashMaps (collections overview).
Readings:  Chapters 8.6.1, 15.4, 11.11
Homework Assignment #6 due 11/12
  11/14  

  11/19  
Event-driven, graphics programming with AWT and Swing.  Events, listeners (handlers), components, and containers.
Working with Fonts.  Exit status with System.exit().  Timer events.
Readings:  Chapters 12, 16
Project #5 due 11/14
  11/21    11/26   Graphics programming with the AWT and Swing (continued: using layout managers, additional components and event types).
Readings:  Chapter 17
Homework Assignment #7 due 11/26
11/28   Thanksgiving Holiday (Thu 11/22 – Sat 11/24)  —  HCC Closed
  12/3   Applets: life-cycle (or milestone) methods, security, HTML, appletviewer).
Multi-media (adding audio and graphics, using ImageIO).
Creating and using jar files.
Readings:  Chapter 20, Using jar (PDF of Liang supplement III-Q)
Project #6 due 12/3
Homework Assignment #8 due 12/5
  12/5     Exam #3

course resources
Resources
Self-test questions from text Multiple-choice qizzes you can take to test your understanding     On-line textbook supplements Extra information by the textbook author (see also videonotes at www.PearsonHigherEd.com/liang)
Computer and Programming Overview Programming background information     Photo of PDP-11 console The old way to enter programs was via switches on a console
Windows Shell A tutorial for using the Windows command line     PC hardware (svg) A graphic showing the components of a modern personal computer
Assembly Demo Shows a C program with its assemby and machine code (in hex)     Soft Skills Discusses certifications, job interviewing tips, and required non-technical skills needed to find and keep a job
TampaJUG.org Tampa Bay area Java Users Group     Thinking in Java A free (PDF) book by Bruce Eckel
Java Glossary A Java FAQ with lots of answers        
JavaWorld.com Online Java Magazine, many good articles in their archives     www.JavaRanch.com Book reviews, sample code, practice certification exams, tutorials, and more; geared for beginners
Java Developer Tutorials On-line tutorials and links for training, from Oracle     JavaCoffeeBreak.com Another good Java beginner site featuring reviews, samples, tutorials, and more
ootips.org A large collection of OO tips, techniques, and design patterns     Java Certification Programs Information about Oracle's Java certifications
Oracle Certified Associate (OCA) exam topics Shows what topics you need to know for this certificate     Oracle Certified Professional (OCP) exam topics Topics for Oracle's higher-level Java certificate
Greet1.java Traditional first program, non-GUI     HelloWeb.java A first applet
Greeter.java Shows creation and use of objects     How To Program A walk-through of a sample Java programming assignment
How to start a programming assignment Excellent advice from Patricia Shanahan  (See also her advice on Debugging Strategy)     How To Write Unmaintainable Code A humorous look at what not to do
GUIGreet.java Shows simple GUI program     HoopsApp.java An applet showing simple animation (bouncing hoops)
RAM Layout Graphic Compares primitive versus object reference variables     Static Fields An explanation of static versus non-static fields
Type Chart Java primitive types reference chart     Math Oddities A demo showing some tricky points of math in Java
Binary Number Chart Tutorial for octal, decimal, hex, and binary equivalents     Round.java Shows formatting with the legacy java.text.* formatter classes
BigNum.java Demo using java.lang.math.BigDecimal andBigInteger     Java operators A complete list of the operators in the Java language (not listed in precedence order however)
www.PurpleMath.com Good site for basic math and algebra tutorials (something all technology workers need to know)     ASCII Collating Sequence A chart showing the ordering of ASCII characters
Unicode Symbols A few symbols, shown in a fancy Java Applet        
Greet2.java Shows non-GUI simple input with Scanner     ConsoleDemo.java Shows console input and output, including how to read passwords
PrintfDemo.java Using printf (or String.format) to format output     Greet3.java Shows simple GUI input and output using JOptionPane
MsgBox.java Prints an input string in a box     MsgBox2.java MsgBox, but uses a method
MsgBox3.java MsgBox, but uses several methods     Overload.java Shows overloaded method resolution
InvokeDemo.java Illustrates different ways to invoke methods     ParamPassingDemo.java Demonstrates passing primitives and objects to methods
Stock.java Shows constructors     StackGoBoom.java A Demo showing a stack overflow
Fibonacci.java A simple demo of using recursion; compare with FibonacciMemo.java  (See also this Recursion tutorial)     Palindrome.java A demo of using recursion to see if the command line args form a palindrome
Widget.java Demo showing Java's default (no-arg) constructor        
Judges.java Uses Scanner, averages     StringTest.java How well do you know Strings?
ExceptionDemo.java Shows catching and throwing of exceptions     TryTest.java How well do you know try-catch-finally?
ThrowExceptionDemo.java Shows detecting a problem and throwing an Exception        
RegExLab.java Regular Expressions Lab     TwentyOne.java A stand-alone “21” card game  (To play, download TwentyOne.jar and double-click)
Average.java Uses arrays, shows nums > ave     AverageGPA.java A more realistic version of Average.java
2D Array graphic (PNG) Shows how 2-dimensional arrays look in RAM     DeepCopy.java Demo showing how to make deep copies of arrays and other ojects (uses advanced techniques not covered in this course)
SearchDemo.java Shows linear and binary searching algorithms     MyGreet.java Uses command line arguments
ArrayTest.java How well do you understand arrays?        
Java Modifiers A complete list of all Java modifiers     ScopeTest.java How well do you know scope and lifetime issues?
PkgDemo Demo showing how to create & use packages  (See also Oracle's Java packages tutorial)     Greeter.java - Javadoc Greeter with Java “doc” comments added.  (See also lecture notes on using javadoc)
finding classes in Java 7 How various Java tools find classes  (See also the documentation for CLASSPATH, including class path wildcards)     Javadoc Tool Manual Reference information on the Java 7 javadoc tool for Windows
Fruit1.java Demonstrates inheritance     Fruit2.java Shows overriding, polymorphism
ConstuctorDemo.java Shows order of constructor calls under inheritance     Carnivore.java An illustration of polymorphism
Fruit3.java Shows abstract classes & methods     PolymorphismDemo.java The gory details of polymorphism: how it works under the hood
OverrideTest.java Shows when a method is overloaded not overridden     C3.java Shows “shadowing” of instance variables
GrandparentDemo.java Shows overriding (polymorphism) and hiding with Java inheritance        
GiftBasket.java Shows interfaces and more     InnerClassDemo.java Shows how to use inner classes
Nested.java Shows simple anonymous inner class use     Shadow.java Shows shadowing with nested and inner classes
DateTime.java Shows Dates, Times, and Calendars     InheritTest.java How well do you know how inheritance affects scope?
CalendarDemo.java Shows fields in Calendars     CollectionsDemo.java Shows ArrayLists, Maps, and other features added with Java 5
Event Chart Shows Events, Listeners, and useful methods     EventDemo.java Simple Applet showing AWT event handling
SimpleGUI.java Shows windows and events     Popup.java A pop-up window, mouse events
FrameTst.java Shows Window controls and events     PackDemo.java Shows the effect of using Container.pack()
Sketcher.java Shows mouse events     DrawIt.java Applet, shows almost everything GUI
SwingBtns.java Shows some features of Swing buttons     Font concepts Explains font terms and concepts used in Java
MenuDemo.java Shows how to use Menus     Standard Windows Keyboard Shortcuts Part of Microsoft's user interface design guidlines  (scroll down to “General Shortcut Keys for Applications”)
HeavyLight.java Shows the difference between heavyweight and lightweight Components     OverlapHeavy.java Shows what happens when AWT heavyweight components overlap
IntCalc.java Interest Caclulator with Swing “PLAF” demo     PaintDemo.java Shows painting differences with heavy and lightweight Components, with wallpaper
Personality.java Shows Buttons, events (Applet)     PersonDev.java Development version of Personality.java
GUIGreet2.java Shows multi-window fancy GUI     TTT.java Tic-Tac-Toe (applet)
Smile2.java Full multimedia applet     SmileJar.java Use of Jar files (Applet displays a GIF)
Smile.java Multimedia Swing applet (See also this Smile Swing Applet - ImageIO version)     UIDemo AWT user interface demo
PlaySnd Play sounds without showing controls or pre-loading.  (Shows how Java and JavaScript can interact.)     MediaDemo.java Media demo app, in a clickable Jar file
DiningPhilosophers Sun's DeadLock Thread Demo     Sort algorithm race Multi-thread Sorting Demo
Greeter — Threads Multi-threaded demo using Greeter.java     Swing image demo Demo showing how to load an image from a JApplet
Hoops.java Simple animation (GUI)     Hoops2.java A “flicker-free” version of Hoops.java
Asteroids.java Java 1.0 Applet game with source     Guitar.java Guitar tuner Applet (sound demo), with source
Clock Applet Nice clock applet with many settable parameters     WebWar.zip Action game with Java 1.0 source
FileKit.java Calculates MD5 Digests of files     LoaderDemo.java How to construct URLs to resources (in jars)
Model Solutions to Assigned Projects
LogoDemo.java Swing GUI application showing fancy 2D drawing     GuessingGame.class Simple number guessing game
TempConv.java Temperature conversion Applet     TempCon2.java Temperature conversion Applet w/extras
Histogram.java Displays a histogram (non-GUI)     TxtCrypt.java A fancy Applet to encrypt text

[Valid RSS]

RSS iconXML iconRSS feed for this page

What is RSS?