University of Birmingham School of Computer Science
Home double arrow Internal double arrow Modules

SYLLABUS PAGE, 2007/08

06-18190
Software Workshop 1

Level 1/C

Dr S Vickers
Dr Xudong Luo
Dr J McGregor
20+10 credits in Sem1+Sem2

Programmes | Modules | Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus

The School of Computer Science Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)

Relevant Links

First Year Workshop Web Page

Outline

A first module in imperative, object-oriented programming, with a strong emphasis on practical program development skills.

Aims

The aims of this module are to:

Learning Outcomes

On successful completion of this module, the student should be able to: Assessed by:
1 Explain and apply the fundamental constructs of imperative and object-oriented programming. Coursework, examination
2 Describe and apply the main features of the Java programming language. Coursework, examination
3 Analyse Java programs, for example by determining the behaviour of a program from its source code or by completing and/or correcting partially-written programs. Coursework, examination
4 Write Java programs, where appropriate making effective use of an integrated development environment (IDE) and other programming aids. Coursework, examination
5 Test and debug programs, interpreting compiler and run-time error messages. Coursework
6 Design, develop and document complete Java programs to solve given software problems, including some open-ended tasks. Coursework, examination

Restrictions, Prerequisites and Corequisites

Restrictions:

None

Prerequisites:

None

Co-requisites:

None

Teaching

Teaching methods:

Lectures: 2-3 hrs/week, Tutorials/Examples classes: 1-2 hrs/week, Timetabled labs

Contact hours:

104 plus timetabled lab work

Assessment

Normal (sessional): 3 hr examination (80%), practical work (20%).

Resit (supplementary) assessment (where allowed): Students who fail this module but achieve at least 30% will be allowed to resit, by examination only. Students whose mark is below 30% will be required to repeat the module in the following academic year.

Recommended Books

Title Author(s) Publisher, Date Comments
Java Concepts (4th Ed) Cay Horstmann John Wiley, 2005 Horstmann's books are well written and with a good sense of what is important. For a few pounds more you can buy his "Big Java", which is the same as this but with some extra chapters covering topics that will be useful in year 2.
Introduction to Programming in Java Robert Sedgewick and Kevin Wayne Addison Wesley, 2007 Very good background reading. It is based on many really interesting examples taken from various disciplines including maths and physics, and also turtle graphics.

Detailed Syllabus

  1. Induction. Basic use of the system (logging on, web browsing, email).
  2. Algorithms. Pseudocode in turtle graphics, numbers and life. Algorithmic constructs, aspects of "program".
  3. Introduction to Java - using NetBeans and skeleton files. Variables, expressions (int, double, bool); if.
  4. Repetition. for, while loops; arrays; using debugger; debugging techniques; loop invariants (as development tool).
  5. Static methods - as procedures and functions. Header comments including requires/ensures; structure of source code files; packages; API; java.lang.Math; using the Linux command line including arguments.
  6. Objects and classes. Instance members (fields, constructors, methods), instance invariants; creating and using objects; strings; primitive v. reference type.
  7. Interfaces. Type v. class; assert; Javadoc.
  8. Subclasses. Different applications including subclass to reuse features in existing class, subclasses to partition abstract superclass.
  9. Recursion. Basic use, mechanism (seen in debugger), designing recursive algorithms.
  10. Exceptions. Understanding error messages, exception objects, throw, try-catch.
  11. Case Study - of object architecture (e.g. model-view structure).

Programmes | Modules | Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus