N-UCI Questions: Teaching Computer Science at Secondary Schools
Theoretical Foundations of Computer Science
- Propositional logic. Syntax, semantics, the inference system of propositional logic, proofs in propositional logic, truth and provability of logical formulas. (IB000)
- Functions and Recursion. Recursive definitions of functions, recursive data types (lists, trees), functions over recursive data types. (IB114)
- Data structures and their implementation. Abstract data types: list, array, stack, queue, binary tree, general tree, search tree. Implementation of binary and search trees and operations on them. (IB113, IB114)
- Graphs. Types of graphs, trees, degree of vertices, directed graphs, graph representations. Depth-first and breadth-first graph traversal algorithms and their applications. Components of connectivity. (IB114)
- Sorting. Basic algorithms; heap sort, merge sort and divide-and-conquer sort algorithms. (IB114)
- Regular languages. Regular languages, regular grammars, regular expressions, finite automata. Properties of regular languages, the relationship between finite automata and regular grammars. (IB110)
- Finite automata. Definition, construction of a finite automaton, minimisation of a finite automaton, conversion of a non-deterministic finite automaton to a deterministic automaton. (IB110)
- Computability. The Turing machine as a universal computational model. The halting problem. Decidability and partial decidability, undecidability. Diagonalisation. (IB110)
- Complexity. Algorithm complexity versus problem complexity. Complexity classes (P, NP, PSPACE) and the relationships between them; examples of problems from each class. The difficulty and completeness of a problem within a given class; polynomial reductions of problems; NP-complete problems. (IB110)
Programming, Computing and Information Systems
- Computing Systems I. Number systems, relationships between systems, representation of integers in a computer, arithmetic. Codes: internal, external, detection and correction codes. Processors, their parameters and architectures. (PB150)
- Programming. Structured programming in an imperative language; data and control structures in programming languages; data types; procedures and functions; block and modular programme structures. (IB113)
- Operating systems. Operating system architectures, operating system interfaces. Processes, process synchronisation, deadlock and methods of deadlock prevention. Memory management, logical and physical address spaces, memory management and methods of implementation. Scheduling in operating systems. (PB153)
- Computer networks. Topologies, access methods and architectures of computer networks (Ethernet, Fast Ethernet, Token Ring, ATM, etc.). Wireless communication technologies. The OSI model. The TCP/IP protocol. Interconnection of computer networks and information routing. (PB156)
- Databases I. Relational model, relational schema, keys in relational schemas, integrity constraints, relational algebra, join operations. (PB168)
- Databases II. The SQL query language (SELECT statement, join operations, aggregate functions). Query processing. Basic principles, example. Indexing. Transactions. Properties of transactional processing.
- Software engineering. Software development. Requirements specification, system analysis and design, testing, verification and validation, system operation. The use of UML in software development. (PB007)
Didactics of Computer Science (for single-subject study programmes only)
An answer to a question on the didactics of computer science must include: the placement of the given topic within the curriculum of the subject being taught; a specification of the pupil’s prior knowledge; a clarification of which information the pupil must be confident of knowing after the topic has been covered (depending on the type of school) and which information is intended as extended learning material for gifted pupils; motivational examples; a presentation of the topic using appropriate teaching methods and suitable demonstration examples; and methods of assessing knowledge. When assessing answers to questions on the didactics of computer science, in addition to technical accuracy, consideration will also be given to the form of presentation (with regard to the conduct of the lesson); the presentation must adhere to the principles and tenets of general didactics.
- The development of computing. The origins and development of basic programming languages. Future trends in the development of computing.
- Fundamentals of algorithmisation. Algorithms and their properties, design, notation and implementation. Programming languages and their classification. Choosing an appropriate programming language for solving a given problem.
- Basic data types and their classification. Visual representation of data structures. Ways in which they can be used to solve specific problems. Dynamic data structures, their implementation and operations on them.
- Programme structure. Control structures in programmes, their syntax and semantics. Structured and object-oriented programming. Procedures and functions, methods of passing parameters. Recursion.
- Basic algorithms. Searching, sorting. Visualisation of programme execution; principles of programme debugging and testing. Algorithm complexity and programme optimisation.
- Computer networks. Computer networks, the Internet and their services. Classification of computer networks. Basic rules of security in computer networks and privacy protection. Copyright in relation to software and working with ICT. Working with information, including searching for, sorting and storing it.
- Computer architecture. Basic principles and models of computer systems. Processors, memory and other components of a modern computer system. The relationship between hardware, the operating system and application software.
- IT management. Basic software from a user’s perspective. Operating application software. Operation and administration of application networks and the operating system.
- The subject ‘Information Technology and Computing in Primary/Secondary Schools’. Objectives and syllabus of the subject. Curriculum for the relevant school stage. Distribution of the syllabus across year groups depending on the anticipated duration of IT lessons and links to other subjects. Concept for equipping classrooms and schools with computing technology. Suitable equipment depending on the type and specialisation of the school. A comprehensive plan for the development and use of ICT in the school.
- Computational thinking. Creativity and divergent thinking. Design a test of divergent thinking for your pupils. Are pupils with distinctly divergent thinking more popular with teachers, or conversely less popular – and why?
- General pedagogy. The lecture method. Its advantages and disadvantages. The pace of the lecture. Maintaining pupils’ attention. Transferring information from short-term to long-term memory. Lecture techniques.