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
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:
- Present the fundamental concepts of imperative and object-oriented programming.
- Develop the skills needed to design, develop and document programs.
- Gain working knowledge of the Java programming language.
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
- Induction. Basic use of the system (logging on, web browsing, email).
- Algorithms. Pseudocode in turtle graphics, numbers and life. Algorithmic constructs, aspects of "program".
- Introduction to Java - using NetBeans and skeleton files. Variables, expressions (int, double, bool); if.
- Repetition. for, while loops; arrays; using debugger; debugging techniques; loop invariants (as development tool).
- 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.
- Objects and classes. Instance members (fields, constructors, methods), instance invariants; creating and using objects; strings; primitive v. reference type.
- Interfaces. Type v. class; assert; Javadoc.
- Subclasses. Different applications including subclass to reuse features in existing class, subclasses to partition abstract superclass.
- Recursion. Basic use, mechanism (seen in debugger), designing recursive algorithms.
- Exceptions. Understanding error messages, exception objects, throw, try-catch.
- Case Study - of object architecture (e.g. model-view structure).
Programmes | Modules | Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus