ICM logo

ICM Single Subject Diploma in


Course Outlines


  • The difference between different types of languages from assembler, through high-level languages to 4GLs and object-oriented languages. An outline history of the development of languages over the years
  • Differences between procedural and declarative languages
  • Summary of the stages of the translation process – compiler and interpreter
  • An appreciation of assembly language code through a limited set of operation codes. How these build into a program. Writing full programs is not required

Program Development

  • Overview of the stages of program development from receiving a program specification to handing over a fully tested and documented program applied to a professional programmer. Candidates should have an appreciation of the difference of scale of real programs compared with classroom exercises
  • Initial understanding of the problem. Checking details with the systems analyst
  • Create algorithms for real problems
  • Comparison of different algorithmic methods – flowcharts, pseudo-code, decision tables, Jackson charts. Advantages and disadvantages of each
  • Define structured programming and construct. The three main constructs – sequence, selection, iteration. Top-down programming
  • Modular programming. How modular program can be implemented. Advantages and disadvantages of their use
  • Prototyping. Advantages and disadvantages of its use

Input and Output of data

  • Data types and the operations that can be performed with each
  • Keyboard entry of data. Handling and correcting invalid data
  • Standard output layouts. Invoices. Account ledgers
  • Design a layout for a given situation. This must be workable in the real world
  • Differences between output on a screen and a printer

Filing data

  • The need for files. The consequences of filing systems not being available
  • File structure. Organization and access methods. An appreciation that a file might be accessed for more than one purpose and so determining the method of organization
  • Programming for serial and sequential files. Commands relating to file handling – open, close, read, write, check the end of the file, append
  • Programming to locate records from the whole file that satisfy a given condition
  • Programming to accumulate values from each record in a file
  • Programming to merge two similar files into one
  • Sequential master file update from an unsorted transaction file. Candidates will not be expected to program for this

Handling data in memory

  • Variables – rules for naming variables/procedures/functions
  • Performing calculations
  • Decisions – IF, CASE

Loops. Difference between the three main looping features and when to use them

  • FOR/ENDFOR for a fixed number of repeats
  • REPEAT/UNTIL for variable repeats – the process is always executed at least once – test for an exit at the end
  • WHILE/ENDWHILE for variable repeats – the process may not execute even the first time in rare situations – test for the exit at the beginning. Use of data TERMINATORS

Arrays – 1-dimensional and 2-dimensional

  • Read all data into an array
  • Output all data from an array
  • Search an array for a given value
  • Accumulate values held in some elements of an array
  • Use one array to find data to access another
Text data – extract character(s) from a string. Joining strings

Procedures/Subroutines and Functions

  • Use of procedures for structuring and re-use processes. Library of procedures/functions
  • Parameter passing. Calling a procedure. How parameters are handled internally
  • Difference between procedures and functions
  • Standard functions such as:(a.) Numeric – SQRT, ABS, INT, RANDOM, SIN/COS/TAN. (b) String – LEFT, RIGHT, ASC, VALUE. {The names may vary in different languages}.


  • Plan the structure of test data for a program
  • Design test data for valid and invalid situations
  • Perform a dry run/desk check using test data and an algorithm – layout the results in table format showing the value of variables only as they change
  • Programming to test invalid conditions and subsequent repeated re-entry after data is rejected until it is finally accepted
  • Testing by program. Recording the results in a test log. Levels of testing – module, program, system, user acceptance
  • Methods of locating errors of logic – dry run, trace routines, testbed routines, temporary print commands inserted
  • Difference between syntax and logic errors. How and when syntax and logic errors are detected and corrected


  • The need for documentation
  • Documentation for the maintenance programmer
  • Documentation for the user
  • The reasons why user and maintenance programmer documentation are different
  • Uses and benefits of comments/annotations in program listings

Leave a Reply

Your email address will not be published. Required fields are marked *