CT4003

Programming and Software Development

Programming and Software Development

CT4003

Module Guide - September 2012
School of Computing and Technology, University of Gloucestershire

Table of Contents

1.  / Module tutors
2.  / Introduction
3.  / Indicative Resources
4.  / Teaching and learning approach
5.  / PDP statement
6.  / Provisional Schedule
7.  / Assessment
8.  / How Learning Outcomes are Assessed

Large print copies of this booklet can be provided on request. We can also arrange production of braille or audio versions. Please email Laura Jefferies at if you have any special requirements that you would like to discuss.

1. Module tutors

email / telephone / room
*Ambikesh Jayal / / (01242 71) 4254 / Park LC115
Vicky Bush / / (01242 71) 4255 / Park LC115a
David Wakeling / / (01242 71) 4267 / Park LC118

* module leader

2. Introduction

The module introduces the basics of computer programming. It develops the student's programming techniques, including the design, development and testing of software units. Students are assumed to have no background in programming.

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

1. Demonstrate understanding of programming language constructs.

2. Design, develop and test small units of software according to a specification.

3. Appreciate and use the Application programming interface (API) for software.

4. Appreciate the stages of the software development lifecycle.

5. Apply skills relevant for academic progression and career development within the sector.

3. Indicative Resources

Books
Charatan, Q., Kans, A. (2009) Java in Two Semesters, McGraw-Hill.
Deitel, P.J., Deitel, H.M. (2010) C# for Programmers, Prentice Hall
Deitel, H.M. and Deitel, P.J. (2005) Java: how to program (6th ed.), Prentice Hall
Horstmann C. (2005) Big Java, John Wiley & Sons
Horstmann, C., Budd, T. (2004), Big C++, John Wiley & Sons
King, M., Pardoe, J.P., Vickers, P. (1995) A First Course in Computer Programming Using C, McGraw-Hill
Mughal, K.A. and Rasmussen, R. (2008) A programmer's guide to Java SCJP certification: a comprehensive primer, Addison-Wesley Professional
Perry, W. (2006) Effective Methods for Software Testing, Wiley.
Sommerville, I. (2010) Software Engineering (9th ed.), Pearson Education
Summerfield, M. (2009) Programming In Python 3: A Complete Introduction To The Python Language. New Jersey: Addison-Wesley.
Web resources
Java Platform API Specification http://docs.oracle.com/javase/7/docs/api/
Software
Appropriate program development environment e.g. The Java Development Kit, jEdit, Eclipse
Note: All the software used in teaching this module is free and open source. This means that software used in the labs will be available to students outside the campus without any restriction.

4. Teaching and learning approach

There will be a one-hour lecture session to introduce topics (as indicated in the schedule below), followed by timetabled lab and tutorial sessions to put topics into practice. It is assumed that students will spend a significant amount of their own time in study and practice outside these timetabled sessions.

Feedback from tutors

All students are entitled to both formative and summative feedback during the module. Formative feedback is designed to enable you to improve your work/performance and takes many forms. Students will have several opportunities to receive feedback on their progress, e.g. during lab sessions, tutorials or seminars; as part of general feedback in lectures; and where appropriate, one to one sessions with their Academic Review Tutors. Summative feedback is received when your submitted coursework has been marked. As a minimum this will comprise constructive comments from the tutor and a grade.

5. PDP Statement

Students should, by the end of the module, achieve a high level of understanding of Programming and Software Development and be confident in the application of a range of tools and techniques. In addition they will gain a broad knowledge of the philosophies within the subject area. Through the group work component of the assessment, students will be able to enhance their team working and employability.

6. Provisional Schedule

Semester 1

