Lecturer, Tutors, and Peers
Your lecturer, tutors, and your peers are all important resource:
Lecturer
As your lecturer, I will do my best to help you succeed in this course. However, it's up to you to make the most of what I have to offer. You can do this at least four ways:
- Attend and engage in lectures. Ask questions.
- Talk to me about your questions during the break in the Tuesday lectures.
- Come and see me during office hours (12:00-1pm, Tuesdays, N217, CSIT).
- Email me with "[COMP1110]" in the subject line.
Tutor
Your tutors are experts and are here to help you. Make the most of this by attending and engaging in your scheduled labs.
The course tutors are as follows:
| Tue 09a | Tiejun Gao |
|---|---|
| Tue 09b | Frank Su |
| Tue 16a | Frank Su |
| Tue 16b | Alvin Leonard |
| Wed 09a | Tiejun Gao |
| Wed 09b | Karsten Lehmann |
| Thu 10 | Malcolm Macdonald |
| Fri 10 | Malcolm Macdonald |
Your Peers
Engage with your class mates and group members. Use the forums. If you don't understand something, ask others. Explaining something to one of your peers will help deepen your understanding.
Text Books
This course does not make use of a single text book. Rather, I recommend that you consider the five textbooks below (one of which is free), and the online resources, and decide which of these are the best match for your needs. You are not required to purchase any book.
- Thinking In Java, Bruce Eckel (4th Edition), available from the Co-op bookshore.
This book is comprehensive and highly regarded. I cross-reference it heavily from the lecture notes.
- Thinking In Java, Bruce Eckel (3rd Edition), available for download and online.
- Head First Java, Kathy Sierra and Bert Bates, available from the Co-op bookshore.
This book is very popular and covers the material well, and does so in a very approachable style. I highly recommend you consider this book. I cross-reference the book heavily in my lecture notes. I could not find a paper copy, but instead purchased the ebook from the Co-op.
- Effective Java, Joshua Bloch (2nd Edition), available from the Co-op bookshore.
- Killer Game Programming in Java, Andrew Davison, available from the Co-op bookshore.
The great thing about this book is that it is freely available. However, it is slightly outdated, only covering up to Java 2 (we're studying Java 7). One or two important concepts are not covered in this version of the book, but it remains an excellent resource.
This book is absolutely outstanding, but is not required. It takes you well beyond the material covered in this course. However, if you're interested in doing more Java, I highly recommend that you buy this book sooner rather than later.
This is is not essential, but it covers important issues of game design, so may help with this course and may be of interest to those who have a broader interest in games programming. I could not find a paper copy, but instead purchased the ebook from the Co-op.
Online Resources
The material covered in this course is the subject of a large amount of online material, some of which is high quality. I encourage you to read widely, use diverse resources, and adopt a learning style that suits you.
Java
Oracle has developed a rich set of Java tutorials. I will use the Learning the Java Language trail as part of the rapid introduction to Java in the first few lectures of the course. We cover a lot of ground at the start of the course, so you may find it helpful to work through the tutorials in your own time. You may also find the larger set tutorials useful beyond the first few weeks; they are generally well designed and thorough. (Note that the Swing tutorial is not relevant to this course because we are using Java FX, which replaces Swing.)
Java FX
Oracle has also produced some good Java FX tutorials. You may find the tutorials on creating visual effects, transformations and transitions and timeline animation useful. The tutorials include a beautiful and detailed example of a tree animation, which is worth reading even if you don't follow it all. These tutorials are not as mature as Oracle's Java tutorials, but they are nonetheless a very useful reference. I recommend you use them.
Tools
Successful completion of this course will require mastery of basic Eclipse and Mercurial skills, the two main tools we will use. Not a lot of class time will be devoted to teaching you these -- you are expected to learn these tools yourselves. Fortunately there are some very good online resources to help you with each of these. I recommend you use them.
Eclipse
Eclipse is a large and powerful IDE. Lars Vogel has an extensive online tutorial. Mark Dexter has created a series of video tutorials for Eclipse. The first set is for people developing Java in Eclipse who are new to both. Mark has also created more advanced tutorials, which you may find useful including Using the Eclipse Workbench and Eclipse and Java: Using the Debugger.
Mercurial
Joel Spolsky has created a very nice set of tutorials on how to use Mercurial. I encourage you to use the MercurialEclipse plugin when you're using Eclipse, but understanding how to use Mercurial from the command line is valuable. You should gain a good appreciation for how to use MercurialEclipse by following the lectures. I explained the basics during lectures 1 and 2.
