List of courses
- Enterprise Systems (2011-12)
- Internet Computing Workshop (part 2)
- Fundamentals of Computer Science; Intro to CS
- Software Systems Components
- Distributed Systems
- Extended Distributed Systems
Enterprise Systems (2011-12)
Syllabus Page for the module
Assessment consists of two parts:
1) Course work (70% of the final mark). Three examinations are involved:
- JDBC (5%)
- Hibernate (30%)
- Spring and Spring security (35%)
2) Mini project in form of a group project (groups of 5 students) to investigate and study further technologies. There are two deliverables:
a) 30-45 minutes lecture/presentation (last week of the term)
You will describe your findings and their relationship with the rest of the course. In particular, the motivation behind the creation of the technologies, its strength and weaknesses and competing technologies. You will illustrate the architecture of tools, frameworks, possible API, any methodology involved and your personal evaluation of the technology... I will help you in planning your presentation.
b) a complete piece of software
We will have weekly supervision meetings and during the course of term you will develop a working software and demonstrate it during the last week of the term.
Important dates
24 Jan 2012: Final Decision on the project topic and group members
25 Jan 2012 (Wednesday): JDBC exam (5% of mark)
27 Jan 2012 (deadline 22:00): Report 1 submit by email
8 Feb 2012: Software spec and final decision of
deliverables
10 Feb 2012 (deadline 22:00): Report 2 submit by email
22 Feb 2012 (Wednesday): Hibernate exam (30% of mark)
24 Feb 2012 by 22:00 (deadline 22:00): Report 3 submit by
email
9 March 2012 by 22:00 (deadline 22:00): Report 4 submit by email
14 March 2012 (Wednesday): Spring and Spring security exam (35% of mark)
16 March 2012 (deadline 22:00): Slides for the talk
submit by email
Report form is available form here. Submit to my email address bxb [at] cs.bham.... . Don't forget to start the subject of your email with "ES11-12:...."
Demonstrators and Lab sessions to help with the course work
There are three demonstrators Osama Al-Hassani (O.Al-Hassani [AT]cs.bham.ac.uk), Benjamin Dobschin and Hasan Quono. They will be available in the labs to help you with the exercises, setting up your systems...
Lab sessions
You are strongly advised to attend as many lab hours as you can to take advantage of the demonstrator (and classmate) support available.
| Day | Time | Room |
| Wednesdays | 14:00-17:00 | LG04, Computer Science |
| Fridays | 14:00-16:00 | LG04, Computer Science |
Books and online help
There is a wide range of online material, books and tutorials available about Hibernate and Spring. . Among other books, I have found the following books particularly helpful:
Introducing the module
- Slides for Lecture 01 , Handout for Lecture 01 (4 slides per page)
JDBC
If you are new to PostgreSQL, there is nice tutorial by Alan Sexton. We are making use of his running example. Play with the sample codes and exercises to get up to speed with PostgreSQL.
- Slides for Lecture 02 , Handout for Lecture 02 (4 slides per page)
Description of the Car Fleet Management example.
-
Slides for Lecture 03 , Handout for Lecture 03 (4 slides per page)
JDBC Exercise: The exercise is based on the Car Fleet Management. We have a script for creating a database that you can play with. Another script can be used to drop the database so that you can start fresh. A sample solution(zip file) and sample solution(tar file) for a part of exercise is available.
How to access the School's PostgreSQL DB from outside school's network (including wireless network)
Hibernate
-
Slides for Lecture 04 , Handout for Lecture 04 (4 slides per page)
-
Slides for Lecture 05 , Handout for Lecture 05 (4 slides per page). In this lecture we discussed a simple example for you to familiarize yourself Hibernate. Download the source for MessageExample. You also need the libraries for Hibernate. Click here to download the Hibernate libraries which we have used in the exercises. Hibernate libraries are also available on the school's server:
/bham/common/java/packages/hibernate-3.2
/bham/common/java/packages/hibernate-3.2/lib
/bham/common/java/lib/If you have any questions ask for help during the Friday lab sessions.
Assessment 1 on JDBC: Please download the files here. You MUST use these files INSTEAD of the files provided in the exercises.
Resuming Hibernate Lectures:
Slides for Lecture 06 , Handout for Lecture 06 (4 slides per page). In this lecture we talked about Sample_SixSteps which builds on the Hello World example MessageExample.
Slides for Lecture 07 , Handout for Lecture 07 (4 slides per page)
Hibernate Exercises (Car Fleet System)
Download the exercise sheet from here. The source code is available from here.
Slides for Lecture 08 , Handout for Lecture 08 (4 slides per page)
Slides for Lecture 09 , Handout for Lecture 09 (4 slides per page). In this lecture and Lecture 10 we make use of a number of examples to describe study Hibernate Mapping. Sample code for the Hibernate mapping part used in these two lectures. Download the sample code of the examples and play with them.
Part two of the Hibernate exercise
This part extends and builds on the previous exercise (Car Fleet system). We have modified the model to include richer set of features. Download the exercise sheet for part 2 from here.
Slides for Lecture 10 , Handout for Lecture 10 (4 slides per page)
Assessment 2 on Hibernate:
Download the exam paper from here. The source files are available here. Library for calculating distance here.
Spring
Slides for Lecture 11 , Handout for Lecture 11 (4 slides per page)
Slides for Lecture 12 , Handout for Lecture 12 (4 slides per page)
Sample code- Source code: SSample code for Spring (ShopHibernateSpring example), Dependency Injection Example
- Run and study the sample code (ShopHibernateSpring example).
- Download Dependency Injection Example. Run the code and modify the configuration file to use BetterInvestment. Experiment with using ApplicationContext instead of BeanFactory and different forms of Constructors.
- Here is another Spring based program from Alan Sexton. This is a very simple one (no Hibernate) that shows how to attach logging to methods using aspects: SimpleSpring-src.jar.
Slides for Lecture 13 , Handout for Lecture 13 (4 slides per page)
Slides for Lecture 14 , Handout for Lecture 14 (4 slides per page)
Spring Exercises (Car Fleet System)
Download the exercise sheet from here. The source code is available from here. You can download the libraries used in Spring exercises from the usual place or here.
Slides for Lecture 15 , Handout for Lecture 15 (4 slides per page)
Download and install the this program, which is an enhanced version of the jar file of Part3.1 above. Explore it and try out all the use cases.
Slides for Lecture 16 , Handout for Lecture 16 (4 slides per page)
Spring security Exercises (Car Fleet System)
Download the exercise sheet from here. The source code is available from here (this source file has a problem see the correction below).
Correction:
The previous version had a bug please use an updated version from here (see the lines 140-144 in the FMCSpring.xml). Use this version instead of the one above.
-
Slides for Lecture 17, Handout for Lecture 04 (4 slides per page)
-
Slides for Lecture 18 , Handout for Lecture 18 (4 slides per page).
Assessment 2 on Spring and Spring Security:
Download the exam paper from here. The source files are available here.
Stuff from previous years
Internet Computing Workshop (2010-11)
Module Description page and Syllabus Page
Demonstrators and Lab sessions
Our four demonstrators are:Osama Taleb, Roly Perera, Errol Thompson and Miel Zozaya Garica. Rather than have office hours in their office, they hold them in the labs. If you have problems with the exercises, with your setups, with Java, or with the technologies taught in the module, please approach them in the labs during the lab sessions. Please do not email them or approach them outside their lab hours.
Lab sessions
You are strongly advised to attend as many lab hours as you can to take advantage of the demonstrator (and classmate) support available.
| Day | Time | Room |
| Wednesdays | 13:00-17:00 | LG04, Computer Science |
| Fridays | 14:00-16:00 | LG04, Computer Science |
Handouts, source code, links and Solutions
With special thanks to Alan Sexton for designing the course and his slides and handouts. In particular, we will make use of the running example that he designed in 2008-09. I would like to encourage you to make use of the sample codes and exercises from 2008-09.
There is a wide range of online material, books and tutorials available about Hibernate, WIcket and Spring. Among other books, I have found the following books particularly helpful:
-
Christian Bauer and Gavin King, Java Persistence with Hibernate
-
Craig Walls and Ryan Breidenbach, Spring in Action
-
Samudra Gupta, Pro Apache Log4j
-
Martijn Dashort and Eelco Hillenius, Wicket in Action
Part 1: JDBC
- Slides for Lecture 01 , Handout for Lecture 01 (4 slides per page)
- Slides for Lecture 02 , Handout for Lecture 02 (4 slides per page)
- Slides for Lecture 03, Handout for Lecture 03 (4 slides per page)
- Alan Sexton's handouts on JDBC
- Source Code for examples in Lectures
- Exercises for part 1 (JDBC): Start by reading the Asset Management example and view the source code for the example, then move to the exercises for part 1. A script for creating and dropping the database used is available here.
- Assessment for part 1:
- The files which are used in this assessment are available in HERE.
Part 2: Hibernate
- Slides for Lecture 01 , Handout for Lecture 01 (4 slides per page)
- Slides for Lecture 02 , Handout for Lecture 02 (4 slides per page) Code explained in Lecture2
- Slides for Lecture 03, Handout for Lecture 03 (4 slides per page)
- Slides for Lecture 04, Handout for Lecture 04 (4 slides per page)
- Slides for Lecture 05, Handout for Lecture 05 (4 slides per page)
- Slides for Lecture 06, Handout for Lecture 06 (4 slides per page)
- Slides for Lecture 07, Handout for Lecture 07 (4 slides per page)
- Alan Sexton's handouts on Hibernate
- Sample code:
-
Click here to download the Hibernate libraries which we have used in the exercises.
Hibernate libraries are also available on the school's server:
/bham/common/java/packages/hibernate-3.2
/bham/common/java/packages/hibernate-3.2/lib
/bham/common/java/lib/ - Exercises for part 2 (Hibernate): (You probably access the files earlier from Errol's page)
- The Hibernate example source code needs to be unzipped into your project. You will need to modify the hibernate.properties file with the location of your database and your database access user name. The code should then run.
You should initially run the program with a parameter of "create" to create the database tables. Then experiment with running the other functions as documented in the documentation.
WorksheetsThere are two worksheets for Hibernate. These are:
1. Example Code Worksheet - This documents the functionality in the sample code and includes some additional functions that you need to implement. This additional functionality does not require changes to the database or Hibernate mapping. It does require you to write queries that you will need to get Hibernate to run.
2. Exercise Worksheet - This documents some additional functionality that needs to be added to the code. This functionality requires additional model objects and database tables. You will need to create these and the appropriate Hibernate mappings.- Assessment for part 2:
- The files which are used in this assessment are available in HERE.
- As usual Click here to download the Hibernate libraries which we have used in the Assessment. These are the libraries that you have been using.
Part 3.1: Spring
- Slides for Lecture 01, Handout for Lecture 01 (4 slides per page)
- Slides for Lecture 02 , Handout for Lecture 02 (4 slides per page)
- Slides for Lecture 03, Handout for Lecture 03 (4 slides per page)
- Slides for Lecture 04 , Handout for Lecture 04 (4 slides per page)
- Sample
code
- Source code: Sample code for Spring (ShopHibernateSpring example), Dependency Injection Example
- Run and study the sample code (ShopHibernateSpring example).
- Download Dependency Injection Example. Run the code and modify the configuration file to use BetterInvestment. Experiment with using ApplicationContext instead of BeanFactory and different forms of Constructors.
- Here is another Spring based program from Alan Sexton. This is a very simple one (no Hibernate) that shows how to attach logging to methods using aspects: SimpleSpring-src.jar.
- Exercises for part 3 (Spring):
- The jar files used for the following exercise is avaiable in HERE.
- example source code
- Example Code Worksheet
- Exercise Worksheet
Assessment for part 3 (Spring):
The files which are used in this assessment are available in HERE
Part 3.2: Spring security (Acegi)
- Slides for Lecture 01, Handout for Lecture 01 (4 slides per page)
-
Download and install the following program, which is an enhanced version of the jar file of Part3.1 above: ShopHibernateSpring.jar. Make sure to download the new version i.e. ShopHibernateSpring.jar. Explore it and try out all the use cases.
- Exercise for Spring with security
Part 4: Wicket
Jar files used for wicket are available here
- Slides for Lecture 01, Handout for Lecture 01 (4 slides per page)
- Please notice that lecture 02 and 03 are notes which I have prepared for myself to be used during the lectures and to remind me of the flow of the discussions. I put them online; I hope they help.
- Lecture02: notes, solutions
- Lecture03: notes, solutions
- Download and install the following program: SimpleWicket.jar. Explore the code, get it running and try it out. Note that there is a readme file in the top directory with a list of jar file- if the suggested list is not working try these jar files.
- Get these exercises working: wicketExercises
- SimplestWicket.zip , see the Handouts
- Download and install the following program: EquipBooking.zip and study it. The libraries required are listed in a text file in the source directory (From Dr Thompson)
Note: the model should not need updating. Our intention is for you to use the DAO and the service code.
Assessment 4 (Wicket and Spring security):
Final assessment (Involving submitting code and viva):
- Worksheet
- Base code
- Submit your assessment to the BOSS system no later than 11:00 on Tuesday 3rd of May 2011. The system will be closed on 11:05, with penalties for late submission.
- This assessment also include a viva which will be held during the week of 3rd of May. The date and venue for the viva will be announced shortly.
Fundamentals of Computer Science; Intro to CS
Module Description page and Syllabus Page for "Fundamentals of Computer Science" 2010/11.
Lectures:
Tuesdays 09-10, UG04 Learning Centre
Tuesdays 16:00-17:00 NG08 Biosciences
Recommended Textbooks:
Book1: Computer Science: A Modern Introduction. 2nd edition,
1988
Book 2: Structured Computer Organisation. 5th Edition,
2006 (or 4th Edition, 1998)
With special thanksto Ata Kaban and Guilin Wang for the slides.
Part 1:
Lecture 01: Slides (Book 1, Chapter 1, pp.1-12 and Chapter 2, pp.13-20)
Lecture 02-05: Slides (Book 1, Chapter 2)
Lecture 06: Slides (Book 1, Chapter 2 pages 42-50)
Lecture 07: Slides (Book 1, Chapter 2 pages 50-63)
Lecture 08-11: Slides (Book 1, Chapter 2 pages 66-99)
Part 2:
Lecture 01: Slides (Book 2, Chapters 1 and 2)
Lecture 02: Slides (Book 2, Chapters 1 and 2)
Lecture 03: Slides (Book 2, Chapter 3)
Lecture 04: Slides (Book 1, Chapters 4.1 to 4.5)
Lecture 05: Slides (Book 1, Chapters 4.1 to 4.5)
Lecture 06: Slides (Book 1, Sections 5.1-5.4)
Lecture 07: Slides (by Victor Landassuri-Moreno)
Exercises: Questions Please submit your solutions via the School of Computer Science reception before 12:00 AM on 17/12/10. Your answers must be hand- written (and readable!). You can use as many sheets as you need. Staple multiple sheets together.
...........................................................................................................................................
Software Systems Components (2nd Semester)
You can find the Module web page here.
Lecture 01: Slides Handouts Source code
Lecture 02: Slides Handouts Source code
Lecture 03: Slides Handouts Source code
Lecture 04: Slides Handouts Source code
Lecture 05: Slides Handouts Source code
Lecture 06: Slides Handouts Source code
Lecture 07: Slides Handouts Source code
Lecture 08: Slides Handouts Source code Notice, the slides for Lecture 07 and 08 are the same.
With special thanks to Dr Steve Vickers last year lecturer. I have used his lectures for compiling some of my slides. Steve's lectures from the last year:
...........................................................................................................................................
Distributed Systems (2nd Semester)
Module Description page and Syllabus Page for "Distributed Systems" (06-06798) 2006/07.
With special thanks to:
- G Coulouris, J Dollimore and T. Kindsberg authors of the course book of the module Distributed Systems, Concepts and Design, fourth edition
- Professor Marta Kwiatkowska for designing the course and producing an early version of the slides based on the third edition of the book. The following slides include the material for the fourth edition.
Lecture 10: Handouts (Exercise class 01)
Lecture 11: Handouts (Exercise class 02, the same handout as Lecture 10)
Lecture 20: Handouts
Lecture 21: Handouts
...........................................................................................................................................
Extended Distributed Systems 06-18151
Extended Distributed Systems consists of two parts: 1.5hrs examination (80%), continuous assessment (20%). For the continuous assessment part, you are required to write an essay of approximately 2000 words and submitted to the school office by 4pm on Mon 30 April 2007 on one of the following subjects. As a starting point, I have included a suggested resource, which is available in the library or on the web. If you need further references, feel free to contact me.
Subject Suggested and some resources to start:
- A survey of the UML Superstructure and Infrastructure --- www.omg.org, look for UML standards
- A survey of a Web Service standard and its relationship with other standards ---www.w3.org, look for Web Service standards and choose one
- A survey of Open Distributed Processing --- Janis R. Putman, Architecting with RM-ODP
- A survey of Quality of Service (QoS) in 802.11 --- Jochen Schiller, Mobile Communications
- A survey of QoS in Bluetooth --- Jennifer Bray,Charles Sturman, Bluetooth
1.1: Connect Without Cables, Second Edition
General guidelines for marking this project are as follows:
Class Mark Range Typical Characteristics:
80% or more: Exceptional standards of achievement,
which includes all the points mentioned below, i.e. a research survey
which identifies and explains at least one research issues
70-79%:
Very High levels of understanding of the subject
beyond the level of the suggested reference. Sound critical analysis of
subject/technologies/methods.
60-69%: Demonstrates a High level of understanding
of the basic issues involved based on sound background research and knowledge
acquisition from the Suggested Reference.
50-59%: Demonstrates some knowledge of the subject,
with at least basic levels of background research and knowledge acquisition.
