Computer Science (MSc)

Overview

Masters in computer science program gives students the opportunity to further their knowledge about foundational and applied topics in computing preparing them for advanced industrial or research positions. Computing jobs can be found in almost all sectors of modern life today: banking, oil and gas, telecoms, agriculture, health-care, transportation, entertainment, media and communications, power generation.

Our Philosophy is to produce world-class professionals and academics with advanced degrees in Computer Science who can: (1) Fill the widening pool of careers in this area (including leading the creation of new ones), both in academia and the emerging IT industry in Nigeria and the entire Sub-Sahara Africa region, (2) Lead the charge of leveraging IT as a catalyst for Development, and (3) Contribute to research and practice in computer science relevant to the needs of the region.

 

Course Structure

The Master of Science in Computer Science programme requires a minimum of 36 credit hours made up as follows:

8 core courses (3 credit hours each)  - 24 credit hours

2 elective courses (3 credit hours each) - 6 credit hours

Thesis  (done over two semesters) - 6 credit hours

Total: 36 credit hours

 

Duration: minimum 18 months maximum 36 months

Course Descriptions

CIE 802 Research Directions and Methodology

This course aims to equip research students with the necessary foundations and skills to evaluate and perform qualitative research at a postgraduate level. Course Description: Three semester hours. This course offers "An overview of research methodology including basic concepts employed in quantitative and qualitative research methods. Includes computer applications for research.

 

CSC 803 Advanced Computer Algorithms

The course explores the analysis of algorithms and the relevance of analysis to the design of efficient computer algorithms. advanced topics in complexity theory problem classification. The classes P, NP, P-space, co-NP. Matching and network flow algorithms. Algorithms for parallel, distributed and Cloud computing will be examined. Also Matrix multiplication and approximation algorithms. Students learn about advanced algorithms and techniques for classifying and dealing with hard problems. Students also get experience applying these algorithms to applications through home-work and a class project.

 

CSC 804 Software Engineering Principles & Practices

This course aims to introduce the fundamental principles, methods and practices of team-based software development, with a key focus on the object-oriented and function-oriented design, from requirements analysis, definition, and formal specification methods, through design and prototyping to implementation, testing, and deployment. Students will appreciate key activities in the development of software applications, including project management, requirements specification and design. Students are prepared to participate in a software development team and to optionally pursue further studies in advanced topics in software engineering.

 

CSC 847-Advanced Computer Architecture

Advanced topics in vector architectures, including: pipelined architectures, dataflow computers, VLSI architectures, butterfly connections; bus and memory architectures; cache structures; hardware implementations of algorithms.

 

CSC 849-Cloud and Distributed Computing

Current issues in operating systems, including multiprocessor systems and distributed computing, networks, security and performance. Case studies of current operating systems. The objective of this course is to offer a study of the design and implementation issues of distributed computing systems. It revisits the designs and approaches used by traditional centralized systems and proposes relevant solutions based on the distributed computing environment. The topics include: Client/Server Computing; Remote Object Invocation; Message-Oriented Communications; Stream-Oriented Communications; Cluster Computing; Software Agents; Distributed Transaction Models; Consistency Protocol; Reliable Computing; Distributed Recovery; SUN Network File System; CODA File System; CORBA; DOM.

 

CSC 852-Advanced Programming Language Principles 1

Language design and paradigms, including concepts underlying functional, logic, object-oriented and parallel paradigms. Theoretical foundations, including lambda calculus, denotational and axiomatic semantics. Proofs of program correctness. Programming projects emphasizing different aspects of language design

 

CIE 856-Topics in Artificial Intelligence

Introduction to topics in artificial intelligence such as problem solving methods, game playing, understanding natural languages, pattern recognition, computer vision and the general problem of representing knowledge. Students will be expected to use LISP. Understanding the foundations of Artificial Intelligence, including: Representing intelligent behavior in terms of agent, Searching a space of answers for a solution to a problem in practical time, Representing problems in terms of logic and deduction, Automated creation of complex plans in complex and unknown environments, Logical representations of uncertainty, and rational decision making in uncertain environments, Automated creation of new knowledge from examples and previous knowledge. To provide an overview of the state-of-art algorithms used in AI.

 

CSC 867-Topics in Database Systems

Advanced topics in the area of database and information systems. Content differs in each offering. Possible topics include though not restricted to: Data Mining, Distributed Databases and Transaction Processing. Equip students with knowledge and skills on some advanced topics in database systems supporting the changing landscape of computing systems. Topics include: Missing Information without Nulls; Issues in SQL; Concurrency in databases; Temporal Databases; Web databases.

 

ELECTIVE COURSES

CSC 801 Advanced Operating Systems

Focus of this course is on design and implementation of modern operating systems. Topics include: operating system design, virtual memory management, virtual machines, OS interaction with the hardware architecture, synchronization and communication, file systems, protection, and security.


CIE 812 E-Commerce

Electronic commerce may be thought of as a revolution in progress. If organizations are going to take advantage of the new Internet technologies, they must first address them as an integral part of their strategic perspective. Businesses are recognizing the Internet's role in the decision process that organizations go through in analyzing and purchasing goods and services. Electronic commerce is the use of computer networks to improve organizational performance. This course focuses on the study of current management issues associated with electronic commerce strategies.

 

