List of courses

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:

    Christian Bauer and Gavin King, Java Persistence with Hibernate
    Samudra Gupta, Pro Apache Log4j
    S Craig Walls and Ryan Breidenbach, Spring in Action

Introducing the module

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.

 

Description of the Car Fleet Management example.

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

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.

 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

Part 2: Hibernate

Part 3.1: Spring

Assessment for part 3 (Spring):

The files which are used in this assessment are available in HERE

 

Part 3.2: Spring security (Acegi)

Part 4: Wicket

Jar files used for wicket are available here

Sample code
  • 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)
Exercises for part 4 Wicket (and Spring Security):
  • The libraries used in this exercise are available HERE.
  • This is the base code being proposed for the Wicket/Acegi exercise. The worksheet describes the database and the initial functionality for you. None of the code for the AssetType or Assets are currently written. Create a page with a button called "Display Asset Types" to display a list of AssetTypes.

    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 01: Slides Handouts

    Lecture 02: Slides Handouts

    Lecture 03: Slides Handouts

    Lecture 04: Slides Handouts

    Lecture 05: Slides Handouts

    Lecture 06: Slides Handouts

    Lecture 07: Slides Handouts

    Lecture 08: Slides Handouts

    Lecture 09: Slides Handouts

    Lecture 10: Handouts (Exercise class 01)

    Lecture 11: Handouts (Exercise class 02, the same handout as Lecture 10)

    Lecture 12: Slides Handouts

    Lecture 13: Slides Handouts

    Lecture 14: Slides Handouts

    Lecture 15: Slides Handouts

    Lecture 16: Slides Handouts

    Lecture 17: Slides Handouts

    Lecture 18: Slides Handouts

    Lecture 19: Slides Handouts

    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:

    1. A survey of the UML Superstructure and Infrastructure --- www.omg.org, look for UML standards
    2. A survey of a Web Service standard and its relationship with other standards ---www.w3.org, look for Web Service standards and choose one
    3. A survey of Open Distributed Processing --- Janis R. Putman, Architecting with RM-ODP
    4. A survey of Quality of Service (QoS) in 802.11 --- Jochen Schiller, Mobile Communications
    5. 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.