COP 2805
Java Programming II

COP 2805 - Java II Syllabus
View Weekly Course Schedule   Other interesting links:

Resources  (examples, ...)

  Instructions for Programming Assignment #1.
  Instructions for Programming Assignment #2.
  Instructions for Programming Assignment #3.
  Instructions for Programming Assignment #4.
  Instructions for Programming Assignment #5.
  Instructions for Programming Assignment #6.
  Instructions for Programming Assignment #7.
  Instructions for Programming Assignment #8.

Weeks of Programming

Can Save You

Hours of Planning

Reported by: "Anne Applin" <anne.applin@GMAIL.COM>
  www.oracle.com/technetwork/java/ - The source for JDK and more.
On-line version of the Java 6 JDK Docs from Oracle.  ( Java API docs.)
On-line Textbook supplements and Student Resources - Liang's textbook companion website.
TampaJUG.org - Tampa Bay area Java Users Group.
on-line Java Language Reference - the final word on Java; explains obscure language features.
on-line Java Tutorials — Excellent tutorials on all topics, including sample code.
Thinking in Java free (PDF), highly regarded book by Bruce Eckel.
A Java FAQ (Java Glossary), lots of answers.
on-line training articles from Oracle.
IBM Java developerWorks — Large collection of beginner to expert articles on all things Java.
ootips.org A large collection of OO tips, techniques, and design patterns.
www.UML.org The site for UML standards, tutorials, and more.  Download ArgoUML, a free UML modeling tool.
Java Certification Programs and Oracle Certified Associate (OCA) exam topics.  (See also Oracle Certified Professional (OCP) exam topics.)
Professional Software Engineering certification information (may be required to practice SE in some states).

COP 2805 Syllabus

Spring 2012

Cource policies
Time & Place: Ref No. 22173: 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;
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: No book is required.  All resources will be provided by the instructor and/or found on the web.  However, for those who wish a good book, you can find most topics covered in the COP-2800 text book:

Y. Daniel Liang, An Introduction to Java Programming, Comprehensive Eighth Edition, ©2010 Pearson Education, Inc.  ISBN-10: 0132130807   ISBN-13: 9780132130806

Kathy Suerra and Bert Bates, Head First Java, ©2009 O'Reilly Media.  ISBN-10: 0596009208   ISBN-13: 9780596009205
(A good self-study book for beginners.)

Cay Horstmann and Gary Cornel, Core Java Volume 1 and Core Java Volume 2, (latest editions of each), ©Prentice Hall. 
(A good reference set.)

HCC bookstore on-line

Description: (This course is 3 credit hours long.)  This course is a continuation of COP 2800 (Java Programming I).  The focus is on the development of client-server applications and advanced GUI.  Topics include Java features (such as enums, autoboxing, and generic types), multithreading, collections, files, advanced multimedia and GUIs, internationalization, and web programming (including database use, networking, security, servlets, Java Server Pages, JavaBeans, and Remote Method Invocation).
Objectives: The student will demonstrate a knowledge of the following topics through objective tests, hands-on activities, and projects:
  1. Understand and build applications and applets using advanced object-oriented programming concepts (such as design patterns and basic UML)
  2. Understand and use advanced Java features including reflection, annotations, weak references, enums, and autoboxing and unboxing
  3. Understanding Exceptions, Assertions, and testing (JUnit)
  4. Understanding and using generic collections
  5. Understand how to construct internationalized applications and applets
  6. Understand and build advanced graphic user interfaces (including 2-d graphics and advanced layout techniques)
  7. Understand multithreading concepts and build multithreaded applets and applications
  8. Work with files and I/O, including XML files (including DOM, SAX, and XSLT)
  9. Understand how to digitally sign an applet and applications, and how to grant extra privileges to an applet, and other features of JAR files
  10. Understanding deployment issues and the use of Java WebStart
  11. Describe J2ME concepts and components
  12. Understand how to use databases from a Java program
  13. Printing from a Java application
  14. Understand basic networking concepts and building client-server (web based) applications with servlets and Java Server Pages (JSPs), JavaBeans, and Remote Method Invocation (RMI)
  15. Understand issues and basic design of enterprise applications using Java EE (including such concepts as web-, business-, and EIS- tiers, fat and thin clients, grids and clusters, WARs and EARs, etc.)
  16. Understand and describe enterprise technologies and related services and protocols, including JNDI, JMS, JavaMail, and Web Services ( UDDI, SOAP, and WSDL)