CSC 805-Computer Communications and Network

Design and analysis of message switch networks of terminals and computers. Topics include topological design, line capacity and location, routing and flow control….

 

CSC 823-Bioinformatics

The course investigates the main algorithms for solving computational problems in bioinformatics. Methods will include Hidden Markov Models for gene prediction and protein profiling, and Genetic Algorithms for biological sequence analysis and structure prediction. Students will be given programming projects. The aim for this course is to give students knowledge of and competence in use of bioinformatics methods central to conduction of molecular biological research projects. The course has emphasis on bioinformatics related to exploration of proteins and includes analyses of sequences, database searches, sequence comparison, visualization and analysis of protein structures, and introduction to phylogenetic analyses. The students will get an introduction to the theoretical foundations for a few key methods. The course will also give an introduction to analysis of DNA sequences, genes and genomes, gene expression and systems biology. Through practical exercises, the course aims to give students a basic competences in the use of bioinformatics tools. The course emphasizes the learning of bioinformatics tools in light of the student's knowledge of molecular biology.

 

CSC 835-User Interface Design

Human-computer interaction principles. Direct manipulation, focus plus context, interaction history; interfaces for websites and website collections; usability testing; role of metaphors; case studies; advanced topics include information visualization, interfaces for collaboration, intelligent interfaces, and software agents.

 

CSC 840-Advanced Software Project

A semester-long project, assigned by the instructor. Class discussion of project issues, including software design methodologies, applicable algorithms/data structures and system interfaces.

 

CSC 851A-Object-Oriented Analysis

Emphasizes the important concepts, activities, and artifacts of the analysis phase of object-oriented software development. CASE tools and UML are used to model application domain data, workflows, system requirements, deployment, and life cycles. This course teaches the principles of Object Oriented Analysis (OO Analysis) using the UML notation. Java language will be introduced & used for the application of the analysis's results in code level.

 

CSC 851B-Object-Oriented Design

Course covers important concepts, activities, and artifacts of the design phase of object-oriented software development. Topics include design metrics, design patterns, refactoring, frameworks, and testing.

 

CSC 854- Theory of Computation 1

Introduction to the classical theory of computer science. A study of the formal relationships between machines, languages and grammars; we will cover regular, context free, recursive and recursive enumerable languages. Sequential machines and their applications to devices, processes, and programming. Models of computation: finite state automata, push down automata, Turing machines. The role of non-determinism.

 

CSC 855-Design and Analysis of Algorithms

Randomized algorithms. Parallel algorithms. Distributed algorithms. NP-completeness of particular problems. Approximation algorithms. The primary objective of this course is to introduce the topic of algorithms as a precise mathematical concept, and study how to design algorithms, establish their correctness, study their efficiency and memory needs. The course consists of a strong mathematical component in addition to the design of various algorithms.

 

CSC 857-Advanced Data Base System

Design management and performance issues on: file organization and access methods, buffer management and storage management. Query processing and query optimization, transaction management, recovery, and concurrency control techniques. Reliability, protection and integrity techniques. Extensive programming project. This course aims to provide fundamental understanding of database design principles, implementation and management in a single-site environment. Topics include: Database design methodology: entity-relationship model, functional dependency, normalization, data definition language. Query Language: SQL, relational algebra, query by example. Data model: relational model. Database management issues: integrity, trigger, user constraint, security. Transaction management: ACID properties, concurrency control, serializability, locking protocols, deadlock. WWW applications.

 

CSC 865-Cryptography and Computer Security

Security mechanisms for protecting information in computer systems and networks. Includes cryptography and its applications to security services in distributed systems, mathematics of cryptography, access control, protection models, security policies, design of secure systems, firewalls, and intrusion detection. This course unit is aimed at introducing the technologies and practices that can be used to secure information, computer systems and networks. The course will cover security threats and vulnerabilities, principles of cryptography, and practical topics in network and Internet security. It is designed for students who have some understanding of computer networks and protocols, but no background in security.

 

CSC 868-Topics in Wireless Mobile Networking

Advanced topics in the area of wireless mobile networking. Content may differ in each offering. Possible topics include though not restricted to: wireless local and metropolitan area networks, mobile Internet, sensor networks, mobile computing, wireless network security. Repeatable when topic changes.

 

CSC 871-Advanced Logic in Computer Science

A thorough introduction to predicate and modal logics, and their applications in computer science and artificial intelligence. Particular emphasis on modal logics most relevant to computer science and AI: temporal, dynamic and epistemic logic. The aim of the course is to expose the students to mathematical logic and its use within theoretical computer science. The main focus of the course is on mastering the various proof techniques needed in other courses later in the curriculum.

 

CSC 874-Topics in XML and Web Intelligence

XML: DTD, Schema, Namespace, XSLT, XPath, Xquery, Encryption, Signature in XML, applications in vertical industries; Semantic Web; RDF, RDFS, Ontology, Inferences; Web services, relevant tools for search, inference, data conversion in XML, Semantic web applications. Current XML application areas and uses. In-depth knowledge of one XML based technology and its application. XML application areas and environments, use of XML on server side and databases, XML in .NET environment. Topics: XQuery language, XML Schema language, RSS and micro-summaries, XSLT programming for SVG and RSS, other XML related standards such as DOM interface.

Admission Requirement
Tuition Fees