Course content


Introduction to Operating system; Different type of Operating System; closed source     system and Open source system, Advantage and Disadvantage of each operating System,  Processor organization; multi-programming and multi-processor systems.  Addressing techniques (Indexing and indirect addressing relocation techniques, segmentation), scheduling, resource management 


Course outline

  1. Week 1 - Introduction to Operating System: Historical perspectives, major components of OS - 6th November 2019

  2. Week 2 - Functions of Operating System - 13th November 2019

  3. Week 3 - Process management (Processes, Threads) - 20th November 2019

  4. Week 4 - Practicals: Installation of Windows Operating System - 27th November 2019

  5. Week 5 - Practicals: Installation of Linux Operating Systems - 4th December 2019

  6. Week 6 - Theory test 1 - 11th December 2019

  7. Week 7 - Process Management (CPU scheduling, synchronization, and deadlock [meaning, conditions {mutual exclusion, hold and wait, no preemption, circular wait}, detection {resolved by termination or preemption}, prevention and avoidance]) - 18th December 2019
  8. Week 8 - Memory Management of Operating System - 8th December 2019

  9. Week 9 - Memory Management of Operating System - 15th January 2020

  10. Week 10 - Filing Systems - 22nd January 2020

  11. Week 11 - Theory Test 2 - 29th January 2020

  12. Week 12 - Seminar presentation - 5th February 2020

  13. Week 13 - System Configuration - 12th February 2020

  14. Week 14 - Recap - 19th February 2020




System configuration


System Configuration is a term in systems engineering that defines the computer hardware, the processes as well as the various devices that comprise the entire system and its boundaries. This term also refers to the settings or the hardware-software arrangement and how each device and software or process interact with each other based on a system settings file created automatically by the system or defined by the user

System configuration mainly refers to the specification of a given computer system, from its hardware components to the software and various processes that are run within that system. It refers to what types and models of devices are installed and what specific software is being used to run the various parts of the computer system. By extension, system configuration also refers to the specific operating system settings that have been set by default automatically or manually by a given program or the user.

A computer system, particularly the operating system, dictates a set of default settings and configuration when the system first comes online. These settings dictate the normal function and features that make the system run in a stable manner. To this end, operating systems have their own configuration utilities to allow administrators or users to change the configuration of the system. For Microsoft Windows, this is called the Microsoft System Configuration Utility or "msconfig."

Course description

The course provides understanding of software development issues for large scale development through modelling and notation. Furthermore, the course provides understanding and practices on essentials of software Project Management including straight forward techniques for project scooping and control as well as tools and techniques for planning, scheduling and tracking.

Course Objectives:

At the end of the course candidates should be able to:

  1. Be able to describe the major elements of the Software Development process
  2. Be able to use a typical formal specification method
  3. Be able to contrast properties of formal and informal software specification techniques
  4. Be able to create simple program specifications of typical formal specification method
  5. Be able to apply the requirements and domain analysis methods of the Unified Modeling Language (UML).
  6. Be able to perform Use Case and Activity Diagram analysis for problems of limited size.
  7. Be able to effectively use available tools for program specification and design
  8. Be able to work effectively in a group to employ the above skills in the planning and implementation of a system of non-trivial size.

Course Contents:

  1. Introduction (Notes)(Reference):
  2. Software Processes (Notes)
  3. Requirements Engineering (Notes) (Assignment)
  4. System modeling
  5. Architectural Design
  6. Software testing
  7. Project Management
  8. Project Planning

Required Readings

  1. Bruegge B., & Dutoit A. H (2004) : Object Oriented Software Engineering Conquering Complex and Changing Systems, 2nd Edition, Prentice Hall
  2. Sommerville I. (2004): Software Engineering, 8th Edition, Adson – Wesley,
  3. Henry J. (2003) : Software Project Management, A Real World Guide to Success, International edition, Pearson

