SEM510 Theory and Practice of Programming.
Last Given in Autumn 1996.
SEM510 A) Practical Programming.
LECTURERS: Various.
DURATION: The whole of week 1 and the 2 hrs per week for weeks 2-6 + lab sessions.
LECTURES: 12 hrs in week 1. 5 hrs in weeks 2-6.
TUTORIALS: 5 hrs in weeks 2-6.
LABORATORY SESSIONS: 8 x 2hrs in week 1, 3 x 2hrs per week in weeks 2-6.
METHOD OF ASSESSMENT : Documented Programs.
SYLLABUS:
IT Stream. Practical experience of Pascal programming language running under
Microsoft windows in the Pentium Lab.
SE Stream Practical experience of C++ as first language running under UNIX.
AI Stream. Practical experience in an AI language running on the UNIX lab.
SEM510 B) Programming Methodology.
LECTURER: S.Laflin
DURATION: 2 hrs per week for weeks 2-6.
LECTURES: 10 and about 20 hours of private study each week.
TUTORIALS: If Needed.
PROBLEM SESSIONS: If Needed.
METHOD OF ASSESSMENT : Practical work and January Examination.
Syllabus
Week One, Lectures 1 & 2.
Definition of Software Engineering. The need for formal methods and structured
programming. Documentation. Use of pseudo-code and data tables. Modularisation.
Definition of module interface and documentation for a module. BS6224 and flow
charts as an alternative to pseudo-code.
Exercise for Week One.
Take Pascal listings of procedures and produce data tables, pseudo-code, flow
charts and BS6224 diagrams. Hand in documentation for any one procedure.
See the attached file for examples of Flow charts and
BS6224 diagrams. The "Mastermind Prgram" was the first exercise for the IT workshop
that year.
Week Two, Lectures 3 & 4.
Program testing. Black-box and Glass-box testing. Equivalence partitioning.
Boundary-value analysis. Functional and mutation testing. Types of cohesion.
Cohesion and coupling.
Exercise for Week Two.
Design a detailed testing strategy for the current workshop
exercise and hand in the listing, documentation and testing strategy for ONE module.
Week Three, Lectures 5 & 6.
Data flow diagrams, control flow and structure charts. Production of structure
charts for given examples. First and higher level factoring. Requirements definition,
analysis and specification. Validation, completeness, consistency and testability
of requirements.
Exercise for Week Three.
Structure charts and factoring for some examples. One to
be handed in.
Week Four, Lectures 7 & 8.
Testing large systems. Top-down & bottom-up testing. Types of testing. C.A.S.E.
tools. Z and formal methods.
Exercise for Week Four.
Z-specification for a small problem.
Week Five, Lectures 9 & 10.
Object-oriented design. Data encapsulation, Object-oriented approach.
Inheritance.
The examination paper set in January 1997 is included here.