Interactive Internet Programming with Java
   I. Course Description
   COSC 210 Interactive Internet Programming with Java 3c-0l-3sh
   Prerequisites: COSC 110 or equivalent
   An introduction to interactive Internet programming using Java. The focus is on writing
   platform independent multimedia applications that are useable across the Internet. Uses
   a write once, run anywhere approach while providing adequate security.

   Book: Small Java How to Program by Deitel ISBN: 0-13-148660-8

   II. Course Objectives

   Students will:
   Learn the Java programming language
      -Basic syntax
      -Object oriented programming and classes
      -Introduction to Open Source
      -AWT and Swing
   Learn The Eclipse IDE
      -Workbench, Scrapbook, Console, Debugger, Inspectors

   III. Course Outline
   UNIT 1: Introduction to Java and Eclipse  3 hours week 1
      Deitel read pages 1-32 and 35-43
   UNIT 2: Object-Oriented Programming    3 hours week 2
      Deitel read pages 43-65     
   UNIT2b: Open Standards
     Introduction to Object-Oriented Programming &Environment
     Installation of the Java Development Kit and eclipse,
     an Integrated Development Environment and the code examples for the labs.
     Thinking in Objects: creating classes, attributes and methods:
     The API documentation
     · How to Compile and run simple programs and applets

   UNIT 3: Java Basics, Part 1                        3 hours week 3
      Deitel read pages 107-148
   UNIT 4: Java Basics, Part 2                        3 hours week 4
      Deitel read pages 157-197
     Introduction to Java Basics. Review of programming constructs.
     · variables and primitive types
     · objects, String, String Buffer and Wrapper classes

   UNIT 5: Building Classes (eclipse)            2 hours  week 5
      Deitel read pages 73-102
     · Coverage of basics of inheritance and working with objects.
     · Creating a simple class.
     · Working with methods (functions). Syntax involved.
     · Developing constructors.
     · Use and need for overloading.
     · Distinction between overloading and overriding.


   UNIT 5.5: Methods a Deeper Look and Arrays   2 hours weeks 5 and 6
      Deitel read pages 205-315
     · Static and math methods.
     · Passing information, call and return.
  
     · Arrays.  

   UNIT 6: Debugging (optional will do if we have time) 1.5 hours  week 6
    
· Use eclipse debugger
     ·  set breakpoints and step through code

   MIDTERM test  Thursday February 28

   UNIT 7: Inheritance and Refactoring        3 hours week 7
      Deitel read pages 317-364
     Deitel read pages 370-411
    · Understand inheritance of fields and methods
     · Be aware of the class hierarchy
     · Understand how subclasses specialize superclasses
     · How method lookup works
     · Understand how to create and use subclasses
     · Understand how polymorphism works
     · Learn about refactoring existing code


   UNIT 8: Interfaces                                      3 hours  week 8
      Deitel read pages 413-454
    
· how and when to use intefaces

   SPRING BREAK

   UNIT 9: Collections                                   3 hours  week 10
     · Understand the basic concepts of collections
     · Explore the collection interfaces provided by Java
     –Interfaces
     –Abstract types
     –Concrete implementations
     · Understand how the “legacy” classes and interfaces fit in with
       the more modern classes and interfaces


   UNIT 10: Serialization and Streams          3 hours  week 11
     · Look at streams and Java's stream classes
     · Examine the use of streams
     · Understand Java’s “new” I/O paradigm (blocks)
     · Understand the role of serialization
     · Understand the relationship between serialization and Eclipse

   UNIT 11: Exceptions and Exception Handling  3.0 hours week 12
     · To learn how
     –Exceptions are used to signal errors
     –To use try and catch to handle exceptions
     –To throw exceptions
     · To understand assertions and how to use them

   UNIT 12: AWT and Swing                                  6 hours weeks 13 and 14
     · Learn more about primitive wrapper functions
     · Understand utility functions provided by java.lang classes
     · Learn to use regular expressions to drive pattern matching

   Week 15 Wrap Up

   Final

   IV. Evaluation Methods
   1. Classroom and lab activities -20%. There will be weekly graded projects involving
   hands-on programming in Java in the lab or developing algorithms and pseudocode in
   the classroom. The points earned in these activities cannot be made up if the student misses
   the class. Outside class readings are required in association with these activities.
   2. Homework: 50%. Students will have a homework assignment to complete outside of
   class time for each unit.
   3. Quizzes and exams. 30%. Students will be evaluated on their understanding of the concepts
   presented using short essay questions on the readings and class material for each unit. There will
   be a midterm and a final exam.
   4. Grading Scale. The standard grading scale will be used.
   90%+ =A; 80-89%=B; 70-79%=C; 60-69%=D; <60%=F.

   V. Class Time and Office Hours
  
  
Office Hours Wednesday 2:30-4:00
  
   Section 1: Tuesday and Thursday at 12:30-1:45 PM
   Section 2: Tuesday and Thursday at 3:00-4:45 PM