Recommended Readings

  1. Schmuller : SAMS Teach Yourself UML in 24 Hours, Sams Publishing,
  2. Sommerville : Software Engineering, Addison Wesley 5th Ed.
  3. O’connell, F.(2001) : How to run successful projects III, Addison Wesley
  4. Roger S. Pressman (2000) : Software Engineering A Practitioner's Approach European Adaptation, 5th Edition
  5. M. Looijen (2000) : Management of IS, Prentice Hall,Int.


What is software engineering

The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software.

Software process: Most projects follow recognized stages. The set of steps which lead to a software product is called a software process

 Recommended contents

  • Course overview
  • Software processes
  • Project management
  • Software Requirements
  • Requirement engineering
  • System models
  • Formal Specifications
  • Application Architecture
  • Object Oriented Design
  • User interface design
  • Verification and Validation/Testing
  • Rapid Software Development
  • Design overview
  • Testing overview
  • Design patterns
  • Development platforms
  • Version control
  • Managing People

 Recommended contents

  1.  Introduction to Software Engineering and Computer Ethics.
  2. Process Models and Software Products
  3. Requirements Analysis
  4. Structured design I, Modularity
  5. Structured design II: -Functional decomposition
  6. Structured design III: Data Flow Design
  7. Object-oriented design
  8. User interface design.
  9. Programming paradigms
  10. Object-oriented programming
  11. Verification    
  12. Issues of Software fault tolerance and exceptions
  13. Project management
  14. Course wrap-up and review


Course content

  1. Introduction to system administration: History, Roles, Windows vs Linux,
  2. Basic Information and account Management
  3. Installation of Operating System
  4. Basic windows/Linux commands and tools: startup, shutdown, task manager, account management
  5. System processes: Scheduling jobs (scheduler/cron), job monitoring(event view/ps, start and stop jobs using both commands 
  6. Disk administration. File systems/partitions. Disk DeFragmentaion. RAID. Basic client/server file sharing
  7. Files, directories and memory management. Permissions
  8. Networking: TCP/IP, DNS, DHCP,  Domains/NIS. File sharing.Client/Server. NFS. NetBeui. PDC/BDC. Active directory. Setting up file server (and client/server network). Ethernet addresses.Hostnames
  9. Automating system admin tasks. Scripts. Regedit (shell, pert C)
  10. Performance monitoring and optimization
  11. Security and Backups: Patches, passwords,kerberos, enigma. Tools (tcpwrappers and others). Backup methods

Course description

The course is to provide the foundation to the students’ skills in using numerical approaches to solve mathematical/real life problems. The focus will be on the ability to correctly formulate numerical problems and schemes that solve them.

Course Objectives:

  • To provide a basis on the numerical approaches to computational, problem solving;
  • To provide students with problem analysis and solving skills to be able to
    handle typical computational problems in practice.

Course learning outcomes

At the end of the course candidates should be able to:

  • Use Mathematical skills in basics of Information Technology.
  • Use the schemes to generate solutions to the different setups of numerical problems to the required precision
  • Use mathematical concept in other courses.
  • Apply different mathematical principles to solve Problems in Information Technology
  • Compute various mathematical equations
  • Derive mathematical formulas.

Course Contents:

  • Linear Programming: Simultaneous Equations, Linear Inequalities, Linear Programming.
  • Coordinate Geometry: Equation of straight Line, Midpoint of a line segment, Distance between two points on a plane, Parallel and Perpendicular Lines, Solve problems on parallel and perpendicular lines
  • Trigonometry: Trigonometrical Ratios in a unit Circle, Relationship between trigonometrical ratios, positive and negative Angles, Application of Trigonometric Ratios.
  • Vectors: Displacement, Equivalent and Position Vectors, Magnitude of a Vectors, Direction of a vectors, Addition of Vector, Addition of Vectors, Scalar Multiplication of Vectors, Application of Vectors.
  • Exponential and Logarithmic Functions:

Required Readings

  • Tanzania Institute of Education (2002). Secondary Basic mathematics Book four

Recommended Readings

  • Numerical Analysis by Richard L. Burden and J. Douglas Faires, Wardsworth,1993.
  • A.K. Kaw, E.E.Kalu and D.Nguyen (2008). Numerical Methods with Applications