Teaching Responsibility
LJMU Schools involved in Delivery:
Computer Science and Mathematics
Learning Methods
Workshop
Module Offerings
4208COMP-SEP-CTY
Aims
To gain experience with IDE tools used to develop, compile, debug and test code using an appropriate high-level programming
language.
To develop problem solving and programming skills to enable the student to design solutions to non-trivial problems and implement those solutions in a high-level language.
To relate software engineering and fundamental programming skills to computer games development.
To build a foundation for more advanced programming techniques, including object-oriented design and programming and the use of standard data structures and algorithms.
Learning Outcomes
1.
Build simple data models via primitive types and arithmetically/logical manipulate data to solve a specific simple programming task.
2.
Utilise the fundamental language-level control structures to control program flow.
3.
Evaluate and select appropriate data structures and algorithms from the standard libraries of a high-level language and apply them in order to solving common programming problems.
4.
Use software engineering design techniques to decompose an application specification into a set of data models and algorithmic operations.
5.
Compose user-defined structures and functions to model real-world data and simple algorithmic processes.
Module Content
Outline Syllabus:Type Theory:
- Binary encoding (numeric data representation, single and double floating point).
- Representation of non-numeric data (character codes, graphical pattern).
- Variables and primitive data types (numbers, characters, Booleans).
- Compound types built from other types (strings, static arrays, functions, references, pointers).
- Advanced Datatype using structures.
- Goals and limitations of static typing.
Language and Program-Level Constructs:
- Basic syntax and semantics of a higher-level language. (syntax vs. semantics).
- Declaration, expressions and assignments.
- Decision structure and Logical connectives.
- Simple Input/Output including file streaming.
- Conditional and iterative control structures.
- Functions and parameter passing.
- References and Pointers.
- Strategies for choosing the appropriate data structure.
- Simple numerical algorithms (average, min, max over an array).
- Programming using library components and language-level APIs.
Software Development Fundamentals:
- The concept of a specification.
- System design principles.
- Testing fundamentals and test-case generation.
- Simple refactoring.
- Modern programming environments.
- Debugging strategies.
- Program comprehension.
- Program correctness.
- Types of errors (syntax, logic, run-time).
- Eliminating some classes of errors without running the program.
- Documentation, Comments and program style.
- Structured design and object-oriented analysis and design.
Architectural Principles Related to Programming:
- Interpretation vs. compilation to native code.
- Language translation pipeline: (parsing, linking, execution).
- Execution as native code.
- Run-time layout of memory (call-stack, heap, static data).
- Memory management (allocating, de-allocating, and reusing heap memory.
- Automated memory management (garbage collection).
Module Overview:
In this module, you will develop your high-level programming skills using the industry standard languages for computer games development. You will be introduced to the fundamental concepts of data type creation, utilisation and specification, programmatic computation, logic and how to control application flow. Practical experience with a high-level language and its associated ecosystem will lead to the development of problem solving and decomposition skills in order to solve real-world development problems using the processes of the software development lifecycle.
In this module, you will develop your high-level programming skills using the industry standard languages for computer games development. You will be introduced to the fundamental concepts of data type creation, utilisation and specification, programmatic computation, logic and how to control application flow. Practical experience with a high-level language and its associated ecosystem will lead to the development of problem solving and decomposition skills in order to solve real-world development problems using the processes of the software development lifecycle.
Additional Information:In this module, students will develop their high-level programming skills using the industry standard languages for computer games development. Students will be introduced to the fundamental concepts of data type creation, utilisation and
specification, programmatic computation, logic and how to control application flow.
Practical experience with a high-level language and its associated ecosystem will lead to the development of problem solving and decomposition skills in order to solve real-world development problems using the processes of the software development lifecycle.