Course Timeline - Content 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 Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 1
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" Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 2
Command Line Input, String args[] Errors and Exceptions, Exception Handling Thowable 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, Streams 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 Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 3
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/POS URI, URL, URN Unicode, UCS, and UTF-8 HTTP Support Classes Server-Side Include (SSI) with Servlets Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 4
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 Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 5
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 Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 6
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 Fachhochschule Kiel: Course Timeline von www.fh-kiel.de generiert am 05.01.2017 7