Teaching
Portfolio
CS-1P Programming - Glasgow University - Quintin Cutts
|
|
Home Context Course Structure Reflection Outcomes |
Rationale,
Aims, Objectives, Content |
RationaleCS-1P is a programming course that is intended to be of significant value to all students eligible for the module. We wish to embed a set of principles that will be effective for large scale programming for continuing students, and sufficient basics for non-continuers to transfer to other languages in their own disciplines. We are therefore concentrating on the following aspects
AimsTo produce programmers equipped with an understanding of
ObjectivesOn completion of the course, the student should Knowledge - know about:
Skills - be able to:
Attitudes - appreciate that:
ContentThe following are not presented in an intended chronological order of delivery, nor are they intended to be delivered as discrete units. Overview and Introduction: Overview of programming; background, history and context; programming languages; programming environment; compilers; the edit-compile-link-execute model; portability; programming style and conventions; hand-execution of simple programs. Problem solving: Understanding the problem; plans; top-down design / stepwise refinement; recognition of similarities between problems leading to adaptation and reuse. Fundamental computational concepts: Syntax and semantics; statements and expressions - execution and evaluation; flow of control - sequence, iteration, selection; state - declaration, update and use of variables; procedural and functional abstraction - declaration, use, parameters and results; I/O - graphical and textual; types - primitive and compound types, type checking; program units; programming models - simulation, data processing, event-driven. Programming language concepts (language-specific implementations of the concepts above): Comments; identifiers; elementary types - numeric, boolean, character, enumeration; text and graphical I/O packages; variables, types and expressions; declarations and statements; iteration (while, for, etc.); selection (if, case); procedures and functions; parameters and parameter passing modes; type compatibility and strong typing; elementary data structures - arrays, strings, records, arrays of records; text files and sequential files; exceptions; program units - packages. Testing and debugging: compile-time and run-time errors; interpreting error diagnostics; use of diagnostic statements; stubs and drivers. Algorithms: Linear and binary search; simple sorting algorithms. The software development process: The software life cycle; requirements;
specification; design; implementation; testing; maintenance; documentation.
the importance of accurate requirements; managing the process; controlling
change; software components and re-use. Case studies of software development
to illustrate problems. |