Theoretical Computer Science; Languages: regular expressions, context-free grammars, recursive definitions; Automata: finite automata (deterministic and non-deterministic), conversion from grammars to automata, transition graphs, push-down automata; problem-solving: understanding and developing algorithms; Implementing algorithms to apply language definitions and to simulate automaton: iteration, nested iteration, arrays, multidimensional arrays, scope of variables, static me...
Learning Outcomes
Acknowledge the links between mathematics, science and computer science & appreciate the historical context in which the theory of computer science was developed
Understand and describe the concept of finite state machines and regular languages
Write simple programmes in jva using conditional statements, loops, arrays and methods
Apply problem solving techniques to programming problems
Choose appropriate representations for problems
Combine programming constructs to implement simple algorithms
Compare good and bad implementations and algorithms