Module 18190 (2012)
Syllabus page 2012/2013
Software Workshop 1
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
A first module in imperative, object-oriented programming, with a strong emphasis on practical program development skills.
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
|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|
Lectures: 2-3 hrs/week, Tutorials/Examples classes: 1-2 hrs/week, Timetabled labs
- Sessional: 3 hr examination (80%), practical work (20%).
- Supplementary (where allowed): By examination only.
|Big Java (3rd Ed)||Cay Horstmann||John Wiley, 2008|
|Java Concepts (5th Ed)||Cay Horstmann||John Wiley, 2008|
|Introduction to Programming in Java||Robert Sedgewick and Kevin Wayne||Addison Wesley, 2007|
|Introduction to Programming and Object Oriented Design using Java (3rd Ed)||Jaime Nino and Frederick A. Hosch||John Wiley, 2008|
- Induction. Basic use of the system (logging on, Accessing development environment).
- The nature of a "program". Emphasis on the characteristics of imperative vs. imperative programming.
- The nature of a language (syntax and semantics). Expressions, functions and simple tests (JUnit). First encounter with recursion.
- Data types and initial introduction to objects (String as object).
- Control structures (conditionals and repetition). If, switch, for, while loops. Revisit recursion as form of repetition. Code tracing and debugging.
- Interfaces as types and classes as implementation. Type inheritance. Designing using classes.
- Implementation inheritance and structural recursion (linked list).
- Collections and arrays. Repetition over collections.
- How do we design a program. GUI programming, model-view-architecture theory, listeners.
- Exceptions. Understanding error messages, exception objects, throw, try-catch.
Last updated: 15 Oct 2008
Source file: /internal/modules/COMSCI/2012/xml/18190.xml