User interface programming I
- Code
- 1MD002
- Period
- Spring 2012
- Formal
- Course plan
- Teachers
- Lars Oestreicher Simon Tschirner and Mikael Laaksoharju
About this course
This course is about the implementation aspects of user interfaces. It gives a detailed view of different strategies and techniques involved in user interface design. The main focus is on the development and implementation of User Interfaces - not on the esthetics or graphic design.
Various techniques used in user interface development will be used in the course. Some keywords: Model-View, multi-threaded user interfaces, interrupt control, language independent applications, Design patterns, short keys, Actions, Renderers.
All of the development is to be done in Java and Swing. Programming skills in Java is a prerequisite for this course, but the assignments and some exercises will give you opportunities to practice your skills during the course. However, since the course is a based on practical experience, and assignments, the student will be expected to spend time at the keyboard, both individually and in project groups.
In order to make sure that you know the basic Java programming techniques we advice you to work through some of the Swing Tutorials that we have listed below. Preferably you should do this before the course starts. Make sure that you have understood the ideas behind the examples as well.
Contents
- News
- Schedule
External link to TimeEdit.
- Literature
- Java Sources
- Tutorials
- Code Samples
News
2012.03.05 Updated information on Assignment 3 - new deadline 2012.03.05 23.59, and on the review report for review number 3. New deadline for the report is 2012.02.09 17.00. Also some more instructions about the report content have been added.
2012.03.05 Reminder: NO SEMINAR TO DAY, due to Lars being home with a flu. Instructions have been sent out by email.
2012-03.02 Lars is home, due to a flue. This means that there are changes in the final weeks. I have sent out an email about this yesterday. If you haven't received it please let me know, as soon as possible.
2012.02.22 There is a new code sample uploaded to the Code Archive. The newest sample is an ImageIconLoader, which makes it easier for you to use external image resources. Thanks to Joakim Olsson.
2012.02.07 The hard deadline for assignment 1 will be extended to Friday, February 10. Please note that you may still start working on assignment 2 from now (see below)!
2012.02.07 There will be a lecture about some of the stuff in Assignment 2 on Friday, February 10, 10-15. Note that there is a time for tutoring after lunch. Project leaders have to come, other group members are welcome, but it is not mandatory.
2012.02.07 The description of Assignment 2 has now been uploaded. Please read the description before the lecture on Friday 10 - 15.
2012.02.01 Todays supervision will be in room 1145 between 10 and 12, and in room 1112 between 13 and 15.
2012.01.19 I realised that I have said the wrong day and date. Assignment 0 (Assignment Intro) should be handed in on MONDAY, January 23rd.
2012.01.18 I have added the first groups to Studentportalen. Please keep sending in your group constellations. Some people have not been entered, since the registrations seem to be missing. I will check into that tomorrow, Thursday.
2012.01.09 The home page has been initialized. Some information is still missing, but will be added during the week. Keep this page bookmarked
Lecture/Occasion Content
No |
Date |
Room |
Teacher |
Subject |
Lecture Notes |
---|---|---|---|---|---|
1 | 2012.01.16 | 2446 | Lars Oestreicher | Introduction | Lecture notes![]() |
2 | 2012.01.17 | 1111 | Lars Oestreicher | Hints for Assignment 1 | Lecture Notes![]() |
3 | 2012.01.19 | 1111 | Lars Oestreicher | Java Priming 1 | Lecture Notes![]() |
4 | 2012.01.20 | 1311 | Lars Oestreicher | First Weekly Group Meeting | |
5 | 2012.01.23 | 1211 | Lars Oestreicher | Java Priming 2 | Lecture Notes![]() |
6 | 2012.01.25 | Lars Oestreicher | Documentation of Programs and Code | Lecture Notes on Documentation ![]() |
|
7 | 2012.01.27 | 1111 | Lars Oestreicher | Model View Control & Second Weekly Group Meeting | Lecture Notes on MVC![]() |
8 | 2012.01.31 | 1111 | Lars Oestreicher | Final Checkups - Java Primer 4 | Lecture notes![]() |
Hints for assignment 2 and Internationalisation![]() |
Literature
Most Java literature is usable, as long as it is using Swing. Just a Java book without Swing is not sufficient. There is also a lot of material available on the web, which is why we have chosen not to have a specific course book.
Java sources
One of the best books about Java and object-oriented programming is Thinking in Java by Bruce Eckel. It's also freely available on the net for download. See also the tutorials below.
- Thinking in Java, Bruce Eckel. 1000+ pages).
Javadoc is an essential source of information when developing in Java. Your code has to be documented with Javadoc:
- Java API
(External/Sun)
Java and XML
- [1]
- On the use of Java for handling XML-source files, using Document Object Models. This 6tutorial uses the example of an address book (that was a hint).
- [2]
- A brief but useful description of what XML is. This tutorial also uses the address book as an example (Hint number 2).
Tutorials
To refresh your Java skills you are advised to go through some suitable tutorials. The following are good for starters:
- Sun's Java tutorials
- Goes through the basic concepts and how these are used in the programming situation. You will not be able to go through this course if you are not knowledgeable of this information.
To refresh your Swing skills we advise you to look at the following page with a similar set of tutorials for the Swing package.
- [3]
- Has a series of good tutorials on the main issues with Swing. However, note that there is a special tutorial on how to program Swing applications in NetBeans. That tutorial uses the Design view! In your assignments you are not allowed to use the Design view for this purpose.
Code Samples displayed during lectures