Module Descriptors
FUNDAMENTALS OF SOFTWARE DEVELOPMENT
COSE40301
Key Facts
Faculty of Computing, Engineering and Sciences
Level 4
30 credits
Contact
Leader: Kelvin Hilton
Hours of Study
Scheduled Learning and Teaching Activities: 96
Independent Study Hours: 204
Total Learning Hours: 300
Assessment
  • ASSIGNMENT weighted at 50%
  • CLASS-TEST weighted at 50%
Module Details
Module Learning Strategies
2 lectures per week presenting key topics and concepts.
Tutor assisted practical based learning via 2 practical sessions per week.

Formative, self-directed exercises to support transfer of knowledge and understanding.
Students will also be encouraged to develop their intellectual, communicative and problem solving skills.
(1:n)2 (1:20)2
Module Additional Assessment Details
50% laboratory based open book practical test 1.5 hours. (Learning outcome 3)
50% practical based coursework. (Learning outcomes 1 and 2)
Module Indicative Content
Part 1 - Introductory Programming Skills
Controlling Program Flow (using sequence, selection, iteration, entry/exit points and functions.)
Understanding Programming Language Constructs (including declarations, definitions, keywords, constants, primitive data types, structure and syntax, professional programming practices and how program code is executed by a computer).
Problem solving using programmed solutions.
Simple program/algorithm design using natural language and pseudocode and simple notation.
Introduction to collections of data and associated operations (including arrays, vectors and sets).
Understanding, developing and manipulating basic abstract data types such as stacks, queues, and trees.
Ordering data programmatically using basic sorting techniques.
Introduction to debugging strategies.
Planning and implementing program testing including walkthroughs, white box and black box testing.

Part 2 - Introduction to Object based and Event Driven Programming
Introduction to Integrated Development Environments for supporting application development.
Fundamentals of Object based programming techniques including classes, attributes, methods and introducing implementing class relationships such as inheritance.
Designing class based programs using key elements of the Unified Modelling Language such as class diagrams and interaction diagrams.
Developing event driven Graphical User Interfaces using the Java Foundation Classes.
Abstracting the program interface from the application logic introducing 2 tier, 3 tier and n-tier concepts.
Fundamentals of component based programming (developing components to support a variety of application domains including the internet). Introduction to simple html scripting to support the above objective.
Module Special Admissions Requirements
None.
Module Resources
Hardware and software suitable for supporting the Java development environment.
Module Texts
Java Programming: from Problem Analysis to Program Design, Malik & Nair, 2003, Course Technology ISBN 0-619-06497-8
Beginning Java, Ivor Horton, 2003, John Wiley & Sons Inc; ISBN: 0764543652
Java in a Nutshell, David Flanagan, 2002, O'Reilly UK; ISBN: 0596002831
Java Software Solutions: Foundations of Program Design, Lewis and Loftus, 2004, Pearson Education, ISBN: 0321225368
Problem Solving and Programming Concepts, 2003, Prentice Hall, ISBN: 0130482684