Teaching

  1. Computer Security

    Computer security is a branch of technology concerned with digital security or information security applied to computers. Since the largest part of the computer that users interact with is software, computer security pays big attention to development of secure software.

    Indicative content

    • Digital security principles
    • Hardware based security mechanisms
    • Secure operating systems
    • Security architecture
    • Security by design
    • Secure coding (Software Security)
    • Access Control Lists
    • Security Applications
  2. Principles of Programming Languages

    The course introduces students to the low level organization and operation of programming languages. It covers semantic and syntactic as well as operational issues in programming languages. The building blocks of programming languages are explored.

    Indicative content

    • Overview over programming language paradigms.
    • Common principles: syntax, syntax trees, formal semantics (denotational and operational), variables and binding.
    • Types: role of types in programming and programming languages, types and their operations: products, sums, functions, recursive types, reference and array types.
    • Primarily imperative issues: control flow, arrays, pointers and references, parameter-passing mechanisms and scoping.
    • Type systems: strongly typed languages type checking (static vs. dynamic), type equivalence (by name vs. structural), overloading, coercion, polymorphism and type inference.
    • Binding: declarations and environments. Block structure: scope and visibility, stack discipline. Bound occurrences: static vs. dynamic binding.
    • Encapsulation: information hiding, modules, abstract data types and classes.
    • Language implementation: parsing, code generation, garbage collection.
  3. Numerical Analysis

    The course is to sharpen the students’ skills in using numerical approaches to solving mathematical/real life problems. The focus will be on the ability to correctly formulate numerical problems and schemes that solve them. Emphasis will be put on the precision and robustness of the schemes.

    Indicative content

    • Errors and their propagations.
    • Langrange’s Interpolating Polynomial.
    • Iterated interpolation.
    • Finite difference interpolating polynomials.
    • Numerical Differentiation.
    • Numerical Integration.
    • Adoptive iteration.
    • Solutions to non- linear equations.
    • Systems of non -linear equations.
    • Systems of linear equations.

For more insformation constact me or my supervisor John Ngubiri