Week / Date / Topics / Tutorial and exercise
1 / 25 Sep / Introduction; what is a program? The compilation process; a simple program structure. / Familiarisation with the Java system and experimenting with programs
2 / 2 Oct / Variables; basic data types and operations; simple calculations using a computer; comments. / Investigate the effect of basic operations (simple output).
3 / 9 Oct / Choice of variable names. Expressions; statements; constants.
Simple input; importing packages. / Exercises involving simple input and use of constants.
4 / 16 Oct / Selection: if, if .. else using boolean expressions; layout indentation;
truth tables. / Exercises involving making a choice.
5 / 23 Oct / Introduction to Robot class; object creation; sending messages to objects. / Robot class familiarisation
6 / 30 Oct / Iteration:
For loop - a fixed number of times.
Programming process – from specification to design. / Code review and coding standards;
Programming of tasks involving for loops.
Simple design choices.
7 / 06 Nov / Revision Week / Personal catch-up, consolidation and experimentation.
8 / 13 Nov / While loop – repeat depending on a condition; the Standards Manual;
PDL. / Practice with while loops.
More simple designs.
9 / 20 Nov / Methods; examples of structured programming. Global (static) variables. / Examples involving methods.
10 / 27 Nov / Methods and parameters. / Examples involving methods with parameters.
11 / 04 Dec / Problem solving and the programming process; testing. / Designing programs using methods;
Testing previous programs and methods.
12 / 11 Dec / Software development lifecycle;
Program specification / Exercises

Semester 2

Week / Date / topic / Tutorial and exercise
17 / 15 Jan / Application programming interface (API)
IDE (Integrated development environments), programs with multiple source files; Method interfaces / Exercises on understanding and using functions available from Application programming interface (API) documentation.
18 / 22 Jan / Class Diagram; class, attribute, operation; constructor; creating and using objects / In class test
19 / 29 Jan / Array; creating arrays; array length; indexing arrays / Exercises on arrays
20 / 5 Feb / Problem solving; stepwise refinement; searching / Exercises on searching
21 / 12 Feb / Verification of design; trace tables; test cases; statement coverage / Exercises on trace tables
22 / 19 Feb / Documentation; JavaDoc
switch; menu handling
Supplying data: compile-in, user input, read from file,
Exception handling / Exercises on JavaDoc
Exercises on menu handling
Exercises on supplying data, reading from file
23 / 26 Feb / Testing, Blackbox testing, Criteria to select test cases, boundary value analysis, equivalence testing
Test harness / Exercises on blackbox testing, selecting appropriate and sufficient test cases.
24 / 5 Mar / Assignment Workshop / Assignment Workshop
25 / 12 Mar / Revision week / Personal catch-up, consolidation and experimentation.
26 / 19 Mar / Automated Testing, white box testing, function coverage, statement coverage
Repeatable test harness; review meetings / Exercises on repeatable test harness
Easter break / Easter break
30 / 16 Apr / Workshop for portfolio part 2. / 4.15: Demonstrations for portfolio part 2.
Hand in complete portfolio by Wednesday 17 April.
31 / 23 Apr / Quality issues, Emerging technologies

7. Assessment

001 40% Coursework: Individual, portfolio 1600 words

002 60% Coursework: Group work, other 2400 words

Coursework 001

1. Coursework details / Coursework 001
Coursework: Individual, portfolio
This coursework has the two components. The first component is worth 15% marks and consists of an in-class test. This test will be done through Moodle and the questions in this test will be based on the Oracle Sun Java certification program.
The second component is worth 25% and consists of weekly laboratory worksheets. You will be given assessed laboratory worksheets during semester 1. You will normally have two weeks from the issue of a worksheet to get it marked. The worksheets will be marked in the labs by the lecturers. Available marks will be indicated on each worksheet. Please retain all your marked worksheets.
Submit all your marked worksheets and a printout of your online test in a single folder. The submission deadline is Wednesday 30 January 2013 to the Park Assignment Room
2. Module tutor / Dr Ambikesh Jayal
3. Tutor with responsibility for this Assessment / Dr Ambikesh Jayal
This is your first point of contact.
4. Assignment / 40% Coursework (1600 words or equivalent)
You will be penalised according to the Academic Regulations for Taught Provision if you exceed the size limit.
5. Submission deadline / a)  In class test (worth 15% marks):
4.15 PM, Tuesday, 22 January 2013 in labs
b)  Weekly laboratory worksheets (worth 25% marks):
Wednesday 30 January 2013 to the Park Assignment Room.
Your attention is drawn to the penalties for late submission; see Academic Regulations for Taught Provision.
6. Arrangements for submission / Submit to Park Assignment Room.
7. Date and location for return of work / Feedback given within four working weeks of the submission.
8. Students with Disabilities / Alternative assessment arrangements may be made, where appropriate, for students with disabilities. However, these will only be implemented upon the advice of the Disability Advisor. Students wishing to be considered for alternative assessment arrangements must give notification of the disability (with evidence) to the Disability Advisor by the published deadlines.
9. University Regulations for Assessment / All assessments are subject to the Academic Regulations for Taught Provision. These include regulations relating to Errors of Attribution and Assessment Offences. In exercising their judgement, Examiners may penalise any work where the standard of English, numeracy or presentation adversely affects the quality of the work, or where the work submitted exceeds the published size or time limits, or where the work fails to follow normal academic conventions for acknowledging sources.

