This Course Guide has been taken from the most recent presentation of the course. It would be useful for reference purposes but please note that there may be updates for the following presentation.
COMP S811
Advanced Java Programming
Introduction |
|
Welcome to COMP S811 Java Programming for Web Applications, Enterprise Computing and Mobile Devices.
COMP S811 is a two-semester, ten-credit postgraduate-level course for the Master of Science in Information Technology with Internet Applications (MSCITIA). The course assumes knowledge of at least one programming language such as C/C++ as well as basic knowledge of the Internet. Previous experience with Java is preferable but not essential. In the latter case, you are expected to put in additional effort and self-study Java programming during the course with the help of Unit 1, the reference books, and external materials.
The course is designed to provide you with a foundation in Java programming and knowledge and skills in Java application development in the following areas:
-
desktop applications
-
distributed computing
-
mobile computing
-
enterprise computing.
These areas are identified as the key application areas of Java. The re-development plan covers, to different extent, the Java SE and EE platforms and the Android mobile platform. This enables you to understand how various Java technologies can be applied in practice.
Purpose of this Course Guide
This Course Guide tells you briefly what the course is about and how you can work your way through the material. It suggests the amount of time you will likely need to spend in order to complete the units and the course, and it will give you a general idea of when your tutor-marked assignments are due. For detailed information on assignments, however, please refer to the Assignment File, and for information on the cut-off dates (due dates) for work to be submitted, please refer to the Presentation Schedule. In this Course Guide you will also be given information on the types of support you can expect receive on the course.
As this course might be the first course that you have taken through the Open University of Hong Kong (OUHK), you might not be aware of both the study skills required for distance learning and how OUHK courses are organized. It is recommended, therefore, that you read this Course Guide thoroughly before looking at the study units or your textbook. If you have taken OUHK courses before, you should be already well aware of both the study skills required for distance learning and how OUHK courses are organized — you should also read this Course Guide thoroughly before looking at the course material.
In distance learning as practised by the OUHK, the study units are coordinated and prepared in the distance mode of education by your university 'professor'. You do not need to attend lectures face-to-face with the lecturer or professor. This is one of the great advantages of distance learning: you can read and work through specially designed study material at your own pace at times and places that suit you best.
Think of it as reading the lecture instead of hearing it from a lecturer. In the same way that a lecturer might give you some reading tasks to do, the study unit will tell you when to read your textbook or other material. In the same way that a lecturer might give you an in-class exercise, your study unit will have exercises/self-tests for you to do at appropriate points. You are also likely to find review questions at the end of each unit. Do them all, as these exercises and questions would give you the practice necessary to achieve the objectives of the course and to pass the examination. Even when you 'make notes' in a direct face-to-face lecture, you are advised to study those notes, and to read and to think about them in relation to your textbook. In the distance mode of education, the course materials replace the live lecture notes.
Course aims
The aims of this course are to provide you with the knowledge and expertise to:
Learning outcomes
Upon the completion of the course, you should be able to:
-
Apply advanced Java features in application development.
-
Design and develop GUI applications using Swing or applets.
-
Design and develop client/server systems using sockets, datagrams or RMI.
-
Design and develop Web applications using servlets or JSP.
-
Apply EJB, JMS, JDBC, JPA or XML in system development.
-
Design and develop mobile applications for Android devices.
- Evaluate the strengths and weaknesses of Java technologies for meeting given users' requirements.
Working through this course |
|
This is the nuts-and-bolts, informative section, providing information such as what materials are needed, and how the assignments and marking are arranged. Please read it carefully.
Course organization
The relationship between units and the application areas is shown in the following table:
Application areas |
Units |
Platform/API |
Fundamental and desktop |
Units 1, 2, 3, 6 |
Java SE |
Distributed computing |
Units 4, 5 |
Java SE |
Mobile computing |
Units 7, 8 |
Android |
Enterprise computing |
Units 9, 10, 11 |
Java EE |
Each study unit will start with an introduction that outlines how the unit is organized and what and how you are expected to learn. After that, the main text of the study unit will be broken down into a number of topics. In each individual topic, besides text covering major issues of the topic, readings, online references, activities, and self-tests will be provided.
There are usually four major types of activities:
-
Tooling setup: You are instructed to install and otherwise set up software for developing the programs of the unit. For example, in Unit 1 there are activities that ask you to set up the Java Software Development Kit (SDK) and the Eclipse Integrated Development Environment (IDE) that are used throughout the course.
-
Working with codes: This asks you to compile and then execute the Java source codes from the unit. This type of activity verifies that what you have just learned works in real situations. For more sophisticated sources, it also gives you hands-on experience in programming and implementing advanced applications. Hints and possible pitfalls in dealing with the source codes will be given to you according to the course developer's own experience.
-
Programming exercises: For certain topics, you will be asked to modify the source codes or write a segment of your own code. Sample solutions and discussions will be provided after this type of activity.
- Probing further: This type of activity directs you to websites relating to the topics you have just learned. This kind of activity is like bringing you to some sort of exhibition or trade show to learn who's who and what's what. Questions will then be asked to test how much you have gained from this.
At the end of each study unit, there will be a summary of the main points of the unit, followed by suggested answers to the self-tests.
Course overview
The following chart gives a general overview of the course structure.
Unit |
Title |
Study time (weeks) |
Assignment |
1 |
Object-oriented programming with Java |
3 |
Assignment 1 |
2 |
Java APIs and testing practices |
3 |
3 |
Graphical user interfaces |
3 |
4 |
Socket and client/sever programming |
3 |
Assignment 2 |
5 |
Datagram and multicast networking and remote method invocation |
3 |
6 |
Processing XML with Java |
3 |
Assignment 3 |
7 |
Android fundamentals and GUI programming |
4 |
8 |
Developing Android applications |
3 |
9 |
Servlets and JavaServer Pages |
3 |
Assignment 4 |
10 |
Java database and persistence programming |
3 |
11 |
Developing business components with Java |
3 |
|
Revision |
2 |
|
|
Total |
36 |
|
What you should know
The course assumes knowledge of at least one programming language as well as basic knowledge of the Internet. This course uses Java as the development platform.
If you have no experience or general knowledge of Java, you are required to self-study Java throughout the course. The course will cover advanced Java programming and therefore you are required to have good knowledge of fundamental Java programming including object oriented programming, and some fundamental classes in the java.lang and java.util packages.
Your learning effort should include using the overview given in Unit 1, plus reading extra materials such as some Java tutorials provided on the Internet and the suggested reference books.
What you will need
Not much! Time, patience -- and a PC, of course! To facilitate your study of the subject matter, you will need a PC with the following minimum specifications:
-
Intel dual-core 2GHz processor
-
2GB RAM
-
3GB of free disk space
-
Internet access
-
Other standard features such as keyboard, mouse, and sound card.
You will be provided with various course materials including printed study units. The details of the course materials you will receive are discussed below.
Course materials
Printed materials
The main printed material for this course is in the form of study units. There are a total of 11 study units. Don't panic if you don't receive all 11 study units in the first batch. Some of them will be sent to you later. Please read the checklist for the material included in each mailing to make sure what is supposed to have been sent is all there.
Every unit includes four different ways to help you to study:
-
reading the materials provided in the study guide
-
studying the assigned readings
-
working on the self-tests and activities
-
completing the assignments.
Textbook
There is no compulsory textbook for the course.
Reference books and online resources
Java basics and SE:
-
Ivor Horton, I (2011) Beginning Java, Java 7 Edition, Wiley, ISBN 978-0-470-40414-0.
-
Deitel, P and Deitel, H (2011) Java How to Program, 9th edn, Prentice Hall, ISBN 978-0-13-257566-9.
-
Horstmann, C S and Cornell, G (2012) Core Java Volume I Fundamentals, 9th edn, Prentice Hall, ISBN 978-0-13-708189-9.
-
Horstmann, C S and Cornell, G (2012) Core Java Volume II Advanced Features, 9th edn, Prentice Hall, ISBN 978-0-13-708160-8.
-
Harold, E R (2005) Java Network Programming, 3rd edn, O'Reilly, ISBN 978-0-596-00721-8.
-
The Java Tutorials -- http://docs.oracle.com/javase/tutorial/
-
Eck, D J, Introduction to Programming Using Java, 6th edn, version 6.0.2 -- http://math.hws.edu/javanotes/
-
Downey, A B, Think Java – How to Think Like a Computer Scientist -- http://www.greenteapress.com/thinkapjava/
-
Sedgewick, R and Wayne, K, Introduction to Programming in Java -- http://introcs.cs.princeton.edu/java/home/
- Eckel, B, Thinking in Java, 3rd edn -- http://www.mindviewinc.com/Books/downloads.html
Java EE:
Android:
Non-print media
The source code for all example programs will be available on the course homepage. Up-to-date information will also be posted on the homepage.
Course assessment
The course uses assignments and a final examination as the two major means of formal assessment of your performance. Assignments serve as the continuous assessment during the study period and account for 50% of the total course assessment. A final examination conducted at the end of the course accounts for the other 50% of the total course assessment.
The assessment items are outlined in the following table.
Assessment type |
Marks |
Four assignments The scores for the best three assignments will count toward the final assessment. |
50% (16.67% each × 3) |
Examination The three-hour examination will comprise compulsory short questions and four long questions. For the long questions, only the marks of the best three assignments are counted into the score of continuous assessment. |
50% |
Total |
100% |
To pass the course, you are required to obtain at least 40% or above on the average of assignment scores and 40% or above in the final examination.
Assignments
There are four assignments for this course. Each assignment you complete must be submitted to your tutor by a means specified in the Assignment File. It will then be marked by the tutor and returned to you. You will also receive comments and feedback from your tutor.
You must download the assignment files from the Online Learning Environment (OLE). Each of them should be available at the latest one month before the cut-off date. You would then have at least four weeks to work on the assignment. Please check the Online Learning Environment regularly for the availability of the assignment files.
You must submit the assignments on or before the cut-off dates. It has been found that submitting the assignments on time has a positive impact on course performance. Late submission is likely to ruin your study schedule planning and disrupt your progress. Only in the circumstances of sickness (with medical proof), long business trips (at least a week long that happen within two weeks of the cut-off date), and exceptional events would your application for an extension be considered (though not necessarily granted, please note). If you happen to be in such an unfortunate situation, please follow the instructions outlined in the Assignment File. No marks will be awarded for any late assignments without prior approval obtained from the tutor, Course Coordinator or the Dean. Your tutor is authorized to grant an extension up to seven days only.
Among the four assignments, only the marks of the best three assignments are counted into the score of continuous assessment. The score for the continuous assessment contributes 50% of the total course mark. The schedule is as follows:
Assignment |
Assignment areas |
Date of submission |
OCS Marks |
1 |
Units 1-3 |
At the end of Unit 3 |
16.67% |
2 |
Units 4-5 |
At the end of Unit 5 |
16.67% |
3 |
Units 6-8 |
At the end of Unit 8 |
16.67% |
4 |
Units 9-11 |
At the end of Unit 11 |
16.67% |
Examination
At the end of the course, you are required to attend a final examination. The examination aims to test your thorough understanding in the areas covered in the course. The examination will be a three-hour, closed book written examination.
The total score of the examination paper contributes 50% of the total overall course score (OCS).
Teaching and learning support |
|
There are two ways for providing support for you during the course -- through direct personal contact and through electronic means.
Direct personal contact support
The course supports you through telephone tutoring, tutorials and surgeries.
Tutors and tutorials
The course includes 12 tutorial meetings of two hours each -- 24 contact hours in total. The tutorials are not conducted using a lecture presentation, but are conducted to provide an opportunity for you to receive some course progress guidance from the tutors. In addition, you have an opportunity to share your study experiences and difficulties in your peer-to-peer group discussions.
It is not compulsory to attend tutorials. However, it is strongly recommended that you attend all tutorials because they provide considerable assistance in your study of this course. Moreover, you will have the chance to meet other distance learners who are studying at the OUHK.
You will be assigned to a tutorial group led by a tutor. The tutors at the OUHK are often part-time IT professionals who are interested in teaching. They have good work experience and will be able to share valuable observations and knowledge with you.
Your assignments will be marked and commented on by your tutor, who will keep an eye on your progress and assist you if you encounter problems during the course.
Details of the dates, time and location of the tutorials as well as the name and phone number of your tutor will be sent to you in due course.
Surgeries
Surgeries are different from tutorials in that they are designed at a more personal consultation level. An on-duty tutor will chair each surgery session. You should prepare and bring along your own individual study problems. You can then discuss them with the tutor and gain insights into the problems or learn the direction in which a solution could be found.
Some on-duty tutors may speak to the whole group of students, so that the problem and solution of one student can be shared with others. It might happen that the problem discussed is also the one that you have!
Telephone tutoring
When you have any difficulties in your studies, you may consult your tutor by telephone in the assigned time slots. A tutor will set aside four hours each week to handle consultations. During the telephone tutoring, you can seek advice on the study topics, clarification on the textbook, guidance on assignments, and help in preparing for the examination. Sometimes, a tutor may be busy discussing with other students and you might not get through. You are encouraged to resort to other means such as the discussion forum or email.
Many students in the past felt that discussing computing over the telephone was difficult. Your tutor may prefer email and the discussion board in the OLE. He or she will let you know the best way to work with your tutor.
Electronic means
Discussion forum
A discussion board will be established in the OLE for you to debate the study topics as well as to share your learning experiences. In a distance-learning course, you may find the opportunities to meet with other learners are rather limited. This channel provides some remedy for this deficiency.
The discussion forum for this course has been very active and has prospered during the last few presentations.
Electronic mail
You may also submit your study problems to your assigned tutor through email. This channel provides flexibility to both you and the tutor in overcoming the limitations of telephone tutoring in solving more technical issues.
Course website
The course website will disseminate the latest information on the course, course announcements, course scheduling, and assignment distribution. The Course Coordinator and the teaching assistant will also provide supplementary learning materials that should help your learning of some selected topics.
Summary |
|
COMP S811 Java Programming for Web Applications, Enterprise Computing and Mobile Devices is a two-semester, ten-credit Postgraduate level course for the Master of Science in Information Technology with Internet Applications (MSCITIA). The course assumes knowledge of at least one programming language such as C/C++ as well as basic knowledge of the Internet. Previous experience with Java is preferable but not essential.
This is a rather long introductory document but everything important has been covered. From time to time, you will see notices and documents posted on the course website to keep you up-to-date with the course.
We wish you success in this course and trust you will enjoy a challenging and inspiring learning experience.
A note about the course developers |
|
Kendrew Lau Chu-man
Kendrew Lau Chu-man has developed various types of systems in his career, ranging from visualization and simulation applications to wireless telephone systems. He received his Bachelor of Engineering (Honours) and Master of Philosophy, both in Information Engineering, from the Chinese University of Hong Kong, and holds Java certifications of SCJP, SCWCD, SCBCD, SCDJWS, and SCSNI. He has taught Java programming and computing subjects at the City University of Hong Kong and other universities, and operates a consulting business focusing on system development. His recent interest is in developing Web applications and mobile applications in Blackberry Playbooks and Android devices.
Dr Steven Choy Sheung-on (developer of a previous version)
Steven Choy Sheung-on received a PhD degree in Information Engineering from the Hong Kong Polytechnic University in 1998. He worked as a research fellow in the Department of Electronic and Information Engineering of the Hong Kong Polytechnic University from 1998 to 1999. He was then a lecturer in the Department of Computer Science of Caritas Francis Hsu College before joining OUHK as a lecturer in 2002. Dr Choy has published papers in various international journals and conferences. His research interests include digital image processing, image and video data compression, and computer vision and graphics. His current research is on Internet programming and multimedia technology.
Dr Siu Fan Wu (developer of a previous version)
Wu Siu Fan received his BSc(Hons) in Physics/Microcomputing and PhD in Electrical and Electronic Engineering, both from the University of Surrey, UK. His doctoral research was sponsored by Philips Research Laboratories on the application of motion compensation to HDTV. He then worked as a research scientist in Canon Research Centre Europe on sound field visualization and digital signal processing. His teaching career started as a lecturer in Singapore Polytechnic and he is currently teaching in the Department of Computing and Information Management, Institute of Vocational Education (Chai Wan).