Home
Lectures
Download Area
International Activites
Publications
ISPS
ACE
Research
home
>
lectures
>
eop_java
>
timeline
Select
Syllabus
Literature
Timeline
Reader
EOP-Java:
Course Timeline - Contents of Lectures
Lecture 1: Getting Started
Introduction
Programming Languages, Programming Language Paradigms
Opject-Oriented Programming (OOP)
Software Life Cycle
Software Development: Waterfall Model, V-Model, Spiral Model
The first computer programmer, short computer history
Programming languages and compilers (high-level, low-level languages)
Compiler and Interpreter
Elements of Java: Programming language, VM, API
Java Environments
Java Implementations
JDK Programming Environment
History of Java
Comparison Java vs. C#
Java File Structure
Lecture 2: Introduction to Java
Java Basics, Language comparison, Properties of Java
Java Definitions and Syntax
Syntax vs. Semantics
Java Operators
Fundamental (Primitive) Data Types in Java
Java Expressions
Java Program Structure - Control Flow
Object-Oriented Programming: Terminology: class, object, method
First Example: Hello World in Java
Programm Structure of "Hello World"
Java Comment
Lecture 3: Introduction to Java
Nassi-Shneiderman Diagrams
Sequence, Conditional Statement, Loops
Iteration: Pre-condition test, Post-condition test
Counting for-loop
Example: Power of 2, overflow problem
Java Resources, JDK 1.5, 5, 6
Java 2 SDK, Tools and Utilities
Command Line Input (CLI), args.length
String input, numerical input values
String Concatenation, "+" operator
Lecture 4: Introduction to Java
Programming Paradigms
Smalltalk
Process-oriented model, Object-oriented model
OOP mechanisms: encapsulation, inheritance, polymorphism
Member (instance) variables
Creating objects, "new" operator, instantiation
Objects and messages
Inheritance, subclassing, hierarchy
Information passing, parameter lists
Object-Oriented Design concepts: ADT - Abtract Data Type
Unified Modelling Language (UML), class diagram, generalization
Creating instances, objects
Methods, parameter passing
Constructor, constructor methods
Information hiding, "this"
Lecture 5: Introduction to Java
Method overloading, method signature, constructor overloading
Method overriding, dynamic method dispatch
Argument passing: call-by-value, call-by-reference
Java class diagrams
Modifiers and protection
Accessors: getter and setter methods
Type casting, coercion, implicit and explicit casting, widening casting
Wrapper classes
Accessing superclasses: "super"
Abstract methods
Lecture 6: Introduction to Java, Arrays
Interfaces, multiple inheritance in Java, inheritance of interfaces
Special classes, Math class
Arrays in Java, properties of arrays
Array element and index
Semidynamic arrays
Declaration, creation, initialisation of arrays, "new"
Primitive arrays, arrays of objects
Bound checking, "length" method
ArrayIndexOutOfBoundsException
Arrays and For-Loops
Common Programming Errors
Random generator, Math.random()
Multidimensional Arrays
Initialising Arrays
Lecture 7: Arrays, Exceptions
Collection taypes, dynamic arrays
String class, String methods: length(), charAt(), substring()
Comparision of strings, "equals"
Command Line Input, String args[]
Errors and Exceptions, Exception Handling
Throwable Objects
Errors, Exceptions, Runtime Exceptions
Throw, Catch
Exception types, Exception classes
Call stack
Leaf classes, node classes
Checked / Unchecked exceptions
try / catch statements
Lecture 8: Exceptions, Stream
e: exception handler parameter, available methods
Writing exemptions, sample exceptions
Stack trace
Check or specify
Java Streams, stream concept
Standard IO, error output
package java.io, IO types
Reader, Writer, InputStream, OutputStream
Abstract classes
FileWriter, "close"
Stream Exceptions, IOException
Plug-Together
Buffered File Output
Cascading Streams
DataInputStream, DataOutput
tream
BufferedReader, BufferedWriter
Keyboard Input
Scanner
Random Access
Lecture 9: Applets
Internet Programming, CGI, Applets
AWT, Swing
Building and Viewing Applets
Programming Applets, Applet, JApplet
HelloWorld Applet
Graphics, Coordinate System
Applet Methods, init(), paint()
Graphics
Example: Curve Plotting
Parameter Passing HTML to Applet
Null Reference
Special classes: Color, Font
Graphical User Interface (GUI)
Special classes: SystemColor
Classes and interfaces in package AWT
AWT structure
Font styles: plain, bold, italics
Lecture 10: Applets, Servlets
FontMetrics
FontMetrics Demo
Short introduction to the MVC-Architecture
Model, View, Controller
Short Introduction to Servlet Programming
Applet - Servlet
CGI, Servlet, Threads
CGI, Server Extension APIs, Servlet
CGI vs. Servlet
Servlet and JSP Engines
Three-Tier, Multitier Architecture
Three-Tier Servlet Model
Servlet Package / API
Lecture 11: Servlets
Servlet Interface
Client/Server Interaction
ServletRequest, ServletResponse
HTTP, Header Information
HTTP Request Header, Response Header
HTTP Methods: Get, Post, Head
HTTP Response Codes
Servlet Packages: javax.servlet, javax.servlet.http
Servlet Interface: javax.servlet.Servlet
Generic Servlet, HTTP Servlet
doGet(), doPost()
Request / Response Objects, Methods
HttpServletRequest, HttpServletResponse
Servlet Life-Cycle, init(), service (), destroy ()
PrintWriter, getWriter()
ServletConfig, web.xml
ServletContext, Methods of ServletContext
Methods of ServletRequest
javax.servlet package, javax.http.servlet package
HTTP Servlet
"Hello World" Servlet
Lecture 12: Servlets
HTTP Request Header (Servlet)
Form Handling with GET/POST
URI, URL, URN
Unicode, UCS, and UTF-8
HTTP Support Classes
Server-Side Include (SSI) with Servlets
Servlet Chaining, Servlet Filters
Session, Session Tracking, Cookies
Stateless protocol
Session tracking: Cookies, URL-rewriting, Hidden form fields
Cookie Constructor, RFC2109
Lecture 13: Servlets
Creating cookies
getParameter(), setMaxAge()
Cookie Methods
Problems with Cookies
Set Cookies, Show Cookies
Session Tracking API
Obtaining a Session
Storing and Getting data from a session
HttpSession, Life Cycle, Methods
Lecture 14: JSP
Java Server Pages
JSP Code Example, Code Errors
JSP Engine, JSP Translation and Processing
JSP vs. ASP
JSP vs. Servlets
JSP Architecture
JSPPage, HttpJspPage
Methods: jspInit(), jspDestroy(), jspService
JSP Elements: Directive, Action, Scripting
Scripting: Declarative, Scriptlets, Expressions
JSP Comment
Scripting: Implicit JSP Objects
JSP Session, Example
JSP XML-Syntax
Starting Applications: MS Excel
JSP Taglibs
Tag Handler: Tag, BodyTag
TLD - Tag Library Descriptor
Tag action methods, Tag interaction
HelloWorld Example
JSTL - JavaServer Pages Standard Tag Library
Comparison: Servlet - Java Server Pages
Combining Servlets with JSP
Lecture 15: Events, Event handling
Event Models, Java 1.0, Java 1.1
General Event Handler
ActionListener
Delegation Event Model, Event Dispatcher
Event Types: Low Level, High level
Hierarchy of Event Classes
Event handler registration
Example: KeyEvents
add<EventType>Listener
Java EventListener-Interfaces
Inner classes, Nesting of classes
Member classes, Local classes, Anonymous classes
Anonymity in Java
Listener Interfaces, Adapter Classes, Listener Methods
Virtual Key Codes
Event handling with inner (local) classes
Anonymous classes
Event handling with anonymous classes
Creating new Java event types
Lecture 16: Java Swing
Comparison AWT (Abstract Windowing Toolkit) - Swing
Swing APIs, classes, packages
JApplet
JFC - Java Foundation Classes
Architecture of the Swing Class Library
Swing Components, concept of Java peers
Heavyweight, Lightweight components
MVC - Model-View-Controller Architecture
Java UI Delegate
PLAF - Pluggable Look and Feel
Example: JButton
Swing structure: RootPane
Swing Components
Layout Managers
Lecture 17: Java Thread Programming
Java Threads - Concurrent Programming
Concurrency vs. Parallelism
Threads and Parallelism
Implicit threads in AWT and Swing
Java Thread Definition
Thread Implementation: class Thread, interface Runnable
Methods of class Thread; start(), sleep(), join(), yield()
deprecated methods
Thread States (life cycle): Java 1.2, 1.3 and up
Lecture 18: Java Thread Programming, Java Extensions
Starting threads vs. simple method call
Problems: producer/consumer, race condistions
Thread synchronisation
Context switch
Atomicity in Java
Monitors (Charles Antony Richard Hoare)
Object locking (synchronized), signalling between threads
Synchronization Methods: wait(), notify(), notifyall()
Ending a thread: interrupt(), isInterrupted(), join(), yield()
Deprecated methods to stop a thread: stop(), suspend(), resume()
Daemon Threads, setDaemon()
Thread priorities
Applets and threads
Programming errors: Deadlocks
Deadlock examples
Grouping threads
Java Extensions (JDK 1.5 and up)
Parametric Polymorphism for Java: Java Generics
Lecture 19: Klausurvorbereitung
Überblick über die Themen der Veranstaltung
Schwerpunkte
Beispielklausur