Wednesday, September 12, 2012

Programming Concepts: Details of Semester 1 Units

UNIT VALUE: 1.0 TYPE: CORE SYNOPSIS

This unit lays the foundations of good programming practice and includes program design, coding to standards, the importance of documentation and the need for program maintenance. Core skills developed in this unit include the interpretation of design specifications, program design and coding, preparation of documentation,numerical manipulation and report presentation. The emphasis in this unit focuses on programming techniques and methodologies and the systematic development of effective, reliable software. This unit runs in parallel with Introduction to Programming in order to provide students who are developing programs a sound method of design and construction. The knowledge gained in this unit will also be a foundation stone to the final year units, Object Oriented Programming II and Software Engineering.  

AIMS

The aims of this units are to:
  1. Introduce current principles and practices of programming.
  2. Develop the ability to apply current principles of programming practice by using appropriate methods and facilities.
  3. Provide experience in the use of software development tools.
KNOWLEDGE TO BE GAINED
  1. Introduction: Overview of the software life cycle and technology involved.
  2. Structured Programming: Principles of software design. Control structures (sequence, selection & iteration). Program design using Top-Down Stepwise Refinement in detail including pseudocode.
  3. Testing and Debugging: Syntactic and semantic errors. Testing methods (desk check, dry runs, etc.). Creation of test data. Use of testing aids such as dynamic debuggers, etc. Implementation of appropriate testing methods and testing aids to demonstrate the program correctness and reliability.
  4. Documentation: Types of documentation (user, operations, technical, etc.). Documentation standards. Program documentation.
  5. File Processing Concepts: Elements of a computer file. Classification of data files.
  6. Decision Tables: Concepts of decision tables. Types of decision tables. The usefulness of a decision table to the programmer.
  7. Sorting and Merging: The need for sorting and merging in computer applications. Types of eternal sorting methods.
  8. Maintenance: Need for software maintenance. Importance of programming for maintainability. Modification of existing software.
  9. Object Oriented Programming: The basic underlying concepts of object oriented programming. This includes introduction to elements such as classes, objects, attributes, methods, etc.
SKILLS TO BE ACQUIRED

On completion of this study the student will be able to: A. Analyse the specification of a simple problem and develop an appropriate program design. B. Generate appropriate documentation. C. Use appropriate tools in the development and testing of a program.