List of courses
- Enterprise Systems (2012-13)
- Enterprise Systems (2011-12)
- Fundamentals of Computer Science; Intro to CS
- Software Systems Components
- Distributed Systems
- Extended Distributed Systems
Enterprise Systems (2012-13)
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 (30% of the final mark) 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- date to be announced)
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.2
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 (pencil your diaries)
18 Jan 2013: Start planning
for the Mini Project
23 Jan 2013 (Wednesday): JDBC exam (5% of mark)
09 Feb 2013 (deadline 22:00) : Report 1 submit by email
20 Feb 2013 (Wednesday): Hibernate exam (30% of mark)
23 Feb 2013 (deadline 22:00) : Report 2 submit by email
08 March 2013 (deadline 22:00) : Report 3 submit by email
13 March 2013 (Wednesday): Spring and Spring security exam (35% of mark)
15 March 2013 (deadline 22:00): Slides and report for the talk submit by email. One report
per group in form of an 8-10 pages paper in IEEE conference style
Week of 18th of March: Presentation for Mini Project (Date and venue will be announced later.)
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 "ES12-13:...."
Demonstrators and Lab sessions to help with the course work
John Saxon (JTS100 [AT]bham.ac.uk) is the demonstrator for the module. He will be available in the labs to help you with the exercises. Please approach him ONLY during the Lab session.
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 |
| Mondays | 14:00-17:00 | LG04, Computer Science |
| Wednesdays | 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. The exercise for lab 1.
- Slides for Lecture 02 , Handout for Lecture 02 (4 slides per page)
Description of the Asset Management and Maintenance example.
-
Slides for Lecture 03 , Handout for Lecture 03 (4 slides per page)
JDBC Exercise: The exercise is based on the Asset Management and Maintenance which is described above. 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. Here is the source code used for the example exercise, extend this to fulfil the tasks within the AAM description. 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)
Lab 02: The worksheet for lab two introduce you to JDBC. Here is the source code if you require it.
Log4j, slf4j and Maven
-
Slides for Lecture 04 , Handout for Lecture 04 (4 slides per page)
Maven2 Exercise: This exercise is based upon the MessageExample for hibernate. It enables you to convert this project to a maven project such that it handles dependencies and a runtime environment. Download the worksheet from here and the source from here.
Hibernate
-
Slides for Lecture 05 , Handout for Lecture 05 (4 slides per page).
-
Slides for Lecture 06 , Handout for Lecture 06 (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 if you want 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/ -
Slides for Lecture 07 , Handout for Lecture 07 (4 slides per page). Code for Sample_SixSteps which builds on the Hello World example MessageExample.
-
Slides for Lecture 08 , Handout for Lecture 08 (4 slides per page)
Hibernate exercise: This exercise is based on the AAM example that you used in the JDBC exercises with some features which are enhanced. Download the worksheet from here and the source code from in zip here or in tar from here .
- Slides for Lecture 09 , Handout for Lecture 09 (4 slides per page)
-
Slides for Lecture 10 , Handout for Lecture 10 (4 slides per page) Sample code for the Hibernate mapping part, download the sample code of the examples and play with them.
- Slides for Lecture 11 , Handout for Lecture 11 (4 slides per page)
-
Slides for Lecture 12 , Handout for Lecture 12 (4 slides per page)
Spring
Slides for Lecture 13 , Handout for Lecture 13 (4 slides per page) -
Sample
code
- 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.
- Slides for Lecture 14 , Handout for Lecture 14 (4 slides per page)
- Slides for Lecture 15 , Handout for Lecture 15 (4 slides per page)
- Slides for Lecture 16 , Handout for Lecture 16 (4 slides per page)
- Slides for Lecture 17 , Handout for Lecture 17 (4 slides per page)
Spring Exercise: This exercise is based upon the AAM example you have been using thoughout this module. This exercise does include some Maven2, so if you haven't already completed that exercise: it would be beneficial to do that prior to this. Download the worksheet from here and the source code in zip or tar.gz format.
Spring Security
- Slides for Lecture 18 , Handout for Lecture 18 (4 slides per page)
Download the sample code for ShopHibernateSpring used in lecture 18 from here .
- Slides for Lecture 19 , Handout for Lecture 19 (4 slides per page)
A second sample code that we discussed during the lecture 19 is available here (SpringAcegiExample).
Spring Security Exercise: This exercise is based upon the AAM example used throughout this module and is the last section of the Spring Exercise. It may be completed as a continuation of it or download the source code in zip or tar.gz format, it provides some of the functionality for you to explore and complete the work access rights. If you are not using Maven, please use these libraries: zip or tar.gz.
Stuff from previous years
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.
Internet Computing Workshop (2010-11)
Module Description page and Syllabus Page
...........................................................................................................................................
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.