Coursework 002

1. Coursework details / Coursework 002
Coursework: Group work, other
Propose and develop a software system.
2. Module tutor / Dr Ambikesh Jayal
3. Tutor with responsibility for this Assessment / Dr Ambikesh Jayal
This is your first point of contact.
4. Assignment / 60% Coursework (2500 words or equivalent)
You will be penalised according to the Academic Regulations for Taught Provision if you exceed the size limit.
5. Submission deadline / Wednesday 17 April 2013 to the Park Assignment Room.
Your attention is drawn to the penalties for late submission; see Academic Regulations for Taught Provision.
6. Arrangements for submission / Submit to Park Assignment Room.
This is a group work. While submitting the assignment in the park room, please make sure to attach the assignment cover sheet for each group member.
7. Date and location for return of work / Feedback given within four working weeks of the submission.
8. Students with Disabilities / Alternative assessment arrangements may be made, where appropriate, for students with disabilities. However, these will only be implemented upon the advice of the Disability Advisor. Students wishing to be considered for alternative assessment arrangements must give notification of the disability (with evidence) to the Disability Advisor by the published deadlines.
9. University Regulations for Assessment / All assessments are subject to the Academic Regulations for Taught Provision. These include regulations relating to Errors of Attribution and Assessment Offences. In exercising their judgement, Examiners may penalise any work where the standard of English, numeracy or presentation adversely affects the quality of the work, or where the work submitted exceeds the published size or time limits, or where the work fails to follow normal academic conventions for acknowledging sources.

1.  Coursework Details

Propose and develop a software system. The proposal should be in the form of a Word document (one or two pages) and outline the requirements of the system. You need to get this proposal approved by one of the tutors to make sure that the software is not too ambitious and can be completed within the assessment timeframe. We encourage you to propose a software system that interests you. However you could choose one of the following.

i.  Game involving the becker robot package.

ii.  Education loan repayment system. Links for demo and details of BBC student finance calculator are as follows http://www.bbc.co.uk/news/education-14785676

iii.  http://www.bbc.co.uk/news/business-12688170

iv.  Pubs quiz system.

v.  An ATM Machine/bank system.

2.  Group Work

This work is to be performed in groups of at most three people. You are to form your own groups. Your proposal should contain the name and student id of group members. We expect each group member to contribute at the design, implementation and testing stages of software development. All documents should include their author.

3.  Submission

You need to submit the software code for the system and a brief report.

You should submit the following:-

a)  Electronic versions of software code and report e.g. on a CD.

b) Printed copy of group report containing the following components.

i.  The initial proposal approved by tutor

ii.  List of requirements,

iii.  Screen shots of the running system.

iv.  A list of at least three technical or group management problems faced while developing the system and the manner in which these problems were handled.

v.  Reflection upon your experience of developing this system.

vi.  Description of test cases, expected outcome and actual outcome.

vii.  Notes of review meetings

viii. Notes about each group member’s contribution to the project.

c) A printed copy of the individual report. The individual report of up to 200 words should evaluate your group’s submission and your own contribution to the group effort.

Make sure to attach the assignment cover sheet for each group member.

You must also demonstrate your code to one of the tutors on Tuesday, 16 April, 4.15pm in the labs. Attendance at this demonstration is compulsory for all students.

4.  Assessment Criteria

The coursework will be assessed on the following three components.

1 / System works as per requirements
(Assessed during presentation in the class scheduled for Tuesday, 16 April, 4.15pm in the labs)
2 / Quality of source code (code easy to understand, maintain and extend, well commented, Javadoc generated)
3 / Testing
Test case description, expected output, actual output
We encourage you to have test cases for each requirement mentioned in your proposal.
Criteria to choose test case (according to requirements, boundary value analysis, equivalence partitioning)

The following grade table will be used for marking. Note that the overall grade will be determined by the application of the ICT Fields Assessment Criteria.