Bachelor Of Science Honours Degree in Computer Science
- 4 YearsCourse Duration
- UndergraduateSkill level
- 21 Feb, 2020Admission Deadline
- In order to qualify for normal entry candidates must satisfy the Entry Requirement specified in the General Regulations and in so doing must also meet the following requirements: -
- The candidate must have obtained a PASS at 'A' level in at least two of the following subjects Mathematics or Pure Mathematics or Additional Mathematics or Mechanical Mathematics and any one of Physics, Computer Science, Software Engineering.
- Special entry: candidates who have successfully completed a National Diploma in Information Technology or its recognised equivalent may apply for entry into Part 1.
- Mature Entry: candidates who are at least 25 years of age on the first day of the academic year in which admission is sought and who are not eligible for entry under the Normal or Special Entry Regulations may apply for Mature Entry provided that: Applicants must have passed at least five “O” Level subjects including English Language/Maths
Software Engineering, Network Administration, Cyber Security, Digital Forensics,
Information Communication Technology
Research and innovation oriented. Teaching and learning are professionally oriented and focused on practical aspects
Teaching and Learning
Lectures, tutorials, laboratory classes, seminars, group work, farm-based activities, industrial visits, industrial attachment, research project, individual independent study
Written and oral examinations, tests, laboratory reports, seminar presentations, industrial attachment report, mini-research project report, final year research project report, continuous assessments
PART I SEMESTER I
SCS 1101 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING / 12 credits
Information and Knowledge Societies, Evolution of Computers, Computer Organisation and Architecture: CPU; Memory; I/O, Number Systems and Conversions ( Bin; Dec; Hex; Oct), Concepts of Computer Languages: high\low level languages; compiler; interpreter, Programming Techniques: grammar; recursion; Variables; Data types; Initialization; Comments; Keywords; Constants; Assignment, Programming constructs: branching; looping; recursion; Programming using data structures: arrays; lists; trees; hash tables; queues; stacks; files, Programming Algorithms for Problem Solving: Sorting; compression; numerical and encryption, Fundamentals Operating System, Fundamentals Data Bases, Fundamentals of Networks
SCS 1102 MATHEMATICAL FOUNDATION FOR COMPUTER SCIENCE 10 credits
Sets, relations, functions. Discrete probability. Combinatorics: Permutations and Combinations. Propositional logic. Logical Connectives. Truth tables. Normal forms. First order predicate logic. Reasoning about programs: axiomatic semantics, pre/post-conditions, loop invariants. Recurrence relations, Application to searching and sorting
SCS 1103 OPERATING SYSTEMS CONCEPTS / 10 credits
Overview of operating systems structures, Operating system organisation and Services, Computer design, the hardware and its interfaces, Device management. I/O management. Creating virtual device abstractions. Support for processes and threads. Job Scheduling, Disk scheduling, file systems. Process management, synchronisation and communication. Memory management: deadlock, virtual memory management and processing Synchronisation. File management. Filing systems, interface and implementation. Case studies drawn from Linux, mobile operating systems, android.
SCS1105 COMPUTATIONAL RESEARCH METHODS / 12 credits
empirically-based design research, Typical approaches to empirically-based design research are: direct observation of the results of designing; surveys of designers' perceptions; and protocol studies of individual and collaborating designers designing. Axiom-based design research axiom-based research produces models of design through the identification of a set of axioms and the logical consequences of the axioms. this approach to design science research involves: (i) specifying relevant axioms (ii) deriving logical consequences of the axioms mapping the axioms and their consequences onto a particular domain to derive new results. Critical thinking and analysis; critical reasoning; scientific writing for computer science; tools for presentation of research in computer science.
PART I SEMESTER II
SCS 1201 PROGRAMMING AND PROGRAM DESIGN /10 credits
The concept and properties of algorithms, Programming process, Fundamental design concepts and principles: Divide-and-conquer strategies; Abstraction; Program decomposition; Encapsulation and information hiding, Separation of behaviour and implementation, Basic syntax and semantics of a higher-level language, relevant program representations: basic blocks; control-flow graphs; defuse chains; static single assignment, Jackson Structured programming
SCS 1202 DATABASE CONCEPTS / 10 credits
Database management systems (DBMS), Database Models: Entity-relationship Model. The relational model. The SQL language. Database design: ER to Relational mapping, the systems development lifecycle, the database lifecycle, Conceptual design, logical, physical design. Normalisation. Aspects of physical database access: Database Transactions: Distributed Databases: Client-server database systems. Higher-level and extended data Models: Object-oriented data models are introduced. SQL3. Requirements of Multimedia database
SCS1203 BUSINESS INFORMATION SYSTEMS /10 credits
The Business Environments; Changing lives and businesses in the Information Era, Redesigning the organization with information systems Types of Information system: TPS; MIS; DSS; and Expert Systems. The Systems life cycle, the phases within it and the activities and documentation appropriate to each phase. Other development strategies, including 4GLs, Prototyping, and Evolutionary development. Building and managing information systems; IS project organisation and management Information System Security and Control the Internet and electronic business
SCS1204 LOGIC DESIGNAND SWITCHINGCIRCUITS / 10 credits
Binary logic functions, Set Theory and Venn Diagrams, Logic Gates, Karnaugh Maps, Combinatorial Circuits: - design procedure, adders, Sub tractors, Integrated circuits. Sequential Circuits: - flip-flops, Equivalent Gates, Counters and Registers. Computer Aided Circuit Design Practical.
SCS 1205 SOFTWARE ENGINEERING CONCEPTS / 10 credits
Software development process, agile software development, requirements engineering, analysis and design, documentation, implementation strategies, system testing, validation and verification, software evolution, project management, software development life cycle.
SCS1206 VISUAL PROGRAMMING CONCEPTS AND DEVELOPMENT / 10 credits
Structure and Nature Of Visual Applications, user interface Contexts (webpage; business applications; mobile applications; games), Canonical uses (GUIs; mobile devices; robots; servers) , Events and event handlers, Separation of model, view, and controller, Visual Design Elements :Object; Controls; Windows; Forms; Dialogues; Templates; Panels; Panes; etc., user-centred development, interaction design: Physical capabilities; Cognitive models, Social models, Principles of good design and good designers, Accessibility, Principles of graphical user interfaces (GUIs), Elements of visual design, User interface standards, Functionality and usability requirements, Techniques for gathering requirements, Internationalisation, interaction styles and techniques, Representing information to users, Design, implementation and evaluation of non-mouse interaction
SCS 1207 STRUCTURED PROGRAM DESIGN / 10 credits
Basic syntax and semantics of a higher-level language variables and primitive data types (e.g. numbers, characters, Booleans), types, expressions and assignments, simple I/O including file I/O; structured decomposition; program decomposition techniques, top-down functional decomposition. Conditional and iterative control structures: sequence, selection, iteration. Functions and parameter declaration, returning values, pass by value and pass by reference, inline functions. Program design methodology: structured methodology, object-oriented methodology, design notation.
CTL 1101 CONFLICT TRANSFORMATION & LEADERSHIP / 10 credits
The thrust of the course is understanding peace and conflict; theories of conflict; conflict analysis and tools; economic roots of conflict; gender and conflict; leadership; leadership and conflict handling mechanisms; leadership and conflict handling mechanisms; women in leadership; leadership ethics; interplay: leadership, conflict and development
PART II SEMESTER I
SCS 2101 COMPUTER DATA COMMUNICATIONS / 10 credits
Type of media, transmission, modulation, network topologies, synchronous and asynchronous transmission data link protocol, network topologies, OSI model, TCP/IP suite, Transport layer, Addressing Network layer, Data link layer. Planning and cabling networks.
SCS 2102 COMPUTER ARCHITECTURE /10 credits
Fundamentals and performance Technology trends, measuring CPU performance, Amdahl’s Law and averaging performance metrics. Assembly level machine organisation Basic organisation of the von Neumann machine, control unit: fetch, decode and execution, components of instruction sets, RISC and CISC and example instruction sets, addressing modes. Interfacing and communication, I/O fundamental: handshaking, buffering, programmed I/O, interrupt –driven, Interrupt structures: vectored and prioritised, interrupt acknowledgement. External storage, physical organisation and drives. Buses: bus protocols, arbitration, direct memory access (DMA). Multimedia support. Analogue and digital devices. Memory system organisation and architecture Storage systems and their technology. Memory hierarchy: importance of temporal and spacial locality. Main memory organisation operations. Latency, cycle time, bandwidth, interleaving. Cache memories (address mapping, block size, replacement and store policy) embedded systems Microcontrollers, The C programming language, device drivers, and the device driver software environment.
SCS 2103 DATA STRUCTURES AND ALGORITHMS/ 10 credits
Problem solving, algorithms, Data structures - pointers, linked lists, queues, stacks, trees, priority queues, sets, maps, graphs and operations on them; Applications of data structures and algorithms
Algorithms- Mathematical Principles of algorithm analysis to evaluate algorithm space/time trade-offs. Algorithm Design -divide and conquer (recursion), backtracking, dynamic programming, randomized algorithms sorting, searching, hashing, shortest path algorithm.
SCS 2104 SYSTEMS ANALYSIS AND DESIGN / 10 credits
Overview of systems development lifecycle, structured analysis and design, business systems and computer resources. Analysis phase and techniques used, SSADM, Outline of Version IV, DFDs, data dictionaries, DFDs. Database definitions. Object Oriented analysis and design Project planning and control, communication. Documentation and document standards. Prototyping, Case study of practical systems project using structured approach to systems development.
SCS 2108 OBJECT ORIENTED SOFTWARE CONCEPTS AND DEVELOPMENT / 12 credits
The Object Oriented programming model: Software reusability concepts. Abstraction, Polymorphism. Objects, messages, encapsulation. Classes, inheritance, and class categories. Foundation and Collection Classes. Design and Implementation techniques. Object Oriented Programming and Databases. Java Basics: History, Design Goals, the Web, Java Programming. Java Virtual Machine: Java Compiler, Byte-codes, Interpreter, JIT Compilation, Software Portability, Garbage Collection, Security. Java APIs: Abstract Window Toolkit, Java Foundation Classes, Commerce, JDBC. Java and the Internet: Applets, Communication, RMI, Client & Servers, Data Access, Network Computers.
SCS 2109 COMPUTATIONAL MODELLING / 10 credits
Introduction to computational modelling. Modelling methodologies. Modelling software tools. Data modelling, fitting curves and distribution to data. Pseudo code extraction. Stochastic and deterministic simulation. Algebraic application in modelling software tools. Data modelling, fitting curves and distribution to data. Pseudo code extraction. Stochastic and deterministic simulation. Algebraic application in modelling
PART II SEMESTER II
SCS 2201 SOFTWARE DESIGN METHODOLOGIES /10 credits
Reliable System/Software Design Concepts and Development Methods: design management and development lifecycle phases; Object Oriented method: Object Oriented analysis and design. Prototyping, System maintenance, System dependability and security, Case Study/Project: design of a database retrieval system with OOD front –end and functional data-base design
SCS 2203 ADVANCED MATHEMATICAL STRUCTURES FOR COMPUTING / 10 credits
Sample spaces and events; axioms and definitions; total and conditional probability; Bayes rule; Independence. Random Variables: - continuous and discrete; distribution and density functions; mean, variance and co-variance definitions and properties. Special Distributions: - uniform, Poison, Normal – definitions and properties and examples. Mathematical logic, linear algebra and graph theory. Computer Aided
Implementation using Mathematical tools like MATLAB or OCTAVE
SCS 2204 INTERNET AND WEB DESIGN / 10 credits
Fundamentals of networks and TCP/IP-Internet services Internet legal and privacy issues Internet commercialisation Internet societal impact, Home page programming using latest versions of tools such as HTML, CSS, java script, and PHP Web Content Management using software systems such as Word press, Joomla and Drupal, Java Web services, XML and AJAX
SCS 2206 SOCIETAL COMPUTING / 10 credits
Ethics and ICT, computing applications that address social needs such as basic health, rural health issues, rural education needs, water and shelter needs. E-governance and e-government that improves democracy. Computer applications that address environment concerns such as climate change. Policies and applications that can reduce the digital divide.
SCS 2207 COMPUTER NETWORKS AND APPLICATIONS/ 10 credits
Networking technology overview, Overview of the network data link protocol and networking layers. Introduction to routing and packet forwarding, Static and Dynamic Routing, Distance Vector Routing and Link State Routing. Router configuration including Wireless Router configuration, LAN design and switch configuration. VTP, STP and Inter VLan Routing Frame relay and Access control Lists
PART IV SEMESTER I
SCS 4010 INDIVIDUAL PROJECT: IMPLEMENTATION AND PRESENTATION / 12 credits
The project consists of implementing a major piece of software and involves report writing and verbal presentation. The specification and design of the software. The project may involve a large suite of software consisting of a mixture of rapidly prototyped software and 'near-market' quality software. The project may or may not involve traditional academic research and the re-use of existing software and algorithms is encouraged. The software (combined with the business plan) should convince potential investors that the project is worth further funding.
SCS 4101 ARTIFICIAL INTELLIGENCE/ 10 credits
Overview of AI problems: Intelligent behaviour; The Turing test; Rational versus non-rational reasoning, Nature of agents, Agent architectures: Reactive; Layered; cognitive, Nature of environments, Uninformed search: breadth-first; depth-first; depth-first with iterative deepening, Heuristics and informed search: hill-climbing; generic best-first; A*, Problem spaces, Logic: Proposition and Predicate, Forward chaining, backward chaining, probabilistic reasoning, Bayes theorem, Machine learning: statistical-based learning; parameter estimation; ILP, State-of-the-art robot systems: sensors and sensor processing
SCS4103 SOFTWARE PROJECT MANAGEMENT /10 credits
The software project life cycle Team participation, Roles and responsibilities in a software team Role identification and assignment Individual and team performances assessment Team processes including responsibilities for tasks, meeting structure, and work schedule Team conflict resolution. Team organization and decision-making Risk - The role of risk in the life cycle; Risk categories including security, safety, market, financial, technology, people, quality, structure and process; Risk identification Risk tolerance (e.g., risk-adverse, risk-neutral, risk-seeking) Risk planning, removal, reduction and control principles of risk management Risk analysis and evaluation Project Scheduling and tracking project management tools Cost/benefit analysis, Software measurement and estimation techniques, Software quality assurance and the role of measurements
SCS 4108 SIMULATION AND MODELLING/ 10 credits
Introduction to Simulation and Modelling. Basic simulation and modelling methodology: sampling, data collection analysis and visual output. Modelling complexities and decision-making simulation. Basic simulation topics: random numbers, statistical functions, and experimentation. Applied statistical methods for analysis and modelling. Approaches to structuring simulations. Introduction to variance reduction. Focus on discrete simulation, but overview on Monte Carlo, continuous, and agent-based simulation
SCS 4110 INFORMATION SYSTEM SECURUTY AND AUDITING / 10 credits
Foundational Concepts in Security: CIA, ethics, terminology. Security Policy and Governance. Principles of Secure Design: least privilege and isolation, fail safe defaults, open design, end-to-end security, security by design, security composability. Defensive Programming: input validation and data sanitization, race conditions, security updates. Threats and Attacks: attacker types, malware, side and covert channels. Cryptography: terminology, cipher types, mathematical preliminaries, symmetric and public key cryptography, authenticated key exchange protocols. Network Security: security protocols (wired and wireless), secure architectures. Web Security and e-commerce: web security model, session management, client-server security, application vulnerabilities and defences. Platform security: code integrity and code signing, secure boot, peripheral threats, OS and embedded devices
SCS 4111 ENTERPRISE ARCHITECTURE PROGRAMMING / 10 credits
Java Platform, Enterprise Edition (Java EE), Design Evaluation, Programming Paradigms, Cache Coherence, Memory Consistency, Threads and Synchronization, Java Mobility Technology, Interconnection Networks, Scaling Trends, GPUs (Graphics Processing Units), Smart Phones/Tablets Programming (e.g. Android), Programming for Data Centres/Supercomputers, JAVA Native Interfaces (JNI).
PART IV SEMESTER II
SCS 4010 INDIVIDUAL PROJECT: IMPLEMENTATION AND PRESENTATION / 12 credits
The project consists of implementing a major piece of software and involves report writing and verbal presentation. The specification and design of the software is as agreed in the co requisite course SCS 4104. The project may involve a large suite of software consisting of a mixture of rapidly prototyped software and 'near-market' quality software. The project may or may not involve traditional academic research and the re-use of existing software and algorithms is encouraging. The software (combined with the business plan) should convince potential investors that the project is worth further funding.
SCS4201 DATABASE DESIGN AND MANAGEMENT / 10 credits
Detailed examination of techniques used in the implementation of relational, Object-oriented and distributed database systems. Topics are drawn from: Query optimisation, transaction management and concurrency control, database performance tuning and query optimisation, business intelligence and data warehousing, database connectivity and web technologies.
SCS 4203 COMPUTER GRAPHICS / 10 credits
Fundamentals of Computer Graphics: Applications of Computer Graphics, Digitization of analogue data, Human perception, Images formats, Colour models, Graphics display systems: raster and vector graphics systems, developing of graphical systems. GUI construction using a standard API: double buffering, vector and raster rendering. Basic Rendering (using API): rendering in nature, ray-casting and rasterization, basic radiometry, ray tracing, affine transformations, line generation algorithms, rendering of a polygonal surface (shading), graphics pipeline, visibility and occlusion, texture mapping, Phong reflection model, anti-aliasing. Computer Animation: forward and inverse kinematics, collisions, procedural animation, key-frame animations, camera animation. Visualisation: colour mapping, iso surfaces, and applications of visualization. Principles of Computer vision
SCS 4207 EXPERT SYSTEMS AND DECISION SUPPORT SYSTEMS / 10 credits
Organization of expert systems; Knowledge acquisition. Knowledge representation in Expert Systems; Issues in knowledge representation, and languages. Representation schemes: logical procedural, network, structured. Objects, messages, and hybrid expert system design. A survey and application of expert system development tools. Limitations of expert systems.
SCI 4201 DIGITAL FORENSICS /10 credits
Computer devices, Data collection, Evidence Collection, Extraction and preservation of evidence, Data Recovery, Evidence preservation, verification & authentication, Data Discovery & Identification, Data Analysis, Computer Forensics Tools, Data Hiding Techniques, Computer forensics and mobile forensics.
SCS 4208 DISTRIBUTED SYSTEMS / 12 credits
A detailed coverage of distributed systems, with a particular focus on concurrency programming using distributed computing architectures. Use of distributed architectures for big data processing and parallel computing. Distributed memory coherency; distributed file systems; distributed process management, including load sharing and process migration; concurrency control; fault tolerance, recoverability and distributed transactions; naming; industry standards; case studies.
SCS 4109 FORMAL LANGUAGES AND AUTOMATA / 10 credits
Introduction to the theory of formal languages. The Chomsky hierarchy of formal grammars and the corresponding automata. Finite state automata and regular expressions; Deterministic and nondeterministic finite state automata (FSA). Context-free grammars as a formal description device for programming language syntax; Context-free grammars and pushdown automata in parsing programming languages. Language translation systems and semantics.
SCS 4105 COMPARATIVE PROGRAMMING LANGUAGES / 10 credits
A brief history of programming languages. Comparing languages: programming paradigms, language features executive styles. (e.g. C, C++, Java and Perl). Language design issues, pointers and arrays, functions and procedures, memory allocation. Miscellaneous topics: machine dependencies, separate compilations and data hiding. Operator overloading. Single multiple inheritance. Exceptions
SCS 4205 HUMAN COMPUTER INTERACTION / 10 credits
Definition of HCI, HCI principle and theories, the evolution of HCI, its challenges and goals. Components of HCI, conceptual model of HCI and its design, cognitive frameworks for HCI; Introduction to Cognitive psychology: memory, knowledge, learning, inference, skill acquisition, and procedural vs. declarative knowledge. Cognitive models of HCI: interface metaphors, I/O interactive styles. Information search and information visualization techniques Interactive design methods and techniques, HCI evaluation
and contract management. Project planning and management. Management of expectations, change, system evaluation and selection, vendors, and consultants