Prerequisite: COP 2800, 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 and the Java 6 EE development tools.  (These include the HCC classroom and Computer Lab computers.)  You can obtain the JDK from www.oracle.com, The Glassfish Java EE server (Open Source edition) from glassfish.java.net, Eclipse from eclipse.org, NetBeans from NetBeans.org, JUnit from junit.org, Derby database from db.apache.org/derby/, Maven2 from maven.apache.org, and ant from ant.apache.org.  (These are all free tools, and often the tools of choice in the industry.)

You will need your own flash disk, writing materials (for taking notes), and three Scantron 882–E or 882–ES forms (for taking tests).  You can use HawkNet (WebAdvisor) or FACTS.org to obtain your final grade for the course.

Most college systems now use (or will in the future) 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 Java software installed 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 4:30 PM
(Note:  Lab techicians (“Lab Techs”) are not teaching assistants or tutors, and shouldn't be expected to help you with your coursework.)
Grading:
grading policy
3 equally weighted exams:     50%
Programming projects (about 6):     50%
Classroom participation:     +5%

Grading scale:  A=90-100,   B=80-89,   C=70-79,   D=65-69,   F=0-64
(Or you can elect to audit the class during the add/drop period.)

Policies:
  • No makeup exams will be offered without the prior approval of the instructor.
  • 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.
  • 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 Campus Cruiser has email and discussion board areas for our course.)
  • 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 6 and 10 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, 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 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.  Note that some projects may be group projects, where each member of a small group works together on a project.  It is also OK 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).  It is encouraged to study together as well.
  • 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!
  • 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 (or Campus Cruiser) email account.
  • 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 the case we fall behind, homework assignments are automatically postponed until we do discuss that topic in class (i.e., the next class).  Projects and in-class exams will not be automatically postponed.  Should your instructor deem it necessary, projects and exams may be rescheduled; this will be announced in class.
  • 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 can contact me the night 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, 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 plenty of time to complete the projects, at least 2 weeks and usually longer.  Although there will be some group programming projects and in-class group exercises, you must work individually on non-group projects, typically outside of regular class hours.

Projects are graded on the following scale:

