This program has been reviewed with the intention of making the program competitive while maintaining the high standard of the program. With the Courses offered, the graduates will become highly competitive in the job market and at the same time prepare them in becoming independent in making choices of career and self employment. Students are trained not only in the technical areas of specialization but also in personal development, communication skills and entrepreneurship.
The primary aim of the Computer Science Department is to provide a sound training leading to a M.Sc. degree in computer science. It is also the aim of the department to provide general computer science Courses required in other disciplines. It is intended that upon completion of the programme the graduate should:
- be able to identify and apply software engineering and hardware engineering tools effectively;
- have acquired adequate skills to be able to design and implement suitable computer applications, both software and hardware, and advice on such applications;
- be fully equipped to take on postgraduate studies in computer science; and
- have attained a level of academic competence in computer science to be able to function as a productive member of his/her profession.
Any applicant who meets the minimum entry requirements for admission into the University may be granted admission, the requirements are :
- An A’ Level Certificate (a Degree, HND or PGD) with 2:2, Lower credit, or Pass respectively and above.
- Transcript of the A’Level result.
- Copy of International Passport data page.
- A copy of CV.
To register for any of the available courses take the following steps
- Click on courses on the menu bar or apply now button to pick a course
- After selecting the course, click apply now to add to cart
- View the cart to fill the application form
- Submit the form to go to the payment page
- Complete the payment form and select method of payment and submit.
- You will receive an email letting you know of your registration and your application status
- You will be contacted by one of our admission team member to guide you on the admission.
- After making the payment of application fee admission letter will be sent to your email with fee structure.
- You will need to make payment of at least 70% of the tuition and acceptance fee for you to be granted access to the course applied for.
- After making the payment an email will be sent to your email with access link to your registered course.
- You study online and can come to school every semester for exams.
Tuition per Session
Tuition Fee = ₦480,000
Application = ₦10,000
Acceptance = ₦ 20,000
Course kit =₦30,000
Administrative Charges = ₦60,000
Project supervision = ₦20,000
Convocation = ₦40,000
Total = ₦660,000
Advanced Computer Systems
INTRODUCTION TO COMPUTERS
1. To understand the basics of the computer.
Hello! Students, In today’s information age, computers are being used in every occupation. They are used by people of all age and profession, in their work as well as their leisure. This new social age have changed the basic concept of ‘Computing’. Computing, in today’s information age, is no more limited to computer programmers and computer engineers. Rather than knowing how to program a computer, most computer users simply need to understand how a computer functions so in this lecture I will be discussing with you about this versatile tool, why is it so powerful and useful, its history and you will also be briefed about the classification of computers its devices in my today’s lecture.
GENERATIONS OF COMPUTERS
1.To learn the generation of the computers.
Hello!friends , I am sure now you must be well versed with the History of computers from the previous lecture .Today I will be completing the remaining part of the previous lecture and then starting with the generations which tells how it has evolved from its early days, to become a powerful and useful tool for all types of users in today’s society. So Lets start on..
CLASSIFICATION OF COMPUTERS
1.To understand the Classification Of Computers
Hello students, I am sure you all must be well versed with the generations of the computer from my previous lectures and I am sure you want to know more about it. So let us begin todays session with the defination of the computer and then I will explain the characteristics, its types and so on..
Advanced Data Structures
Elementary data structures usually treated in the “Programming 2” class are the stack and the queue. They have a common generalization, the doubleended queue, which is also occasionally mentioned, although it has far fewer applications. Stack and queue are very fundamental structures, so they will be discussed in detail and used to illustrate several points in data structure implementation.
A search tree is a structure that stores objects, each object identified by a key value, in a tree structure. The key values of the objects are from a linearly ordered set (typically integers); two keys can be compared in constant time and these comparisons are used to guide the access to a specific object by its key.
A search tree is a structure that stores objects, each object identified by a key value, in a tree structure. The key values of the objects are from a linearly ordered set (typically integers); two keys can be compared in constant time and these comparisons are used to guide the access to a specific object by its key. The tree has a root, where any search starts, and then contains in each node some key value for comparison with the query key, so one can go to different next nodes depending on whether the query key is smaller or larger than the key in the node until one finds a node that contains the right key.
This type of tree structure is fundamental to most data structures; it allows many variations and is also a building block for most more complex data structures. For this reason we will discuss it in great detail.
Search trees are one method to implement the abstract structure called dictionary. A dictionary is a structure that stores objects, identified by keys, and supports the operations find, insert, and delete. A search tree usually supports at least these operations of a dictionary, but there are also other ways to implement a dictionary, and there are applications of search trees that are not primarily dictionaries.
Balanced Search Trees” estimate_time=”30M”]In the previous chapter, we discussed search trees, giving find, insert, and delete methods,whose complexity isbounded byO(h),where histheheight of the tree, that is, the maximum length of any path from the root to a leaf. But the height can be as large as n; in fact, a linear list can be a correct search tree, but it is very inefficient.
Why Algorithm Engineering
“Efforts must be made to ensure that promising algorithms discovered by the theory community are implemented, tested and refined to the point where they can be usefully applied in practice. […] to increase the impact of theory on key application areas.”
. [Aho et al. , Emerging Opportunities for Theoretical Computer Science]
For a long time in classical algorithmics, the analysis of algorithms for combinatorial problems focused on the theoretical analysis of asymptotic worst-case runtimes. As a consequence, the development of asymptotically faster algorithms— or the improvement of existing ones—was a major aim. Sophisticated algorithms and data structures have been developed and new theoretical results were achieved for many problems.
However, asymptotically fast algorithms need not be efficient in practice: The asymptotic analysis may hide huge constants, the algorithm may perform poorly on typical real-world instances, where alternative methods may be much faster, or the algorithm may be too complex to be implemented for a specific task. Furthermore, modern computer hardware differs significantly from the von Neumann model (1993 republication) that often forms the basis of theoretical analyses. For use in real-world applications we therefore need robust algorithms that do not only offer good asymptotic performance but are also designed and experimentally evaluated to meet practical demands.
The research field of algorithm engineering copes with these problems and intends to bridge the gap between the efficient algorithms developed in algorithmic theory and the algorithms used by practitioners. In the best case, this may lead to algorithms that are asymptotically optimal and at the same time have excellent practical behavior.
An important goal of algorithm engineering is also to speed up the transfer of algorithmic knowledge into applications. This may be achieved by developing algorithms and data structures that have competitive performance but are still simple enough to be understood and implemented by practitioners. Additionally, free availability of such implementations in well-documented algorithm libraries can foster the use of state-of-the-art methods in real-world applications.
The Algorithm Engineering Cycle
There are multiple competing models that describe how software should be designed and analyzed. The most traditional one is the waterfall model, which describes the succession of design, implementation, verification, and maintenance as a sequential process. The algorithm engineering cycle—originally proposed by Sanders et al. —diverges from this view as it proposes multiple iterations over its substeps, cf. Fig. 1. It focuses not so much on software engineering aspects but rather on algorithmic development.
We usually start with some specific application (1) in mind and try to find a realistic model (2) for it such that the solutions we will obtain match the requirements as well as possible. The main cycle starts with an initial algorithmic design (3) on how to solve this model. Based on this design we analyze (4) the algorithm from the theoretical point of view, e.g., to obtain performance guarantees (5) such as asymptotic runtime, approximation ratios, etc. These latter two steps—to find and analyze an algorithm for a given model—are essentially the steps traditionally performed by algorithmic theoreticians in the pen-and-paper.
Current Topics and Issues
When we move away from simple, cleanly defined problems and step into the realm of real-world problems, we are faced with certain inconsistencies and surprises compared with what theoretic analysis has predicted. This does not mean that the theory itself is flawed but rather that the considered underlying models do not exactly reflect the problem instances and the actual computer architecture. The inherent abstraction of the models may lead to inaccuracies that can only be detected using experimentation.
Generally, there are multiple issues that arise, rather independent of the specific problem or algorithm under investigation. In this section we try to group these into general categories and topics (cf. Fig. 2), which have by now defined worthwhile research fields of their own. Clearly, this categorization is not meant to be exhaustive but only representative. In the field of algorithm engineering we are always looking out for further interesting issues being revealed that influence algorithmic behavior in practice and are worth systematic investigation.
In the following we will concentrate on the algorithmic aspects that are involved when developing theoretical algorithms for real-world problems. Due to the algorithmic focus of this chapter, we will not discuss other modeling issues based on the fact that our underlying algorithmic problem might be too crude a simplification of the actual real-world problem. We will also not discuss the issues arising from noisy or partially faulty input data with which our algorithms may have to deal. However, bear in mind that these are in fact also critical steps in the overall algorithmic development. They may even influence the most fundamental algorithmic decisions, e.g., it will usually not be reasonable to concentrate on finding provably optimal solutions if the given input is too noisy.