Programming in Java
About
- Course: Programming in Java (320341)
- Semester: Fall 2015
- Instructor: Jürgen Schönwälder
- TA: Nicholas Lee
- Class: Thursday, 17:15-18:30, West Hall 2
- Class: Friday, 17:15-18:30, West Hall 2
- Start: 2015-09-03
Content
Java is an object-oriented programming language which is very widely used for the development of applications running on the Internet, and in particular electronic commerce applications. Java has some unique features such as platform independence and a very rich set of reusable class libraries. This course introduces the core language and the most important core Java packages.
Resources
-
Slides
- Introduction
- Fundamental Structures
- Object Oriented Programming
- Arrays
- Packages
- Exceptions, Logging, Assertions
- Inheritance, Polymorphism, Abstract Classes
- Interfaces, Inner Classes
- Collections
- I/O (Streams, Reader, Writer, Serializable)
- Concurrency (Threads, Locks, Callable, Future)
- Network Programming
- Event Handling
- Swing User Interface Components
- More Swing User Interface Components
- Database Programming using JDBC
- Maven - a software project management and comprehension tool
- Introduction to Android (Kenneth M. Andersoon)
- Source
- Piazza
Schedule
Thu (17:15) | Fri (17:15) | Topics |
---|---|---|
2015-09-03 | 2015-09-04 | Introduction, Fundamental Structures |
2015-09-10 | 2015-09-11 | Object Oriented Programming |
2015-09-17 | 2015-09-18 | Object Oriented Programming, Arrays |
2015-09-24 | 2015-09-25 | Packages, Exceptions |
2015-10-01 | 2015-10-02 | Inheritance, Access Modifiers, Polymorphism, Interfaces |
2015-10-08 | 2015-10-09 | Collections, maven |
2015-10-15 | 2015-10-16 | junit, I/O, Streams, Reader, Writer, Serializable |
2015-10-22 | 2015-10-23 | Threads, Locks, Callable, Future |
2015-10-29 | 2015-10-30 | Network Programming, Event Handling |
2015-11-05 | 2015-11-06 | Swing User Interface Components |
2015-11-12 | 2015-11-13 | Spring Framework: Dependency Injection and Aspect Oriented Programming |
2015-11-19 | 2015-11-20 | Relational Database Access (JDBC, Hibernate) |
2015-11-26 | 2015-11-27 | Introduction to Hadoop |
2015-12-03 | 2015-12-04 | Java Hacks and Wrap Up |
Dates
Date/Due | Name | Topics |
---|---|---|
2015-09-18 | Sheet #1 | Java compiler and VM options, Collatz sequences |
2015-09-25 | Quiz #1 | primitive types, initializers, constructors, exceptions |
2015-10-06 | Sheet #2 | processing JSON encoded network flow records (data-json.zip) |
2015-10-09 | Quiz #2 | classes, interfaces, inheritance, nested classes, generics, collections |
2015-10-23 | Quiz #3 | input/output, threads |
2015-10-30 | Sheet #3 | advanced flow record processing (timed flow bins, quantiles, gnuplot data files) |
2015-11-06 | Quiz #4 | network programming |
2015-11-16 | Sheet #4 | advanced flow record processing (AS lookup, grouping of flow records) |
2015-11-20 | Quiz #5 | graphical user interfaces, event handling, model-view-controller, observer/listener |
2015-12-04 | Quiz #6 | beans, annotations, databases |
2015-12-08 | Sheet #5 | persistent storage of flow results using relational database tables |
2015-12-21 | Final Exam | 09:00-11:00 Lecture Hall Research III (closed book) |
Rules
The final grade is made up of the final exam (40 %), biweekly quizzes (30 %) and some homework assignments (30 %). It is required to submit the solution for homeworks assignments electronically. Late submissions will not be accepted. Homeworks may need to be defended in an oral interview.
Any programs which have to be written will be evaluated based on the following criteria:
- correctness including proper handling of error conditions
- proper use of programming language constructs
- clarity of the program organization and design
- readability of the source code and any output produced
Source code must be accompanied with a README providing an overview of the source files and giving instructions how to build the programs. A suitable Makefile or Maven POM file is required if the build process involves more than a single source file.
For any questions stated on assignment sheets, quiz sheets, exam sheets or during makeups, we by default expect a reasoning for the answer given, unless explicitely stated otherwise.
The policy on makeup quizzes is the following: There won't be any quiz makeups. If you (a) get an official excuse for a quiz from the registrar's office or (b) approach we well in advance of the quiz with a very good reason for not being able to participate (e.g., because you take a GRE computer science subject test at the day of a quiz), then the weight of the final exam will be increased according to the weight of the quiz you got excused for.