A = 95% (Excellent: Good design with good comments, style, and extras)
B = 85% (Good: Good design, some comments, readable style, and it works)
C = 75% (Acceptable: Project objectives are met or are close to being met)
D = 65% (Unacceptable)
E = 10-64% (Variable credit: At least you tried)
F = 0% (Didn't hand in the project)

Minor extras worth +5 points, minor omissions or poor design worth -5.

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 (10%).

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

Submitting Assignments: Most all assignments (except when noted) must be submitted by email to .  Please use a subject such as Java II Project #1 Submission, so I can tell which emails are submitted work.  (Questions get answered right away, but submissions may wait a while before I grade them.)

Send only one assignment per email message.  Email your Java source and HTML files by copy-and-paste.  (Please do not send as attachments!)

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

The HCC email server automatically accepts and silently discards email with certain types of attachments.  For our class, the problem is with zip attachments, which you need to use for some assignments.

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 CampusCruiser to send email to professors.  (This doesn't always work either!)

As a last resort you can use waynepollocklive@yahoo.com, which doesn't filter any mail.

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

Academic Calendar
HCC Academic Calendar:
Classes Begin: Monday  1/9/2012   (First class meeting: Tuesday 1/10/2012)
Add-Drop Ends: Friday   1/13/2012
Last Day to Withdraw:  Monday  3/26/2012
Classes End: Monday  5/7/2012  (Last regularly scheduled day of class: Thursday 5/3/2012)
Grades Available:  Wednesday  5/9/2012 (from FACTS.org or HawkNet)
HCC is closed on: Monday  1/16/2012 (Martin Luther King Jr. Day),
Monday  2/20/2012 (Presidents' Day),
Monday–Sunday  3/19/2012–3/25/2012 (Mid-Term Break),
Friday–Sunday  4/6/2012–4/8/2012 (Spring Day),
Thursday  4/12/2011 (Faculty In-Service Day)

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 2805

Day by Day Course Schedule
Dates
Tue       Thu
Topics Readings
1/10     1/12 Review: Course policies.  Review Java 1 topics on request (Applications and applets, bytecode, methods, scope, modifiers, Object Oriented programming, Wrapper classes, using BigDecimal and BigInteger classes, graphics, AWT, swing, and SWT, user interfaces, events, layout managers, and MVC (Model-View-Controller) architecture.)
Using Eclipse and NetBeans Java IDE.
Software Engineering Code of Ethics, Eclipse Documentation (the Workbench User Guide and Java development user guide sections), NetBeans Documentation (the Java Quick Start Tutorial and Developing General Java Applications)
Additional Links
Java 7 SE API reference, tutortials, and sample code from Oracle, ant.apache.org, Eclipse, NetBeans, Eclipse tutorial, NetBeans Tutorial
  1/16 Martin Luther King Jr. Day  —  HCC closed  
1/17     1/19 Exceptions review: checked vs. unchecked, using and defining, try-catch-finally blocks, using try-with-resources (Java 7).  System.exit, finalizers, and shutdown hooks.
Boxing and unboxing.  Initialization blocks.  static import.  enums.  Annotations.  Covarient return types, clone method, copy constructors.  Varargs.  Reflection.
Chapters 13 (Exceptions), Liang on-line supplements Java-L (initialization blocks), Java-F (enums), Reflection tutorial, covariant return types tutorial, Java tutortials for Initializing Fields (including static initialization blocks), Using Package Members (including static import),Enum Types, Annotations, The Numbers Classes (boxing/unboxing), Passing Information to a Method or a Constructor (varargs),
Additional Links
on-line Exception demos, on-line enum, boxing, init. blocks, annotations, covarient, and reflection resources
1/24     1/26

  1/31
Files and I/O (java.io, java.nio), JFileChooser.  Object serialization.  Using CVS (team programming using a code repository and versioning system).
Project #1 (IDE) due 1/31
Chapters 9.6-9.8, 19, Oracle Java Tutorial for I/O, CVS Tutorial for Eclipse (see also this Eclipse CVS FAQ and the Eclipse CVS getting started guide), CVS Tutorial for NetBeans
Additional Links
on-line file, I/O, and CVS resources
2/2   Java Collections: arrays (review), types/interfaces (List, Set, Map), common implementations (Linked List, Hash, Tree).  java.util.Collections utility methods. IBM Developerworks Java Collections tutorial
Additional Links
Oracle Java Collections Tutorial, on-line Collections resources
2/7     2/9 Generics.  The garbage collector and Java memory model, Weak/soft references, WeakHashMaps.
Project #2 (CVS) due 2/9
generics.pdf (tutorial from Joshua Bloch's Effective Java),  reference types tutorial (skip Reference Queues and Phamtom References)
Additional Links
on-line memory, garbage collection, and Reference resources
  2/14 Exam #1  
2/16   Internationalization (I18N), Encoding (Unicode, UTF-8, ISO 8859-1).  Locales, java.text.*, resource bundles, property files.  System properties.  Using the Preferences API.
Internationalization tutorial from Oracle
Additional Links
on-line I18N resources
  2/22 Presidents' Day  —  HCC closed  
2/21    2/23

  2/28
Object-oriented analysis and design.  Introduction to design patterns.  Model-View-Controller (MVC) pattern.  UML.
Project #3 (files and collections) due 2/21
Chapters 10 (Thinking in Objects), Liang on-line supplements III-N (Design Patterns) and III-W (UML), CRC Cards, UML Tutorial
Additional Links
on-line design and UML resources
3/1  

3/6       3/8
Testing, using JUnit.  Using assertions.  Logging for Java.  Management and monitoring of applications and the JVM.
Project #4 (RFP) due 3/6
Liang on-line supplement III-P (assertions), Official (short) JUnit tutorial, Extreme Programming example: Bowling scores, Java logging tutorial, Monitoring Java programs using Jconsole
Additional Links
on-line testing resources, logging and monitoring demos Liang on-line supplement III-X (JUnit)
  3/13     3/15 Multithreading (Concepts, issues, object locks, synchronized, wait, notify, notifyAll).  Timer classes. Sun/Oracle Tutorial on Concurrency
Additional Links
on-line Multi-Threading resources
3/19 – 3/25 Mid-Term Break  —  HCC closed  
  3/27 XML (SAX, DOM, StAX, XSLT), JSON.
Project #5 (Mini-Golf part 1: requirements and design) due 3/27
Class XML Lecture Notes, Liang on-line supplements V-C and V-D (XML)
Additional Links
on-line XML and JSON resources
3/29   Exam #2  
4/3       4/5 Database access (JDBC), SQL, Using ODBC. Database Concepts (PDF)
Additional Links
Liang on-line supplement IV-A, -B, -E, -F, -G, -H (databases), on-line database resources
4/6 – 4/8 Spring Day  —  HCC closed  
  4/10 Overview of Ant build tool.  Overview of Maven build tool.
Project #6 (XML) due 4/10
TBD
Additional Links
on-line Ant and Maven resources
4/12   In-Service Day  —  HCC closed  
4/17     4/19

4/24     4/26

  5/1
Overview of Java EE design: Web-, business-, and EIS- tiers, fat/thin clients, grids and clusters, applications and web services (SOAP, WSDL, and UDDI).  EJBs.  Other Java EE technologies: JNDI, ...
Installing Glassfish and related software.  Servlets (Handling GET and POST requests, using cookies and session tracking).  JSP.  Deployment: WARs and EARs. 
Project #7 (Mini-Golf part 2: tests and implementation) due 4/17
Liang on-line supplement V-A (HTML), On-line Chapters  39–40, 42.6 (Ch. 41, 42 optional), on-line Java EE resources
4/26  
  5/1
Additional topics (interest and time permitting):
Using advanced layout managers (GridBag, Box, and Overlay and JlayerPane).  Borders.  PLAF.  Toolbars and Actions.  Swing and the MVC (Model-View-Controller) architecture.  JTables (and JTrees).  Networking (URLs, Sockets, UDP Datagrams, Client-Server).  RMI.  Java WebStart (JNLP).  Java ME concepts.  Graphics and the Java 2D API: Clipping, transformations, stroking.  Printing in Java.  Java Security: Signed Applets, Policy files, sealed packages.  The jar utility, jar manifest files.
Chapters 33–36, on-line PLAF resources,
Chapters 30, 43, on-line Networking Resources
Chapters 32, Liang on-line supplements III-R (Java 2D), III-S (Adv. Layout managers), III-V, (PLAF), on-line JavaBeans, security, graphics, printing, WebStart, and JavaME resources
5/3   Final Exam
Project #8 (Web Application ) due 5/3
 

 


 

course resources
Resources
Software Engineering Code of Ethics Joint ACM and IEEE code of ethics and professional conduct     Debug Strategy Excellent advice from Patricia Shanahan on debugging
Bytecode Demo Bytecode Demo using javap     Pack.java Demo of bitwise operators
Java Setup Instructions for re-creating the Java setup of our classroom, including the install of NetBeans, Eclipse, JDK, Ant, Maven, JUnit, Derby database, and other tools        
ExceptionDemo.java Demo of catching and throwing exceptions     TryWithResources.java Demo of using Java7 automatic resource management (try-with-resources)
ShutdownHookDemo.java Demo of using shutdown hooks     Finalizer.java Demo of Finalizers
Student.java Demo of the telescoping constructors pattern     InitBlockDemo.java Initialization block demo
StudentBuilder.java Demo of the builder pattern to replace complex constructors     StudentPQ.java Slightly more complete (production quality) example of Student.java
Enum in Java 5 Tutorial on Java 5 enums     CoinPurse.java Demo of enums
BoxUnbox.java Demo of Java 5 auto-boxing     MetadataDemo.java Java 5 Annotations demo
VarArgs.java Simple varargs Demo     Annotations Java 5 Annotations lecture notes
CloneDemo.java Shows how to implement clone, using covariant return types     ReflectionDemo.java Simple Relection Demo
Top 25 Errors A list of common security-related coding errors, from SANS.org and CWE.Mitre.org  (See also CERT Secure Coding Standards for Java and other languages)     ISO 27000 (Wikipedia) The ISO/IEC 27000-series (also known as ISO27k for short) comprises information security standards  (Some of these standards are freely available here)
SEI Software Development Information from the Software Engineering Institute  (See also their software Architecture and their certification information)     IEEE Computer Society Software Professional Certification Information about the CSDA and CSDP certifications
Software Engineering (Wikipedia) This article discusses certifications and legal requirements     SWEBOK 2004 edition The Software Engineering Body Of Knowledge defines what every software engineer should know (design, testing, and similar topics)
ISO 12207 (Wikipedia) A popular ISO standard for software lifecycle processes     ISO 9000 (Wikipedia) This standard refers to the process of creating software (certified compliance is required for software sold in the European Union)  (For project management the most widely recognized certification is Project Management Professional (PMP))
Project Proposal for a voice mail system A project proposal     Object Categories A guide to finding objects
CRC Cards The original paper describing the CRC design method.  (Another example.)     OOD Guide OOA and OOD Study guide
Synopses of Design Patterns A brief description of many Java patterns     Design Patterns Tutorials, FAQs, and more
ootips.org A large collection of OO tips, techniques, and design patterns     Java Design Patterns 101 A tutorial on common design patterns from IBM Developerworks
www.UML.org The site for UML standards, tutorials, and more        
UML Resource Center - IBM UML tutorials     How to Design a Program An over your shoulder look at thinking about design
Violet UML Editor Originally written by Cay Horstman, this free Java application (a runnable jar file) is an excellent UML diagram editor     ArgoUML Free UML diagramming tool that can produce code from the diagrams.  (Not well maintained, but there is an Eclipse plug-in for it.)
Dia Free diagramming tool (for UML and a lot more)        
UML Quick Reference (PDF) A excellent reference card showing one each of everything     UML Reference (PDF) A more complete UML reference
Testing Overview Lecture Notes on Testing     Test Case Self-Assessment Attempt to generate sufficient test cases for a simple program
TextKitTestSuite.java Junit Testing Example for TextKit.java class     BankAccount.java Demo using assertions for pre-, post-conditions, invariants
JUnit.org Junit Testing     JUnit API Java docs On-line JavaDocs for junit.* package
JUnit 4 Testing Tutorial (PDF) Jump Into Junit 4 Testing, from IBM DeveloperWorks        
JMock.org Jmock is a library that allows you to easily create mock objects for testing     Java Code Checker PMD can report (likely) logic errors in your code
LoggingDemo.java Short demo showing Java SE logging API (See also the Java logging tutorial)     Apache logging home Download or read about log4j, logging in general, and the GUI log viewer chainsaw
Java Monitoring tutorial See also Java Management and Monitoring resources     Management and Monitoring Demo Shows how to run a managed application and how to monitor it.  (See also docs for jconsole and jvisualvm tools)
Collections Tutorial from IBM Developerworks Short tutorial on using Collections     generics.pdf Excellent tutorial on using Generics from Joshua Bloch's Effective Java
Oracle Java Collections Tutorial A more through tutorial on Collections     Oracle Guide to Java Collections Additional Java Collection resources
Collections tutorial Another Collections Tutorial from IBM DeveloperWorks     Generics tutorial Generics Tutorial from IBM DeveloperWorks
CollectionsDemo.java Demo of using various Java collections     Generics Tutorial from Sun (PDF) Tutorial and complete reference to using Generics (See also this simpler Sun Generics Tutorial from Oracle)
Destutter.java Demo List and some java.util.Arrays methods, tr remove adjacent duplicates    
HashCodes Steps to create your own hashCode methods     GenericDemo.java Demo of a generic method
RAM layout Shows how primitives and objects are referenced     Understanding Weak [and Soft] References A short but good blog posting explaining Java's Reference types
Java Reference Objects A short but through tutorial on Java's memory model, garbage collection, and References (especially SoftReference and WeakReference)     java.lang.ref Package Description Java API docs for Reference objects
GenericRefDemo.java Demo of a generic Cache class that uses SoftReferences, and a demo of WeakHashMaps     ReferenceDemo.java Example of weak and soft reference use
Java Garbage Collection references Discusses the various GC algorithms used with the HotSpot JVM and how to select one, and tune it for performance  (See especially the Memory Management Whitepaper (PDF))     Java (HotSpot JVM) non-standard option reference Describes the non-standard options, useful to improve performance (of the garbage collector for example)
I18N (Internationalization Tutorial from Sun) Tutorial on using I18N, Locales, and Resource Bundles     ISO-216 international paper sizes A clear explaination of A4 and other international standard paper sizes
Java internationalization basics A readable tutorial on I18N and L10N, from IBM DeveloperWorks     Locales and I18N Some notes about using Locales and internationalizing programs
ISO-639 English (and French) language names, and the standard 2 and 3 letter codes     ISO-3166 Country Codes The official list of two and three letter country codes, used in locales
Encodings and Character Sets More information then you want to know about Unicode, encodings, etc.     Font concepts Explains Font terms and concepts as used in Java
CodePointDemo.java Shows how to work with I18N Strings     ShowFonts.java Show all local fonts, list font families
IGreet.java Uses Locales, ListRecourceBundles for I18N     Stocks.java An Internationalized Applet
Version.java Displays the JVM version in your browser     Unicode symbols Applet showing Unicode font listings, plus a few symbols
ShowProps.java Lists Java system properties and their values     PrefsDemo.java Shows the Java Preferences API
Multi-Threading Lecture Notes (PDF) A discussion of the concepts and issues of using Threads     Java Concurrency / Multithreading Tutorial A terse and up-to-date tutorial
Sun/Oracle Tutorial on Concurrency Discusses all multi-threading features of Java 6     ThreadLocal.java Demo of ThreadLocal variables
DiningPhilosophers Sun's DeadLock Thread Demo     Sort algorithm race Sun's Multi-thread Sorting Demo
PServer1.java Pseudocode of a Print Server     PServer2.java Improved pseudocode of a Print Server
Oops.java Demo of pausing inside of an event handler (and why it's not a good idea)     Threads.java Mutli-threaded Demo showing suspend, resume, and stop
HoopsApp.java Simple Animation using a Thread     Ssjava1.java Swing animation, uses Timer
Bank.java Mutli-threaded Demo of synchronized        
Java Tutorial for I/O Official Oracle Java tutorial, including old (streams) and NIO (including Java 7 NIO.2)     FileKit.java Show how to calculate the MD5 checksum of a file
Greet2.java Shows non-GUI input with Scanner     FileDemo.java Shows reading, writing files with encodings  (Download UTF-8-demo.txt for FileDemo.java)
DirList.java Prints a directory listing.     FileKit.java Show how to calculate the MD5 checksum of a file
Person.java A short demo to open, read, parse a file of data, and create a List of objects     People.txt A (very) short text file to use with Person.java
RandomAccessDemo.java A short demo to open, read, and write to an ASCII text data file     RandomAccess.dat A (very) short text file to use with RandomAccessDemo.java
DeepCopy.java A short demo of serialization, used to make deep copies of arrays and other ojects     NIO Tutorial (PDF) from IBM DeveloperWorks
NioDemo.java Uses java.nio classes to copy a file     Tutorial for Java NIO (PDF) A shorter (but slightly more readable) version of the IBM tutorial on using java.nio
MemMapDemo.java Uses java.nio memory-mapped I/O (use with the sample file MemMapData.txt)     Tutorial for NIO.2 Short NIO.2 tutorial (with example code) from IBM DeveloperWorks
CVS Tutorial for Eclipse Also see the Eclipse CVS FAQ, and the CVS Tutorial for NetBeans.  Find more at the CVS home page        
XML Lecture Notes (PDF) A copy of my lecture notes     XML Tutorial An excellent hands-on tutorial, from w3schools.com
UseDOM.java XML Demo of DOM API     HelloXML.java XML Demo of SAX2 API
DOMDemo.java Demo of XML DOM parsing     XmlNotepad.msi A very old Microsoft (free) XML editor.  (There are better ones!)
XML-XSL-Demo XSL (XML Style Sheets) Demo     Xerces-J Setup Some help to install Apache's Xerces-J XML parser on Windows
json.org JSON documentation, including links for libraries for Java     JSON Demo Demo of using JSON  (See this JSON-sample.txt)
Ant.Apache.org Home of the Apache Ant build tool     Apache Ant manual Includes both a reference and tutorials
build.xml A sample Ant build.xml file for a hello, world application     Apache Ant from WikiBooks.org.  See also this Ant Overview (PDF) from Apress.com
Excerpts from Java Programming with Ant Includes tutorial chapter and an Ant task reference     Ant Best Practices 15 good tips, from O'Reilly
Database Lecture Notes (PDF) A brief overview of database concepts, and how to use databases in Java     Databases for System Administrators Similar to the lecture notes, but with information appropriate for system administrators.  (It does include a worked example of normalization)
Coffee Database Directions to create an ODBC Text database on Windows     SquirrelSQL.org A (free) GUI Java database client, to work with (nearly) any type of database
DBDump.java Displays a table from a database     Grades.java MultiThreaded Swing GUI and JDBC Demo
DerbyDemo.java JDBC demo of the embedded Derby database     Java DB Manuals Tutorials and reference for Java DB (a.k.a. Apache Derby)
myServlet.war Example WAR (Web application ARchive) with a Servlet     Java EE Home Sun Java EE site
Java EE Overview Draft lecture notes     Hello, World RMI demo Simple, basic RMI demo from Sun
JNDI Tutorial Sun's JNDI on-line tutorial     Mastering Enterprise JavaBeans, 3rd Ed. A great EJB book, for free as a PDF download
Designing Java EE Applications A Sun Blueprint Article     Java EE Tutorial A Sun Java EE Tutorial
Java EE Technology Center An Oracle/Sun Java EE developer resources        
TheServerSide.com A Java EE site with many tutorials     Java EE Architect's Handbook A pretty good Java EE book, available for free from here
JBoss Home JBoss Java EE Application Server     WebSphere IBM's Java EE application server
Tomcat Setup Apache's Tomcat web application Server install help for Windows  (See also the popular Jetty web application server)     Credit Card Processing A brief overview of e-commerce payment processing
CopyTest.java Shows Graphic contexts are copies     HeavyLight.java Shows difference of Heavy and Light weight components
Logo2D Java2D Graphics Demo     Jade.java Fancy Text Rendering
Smile2.java Multimedia (with sound) applet     SmileJar.java Graphics, in a jar
Printing Demos Several examples of Java printing     JfileChooserDemo Shows a GUI file chooser dialog
AWT - Swing Demo.java Simple Swing demo, compares with AWT version     IntCalc.java Interest Caclulator with Swing PLAF demo
SwingDemo1.java Simple Swing demo     LblDemo.java Swing JLabel demo
MultiLineDemo.java Shows how to draw text with styles        
Ssjava2.java Swing animation, uses JLayerPane        
JTableDemo.java Simple JTable Demo     ClipEx.java Demo of copy/paste clipboard access
SimpleBean.java A Simple JavaBean Tutorial     Marquee Marquee Java Bean
SBean.java Simple Java Bean with BeanInfo, runnable jar     Download the BeanBuilder A GUI Bean Developement Kit
JavaBeans home page Read the Specifications and find other related resources     Download the BDK The Bean Developement Kit (platform independent version from Sun) is interesting but obsolete
J2ME step by step (PDF) Tutorial on J2ME (Java Micro Edition)     JNLP API Examples  
ChatServer Chat room Server        
Java Security Tutorial on Java Security from Oracle     WriteFile.java A signed Applet to create a file on the local system
Model Solutions to Assigned Projects
Logo2D Java2D Graphics Demo     Office Hours Project Model Solution to Office Hours project #1

[Valid RSS]

RSS iconXML iconRSS feed for this page

What is RSS?