University of Surrey - Guildford
Registry
  
 

  
 
Registry > Module Catalogue
View Module List by A.O.U. and Level  Alphabetical Module Code List  Alphabetical Module Title List  Alphabetical Old Short Name List  View Menu 
2010/1 Module Catalogue
 Module Code: COM1017 Module Title: PROGRAMMING FUNDAMENTALS
Module Provider: Computing Short Name: COM1017
Level: HE1 Module Co-ordinator: CASEY MC Dr (Computing)
Number of credits: 20 Number of ECTS credits: 10
 
Module Availability
Autumn Semester
Assessment Pattern

Assessment Pattern

 

Unit(s) of Assessment

 

Weighting Towards Module Mark( %)

 

Exam (individual)

 

3 hour practical unseen examination.

 

To address the following learning outcomes:

 

Write syntactically correct code, and compile, execute, debug and test the resulting computer program

 

Interpret UML class diagrams in order to implement object-oriented software

 

Understand the importance of constructing maintainable code by using good design and code conventions

 

50%

 

Coding Assignments (individual)

 

To encourage practice of programming fundamentals, regular assignments will be set.  Each assignment will build upon the core material.  To encourage participation, feedback will be given for both attempting to provide a solution and for the quality of your solutions, including good coding practice, testing and execution.

 

To address the following learning outcomes:

 

Write syntactically correct code, and compile, execute, debug and test the resulting computer program

 

Know when and how to apply native and class data types, and program control statements

 

Interpret UML class diagrams in order to implement object-oriented software

 

Understand the importance of constructing maintainable code by using good design and code conventions

 

40%

 

Diagnostic Test (individual)

 

During some of the compulsory lab sessions, diagnostic tests will be used to test your knowledge of the concepts covered to date.  These tests will be used to provide individual support.  Tests will take place unannounced during random lab sessions to also encourage attendance.

 

To address the following learning outcomes:

 

Understand the basic concepts of object-oriented software as implemented in Java

 

10%

 

Qualifying Condition(s) 

 

A weighted aggregate mark of 40% is required to pass the module.

 

Core module.

 

Module Overview

Module Overview

 

This module will provide an introduction to the fundamental concepts of object-oriented programming using Java.  We will start from the first principles of what objects and classes are, and introduce data types, programming statements and good design practice in iterative steps throughout.  To achieve this we will use appropriate tools and libraries, such as BlueJ, Eclipse and JUnit.

 

Prerequisites/Co-requisites

Module Aims

Module Aims

 

The aim of this module is to equip students with the fundamental knowledge and skills needed to design and write basic object-oriented programs.

 

Learning Outcomes

 

Learning Outcomes

 

By the end of the module, students should be able to:

 

·         Write syntactically correct code, and compile, execute, debug and test the resulting computer program

 

·         Understand the basic concepts of object-oriented software as implemented in Java

 

·         Know when and how to apply native and class data types, and program control statements

 

·         Interpret UML class diagrams in order to implement object-oriented software

 

·         Understand the importance of constructing maintainable code by using good design and code conventions

 

Module Content

Module Content

 

The module is divided into the following areas:

 

·         Introduction

 

o        Motivation: programming and object-orientation

 

o        Examples of good code versus bad code

 

o        Java, JUnit, BlueJ and Eclipse

 

·         Working with Classes

 

o        Classes and objects

 

o        Variables

 

o        Methods

 

o        Class diagrams

 

·         Naked Java

 

o        Compiling and running Java

 

o        Execute versus interpret: comparison with other languages

 

o        Unit testing with JUnit

 

o        Eclipse and professional software development

 

o        Best practice and coding styles

 

·         Data types

 

o        Primitive data types

 

o        Strings

 

o        Enumerated types

 

·         Control flow

 

o        Conditional statements (if, then, else)

 

o        Loops (for, while, do)

 

·         Collections

 

o        Arrays

 

o        Collections

 

o        Arrays of arrays

 

·         Inheritance

 

o        Superclasses and subclasses

 

o        Abstract classes

 

o        Interfaces

 

·         Handling Errors

 

o        Defensive programming

 

o        Exceptions

 

Methods of Teaching/Learning

 

Methods of Teaching/Learning

 

55 contact hours in weeks 1-11, consisting of:

 

·         3 hours of lectures per week

 

·         2 hours of labs per week

 

This module is also supported by a 1 hour drop-in surgery each week and an additional 2 hours of streamed tutorials.

 

Selected Texts/Journals

Selected Texts/Journals

 

Essential Reading :

 

Bates, K. & Bates, B. (2005).  Head First Java.  Sebastopol, CA :  O’Reilly Media, Inc.

 

 

Recommended Reading :

 

Barnes, D. & Kölling, M. (2009).  Objects First with Java: A Practical Introduction using BlueJ.  4th Edition.  Upper Saddle River , NJ.: Pearson Education, Inc.

 

 

Liguori, R. & Liguori, P. (2008).  Java Pocket Guide.  Sebastopol , CA.: O’Reilly Media, Inc.

 

 

Vermeulen, A. et al (2000).  The Elements of Java Style.  Cambridge, UK.: Cambridge University Press.

 

 

Background Reading and Other Sources:

 

Freeman, E., Freeman, E., Sierra, K. & Bates, B. (2004).  Head First Design Patterns.  Sebastopol, CA :  O’Reilly Media, Inc.

 

 

Flanagan, D. (2005).  Java in a Nutshell.  5th Edition Sebastopol , CA.: O’Reilly Media, Inc.

 

 

Last Updated

AUG 2010 jg