Introduction to system and network administration. Hands on experience in system and network administration and security issues.
History of computation. Problem solving by algorithmic development. Computer organization. Input/output units. Memory and central processing unit. Variables and data types. Program development techniques. Logic. Preconditioning and post-conditioning. Logical expressions. Conditional and iterative instructions. Procedures and functions. Structure data types such as arrays, strings, and files. Data type definition. Recursion. Program verification and testing. Social context and ethical principles of computing.
Introduction to compiling, a simple one pass compiler; lexical analysis, symbol tables, parsing; syntax directed translation, introduction to type checking, intermediate code generation, introduction to code generation and code optimization.
Introduction to organization and design of digital computers. The
configuration of logic gates to form flip-flops, shift registers,
memories and arithmetic registers. The internal representation of
data. Input-output devices.
Development of algorithms and their implementation in a structured high level language. Programming techniques applied to the solution of engineering and mathematical problems.