This unit is an introduction to fundamentals of computer organization: roles of processors, main memory, and input/output devices. The concept of programs as sequences of machine instructions is explained. Machine language and assembly language and their relationship with high-level compiled languages is discussed. Number representation is introduced and the discussion centres on how different types of data may be represented inside a computer. Arithmetic and logical operations with integer operands. Understanding floating-point number systems and operations. Memory organization, including cache structures and virtual memory schemes. Machine representation of instructions and data, addressing techniques, memory organization, and execution of instructions at machine level. A brief introduction to operating systems and their operations is presented. How the various computer components process the data is explained. How the operating system and the hardware cooperate to make computer operations possible and efficient. The problem of resources allocation is discussed.

The subject also includes discussion of the basics of digital logic including the major logical gates and logical circuits.

This subject builds on the subject IT1060.10 Introduction to Computer Programming and reviews that subject to reinforce and extend knowledge of object-oriented programming concepts. These concepts include encapsulation, polymorphism, inheritance, and techniques for designing classes and GUI programming. These concepts are followed by a study of the software development methodologies, object-oriented development environment, object-oriented design principles and implementation of simple GUI applications. Essentially this subject focuses on object-oriented design and programming with Python for software development. The subject also deals with developing communication skills, teamwork skills and leadership and management skills.


This unit focuses on introductory theories and techniques for web design. History of the web and distinction between it and the Internet is explained. The primary focus of the unit is on design of web sites – how the visual and interactive aspects of websites are designed in ways appropriate for their users. Particular examples of web sites are examined critically to determine their effectiveness for their purpose. Web site organisational framework, designing navigation systems; principles of visual design; differences between static and dynamic page design and scripting is also covered in this unit. Client side scripting and server side scripting.

This unit introduces principles of procedural and object-oriented programming covering various concepts such as variable, data types, control structures, loops and arrays. Organisation of a computer program is explored to write programs to solve a problem from its specifications and requirements. Various operations on strings, searching and manipulation methods of arrays are also covered whilst writing programs. Simple programs with methods and functions are explored to cover scope of variables and methods. Procedural programming and object-oriented programming comparison and concepts principle of object-oriented programming are discussed. Debugging and simple testing methods are explored and implemented on simple procedures, methods, and programs.

This unit highlights the important role of computer networking in the society. It is explained that computer networks are like highway networks for society. Fundamentals of networked environments, types of networks including network topologies are covered. The concept of local area networks, local area networks fundamentals, local area networks design, internetworking – IP, internetworking and standards, packet vs switching, network protocols, networking architecture, Domain name system are also discussed. Network models - OSI Model and TCP/IP Model are discussed and compared. The role of different layers, various media, encoding schemes at physical layer and digital modulation techniques are explored.

This unit is an introduction to database management. It first identifies the need for database systems in commerce, industry and government. Database design methodology using entity-relationship diagrams is described. The relational model of database management is then explained. Importance of Functional dependencies and Normalization is highlighted. Techniques for accessing a database using relational algebra and relational calculus are explained. Use of the language SQL for interacting with a database is discussed in detail.

Storage for data in a database and improving access using indexing techniques using B-tree and hashing are covered. Query processing algorithms and query optimization are described. Transaction processing is discussed in detail including concepts like concurrency, recovery, and security. Importance of the need for a level of professionalism when designing and implementing database solutions