Skip to main content
Department of Information Technology

User interface programming I

Code
1MD002
Period
Spring 2014
Formal
Course plan
Teachers
Lars Oestreicher, Filip Malmberg and Fredrik Wahlberg

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 aesthetics or graphic design, and neither on the intrinsics of a specific programming language (although we will dive into graphics programming toolkit Swing, which is based on Java).

Various techniques used in user interface development will also be focused in the course. Some keywords: Model-View, multi-threaded user interfaces, interrupt control, language independent applications, Design patterns, Shortcuts, Actions, Renderers.

All of the development for this course 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 much 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.

As an addition we have added a practical part of project management to the course. This will be handled through a social project management platform (Podio.com) that encourages co-operative agile development. The intention with this is to give you a flavour of real world project management, as well as help you plan and structure your team efforts.

News

Here we will post news whenever there is something you have to notice.

2014.02.03 New page containing descriptions of lectures. See menu to the left.
2014.02.03 Groups have been updated, please notify me about changes in the groups
2014.01.21 Website opened. Don't forget to get registered on the web.

Language and Software

Programming Language

The course will be using Java and Swing as medium for the teaching. However, it is not a Java course. Java is only the application language. Java is free to use and has a very transparent structure, especially when it comes to the Swing library. You should be knowledgeable about basic object-oriented programming prior to the course, and you should be acquainted with Java.

Why Java?

There has been some complaints on this course for the use of Java as the implementation language. First, we should note that Java programming is not the topic of this course. The language could have been any that would provide a suitable cross platform user interface design toolkit. The reason for choosing Swing is that it is a very transparent interface kit, which is possible to study behind the surface.

Can I use another language?

No, not for this course. We need to get into the detailed structure of the user interface management system and this becomes difficult in case you are looking into other toolkits, such as Qt or TKinter. For the purpose of understanding the intricacies of User Interface Programming the Swing package is one of the more clearly defined and worked out. Therefore we will only support Swing in this course.

Software

In order to do the programming you are recommended to use a suitable programming environment, IDE. Two of the most common IDEs for Java are Netbeans and Eclipse. You can use either of these, since we will not be using the interface designers of the IDEs.

Tutorials

To refresh your Java skills you are advised to go through some suitable tutorials. The following are good for starters:

Oracles Java tutorials
Goes through the basic concepts and how these are used in the programming situation. You will most likely 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.

Oracles Swing Tutorials
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.

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.

Updated  2014-02-03 11:47:35 by Lars Oestreicher.