SCHOOL OF COMPUTING
BSc. Software Engineering
This programme is designed to prepare you for a career in an exhilarating field of Software engineering. It is a discipline that deals with the development, design, and maintenance of software systems. It involves applying engineering principles and practices to create high-quality software products. Software engineers are responsible for analysing user requirements, designing software solutions, implementing and testing those solutions, and ensuring their proper functioning.
Tuition Per Session
$560
Tuition Per Semester
$315
Introduction to BSc. Software Engineering
Start Your Bachelor’s Degree in Software Engineering
Learn on your terms with pre-recorded engaging and interactive videos on your educational journey for flexible, convenient, and self-paced study.
Why you should apply :
- Our programme is distinguished by the exceptional quality of our faculty, who are industry experts with a wealth of knowledge and practical experience.
- We offer a variety of resources to help you succeed, including a state-of-the-art computer lab, a career center, and a variety of student organisations.
- Our programmes are designed to produce highly sought-after graduates.
- A degree in Software Engineering can lead to a variety of high-paying and rewarding careers.
Study Level
Study Duration
8 Semesters
Mode of study
Blended Learning
Tuition Per Session
$560
Tuition Per Semester
$315
Applications for May 2026 admission is ongoing.
Apply before 31st May 2026, to secure your place. Discount applies for full year’s payment.
Curriculum
Programme Outline
Our curriculum is designed to provide students with a comprehensive understanding of software engineering principles, practices, and methodologies. It aims to develop their technical skills, problem-solving abilities, teamwork, and communication skills necessary for a successful career in software development and engineering.
- Faculty Support
- Digital Resources
- Career Services
- Student Community
- Identify possible sound patterns in English.
- List notable language skills and classify word formation processes.
- Construct simple and fairly complex sentences in English.
- Apply logical and critical reasoning skills for meaningful presentations.
- Demonstrate an appreciable level of the art of public speaking and listening.
- Write simple and technical reports.
- Understand the basic definitions of set, subset, union, intersection, complements, and use of Venn diagrams.
- Solve quadratic equations.
- Solve trigonometric functions.
- Understand various types of numbers.
- Solve some problems using the Binomial theorem.
- Identify and deduce the physical quantities and their units.
- Differentiate between vectors and scalars.
- Describe and evaluate the motion of systems based on the fundamental laws of mechanics.
- Apply Newton’s laws to describe and solve simple problems of motion.
- Evaluate work, energy, velocity, momentum, acceleration, and torque of moving or rotating objects.
- Explain and apply the principles of conservation of energy, linear and angular momentum.
- Describe the laws governing motion under gravity.
- Quantitatively determine the behavior of objects moving under gravity.
- Conduct measurements of some physical quantities.
- Make observations of events, collect and tabulate data.
- Identify and evaluate some common experimental errors.
- Plot and analyze graphs.
- Draw conclusions from numerical and graphical analysis of data.
- Understand the significance of Information and Communication Technology (ICT) and its application to libraries and Information Services.
- Acquire essential ICT skills for information professionals.
- Understand data communication and internet resources in electronic storage systems.
- Explore web technology resources.
- Learn the impact of ICT on modern libraries, along with ethical considerations and challenges related to applying ICT in library settings, particularly in the context of Nigerian libraries.
- Explain the basic concepts of descriptive statistics.
- Present data in graphs and charts.
- Differentiate between measures of location, dispersion and partition.
- Describe the basic concepts of skewness and kurtosis and their utility function in a given data set.
- Differentiate rates from ratio and how they are used.
- Compute the different types of index number from a given data set and interpret the output.
- Understand and apply frequency distributions to organise and summarise data.
- Create and interpret various types of charts and graphs to visualise data effectively.
- Compute and interpret measures of central tendency to identify the centre of a distribution.
- Calculate and interpret measures of dispersion to understand the spread of data points.
- Compare and contrast different approaches to probability.
- Calculate and interpret conditional probabilities to make informed decisions based on given conditions.
- Identify and work with probability distributions in the discrete case, including Bernoulli, Binomial, Uniform, Poisson, Geometric, and Hypergeometric distributions.
- Analyse continuous probability distributions, such as Uniform, Normal, and Exponential distributions.
- Explain basic components of computers and other computing devices.
- Describe the various applications of computers.
- Explain information processing and its roles in society.
- Describe the Internet, its various applications, and its impact.
- Explain the different areas of the computing discipline and its specializations.
- Demonstrate practical skills in using computers and the internet.
- Grasp environmental studies’ fundamental principles, human-environment relationships, and the impact of human activities on nature.
- Examine energy resource usage and its environmental consequences.
- Investigate chemicals and waste effects on ecosystems and health.
- Outline contemporary health issues and broadly classify them.
- Discuss some basic concepts related to clinical medicine, disease prevention/management, and population health.
- Explain the etiology, prevention, and management of key non-communicable diseases.
- Discuss the epidemiology, personal and public health consequences of selected infectious diseases.
- Discuss the personal and social determinants of health.
- Explain the place of disease prevention and health promotion in personal and population health.
- Explain the connection between contemporary health issues and sustainable development goals.
- Relate contemporary health issues to global health challenges.
- Explain problem-solving processes.
- Demonstrate problem-solving skills.
- Describe the concept of algorithms development and properties of algorithms.
- Discuss the solution techniques of solving problems.
- Solve computer problems using algorithms, flowcharts, pseudocode, etc.
- Solve problems using programming languages such as C, PYTHON, etc.
- Analyze the historical foundation of the Nigerian culture and arts in pre-colonial times.
- List and identify the major linguistic groups in Nigeria.
- Explain the gradual evolution of Nigeria as a political unit.
- Analyze the concepts of trade, economic, and self-reliance status of the Nigerian peoples towards national development.
- Enumerate the challenges of the Nigerian State towards nation-building.
- Analyze the role of the Judiciary in upholding people’s fundamental rights.
- Identify acceptable norms and values of the major ethnic groups in Nigeria.
- List and suggest possible solutions to identifiable Nigerian environmental, moral, and value problems.
- Differentiate and explain rules in calculus.
- Analyze real-variable functions and graphs.
- Grasp limits and continuity.
- Understand derivatives as the rate of change limits.
- Gain proficiency in integration techniques and definite integrals for solving area and volume problems.
- Describe and determine the magnetic field for steady and moving charges.
- Determine the magnetic properties of simple current distributions using Biot-Savart and Ampere’s law.
- Describe electromagnetic induction and related concepts and make calculations using Faraday and Lenz’s laws.
- Explain the basic physical of Maxwell’s equations in integral form.
- Evaluate DC circuits to determine the electrical parameters.
- Analyze the characteristics of AC voltages and currents in resistors, capacitors, and inductors.
- Conduct experiments on the measurements of some physical quantities.
- Make observations of events.
- Collect and tabulate data.
- Identify and evaluate some common experimental errors.
- Plot and analyze graphs.
- Draw conclusions from numerical and graphical analysis of data.
- Plan, design, and develop effective web pages with a focus on the practical application of the technologies used in web development.
- Use tools like HTML5, Cascading Style Sheet (CSS) and Javascript.
- Host a website on a selected web server.
- Develop web content development skills.
- Have a deepened understanding of communication skills both in spoken and written English.
- Demonstrate an appreciable level of proficiency in the arts of public speaking, listening, and effective communication.
- Explain the concepts, characteristics, and theories of entrepreneurship, intrapreneurship, opportunity seeking, new value creation, and risk-taking.
- Analyse the importance of micro and small businesses in wealth creation, employment, and financial independence.
- Engage in entrepreneurial thinking.
- Identify key elements in innovation and describe the stages in enterprise formation, partnership, and networking, including business planning.
- State the basic principles of e-commerce.
- Describe the Real-valued functions of a real variable.
- Solve problems using the Mean Value Theorem and Taylor Series Expansion.
- Evaluate line integrals, surface integrals, and volume integrals.
- Identify different programming paradigms and their approaches to programming.
- Write programmes in C using basic data types and strings.
- Design and implement programming problems using selection.
- Design and implement programming problems using loops and use and implement classes as data abstractions in an object-oriented approach.
- Implement simple exception handling in programmes, develop programmes with input and output from text files, and design and implement programming problems involving arrays.
- Convert logical statements from informal language to propositional and predicate logic expressions.
- Describe the strengths and limitations of propositional and predicate logic and outline the basic structure of each proof technique.
- Apply proof techniques correctly in the construction of a sound argument, apply the pigeonhole principle in a formal proof, compute permutations and combinations, and interpret results in context.
- Map real-world applications to appropriate counting formalisms under constraints and solve a variety of basic recurrence relations.
- Explain why everything is data in computers.
- Describe how numeric and non-numeric data are represented and convert numerical data from one format to another.
- Describe computations as a system characterised by known configurations with transitions from one unique state to another.
- Describe the distinction between systems and those with memory or history.
- Describe a computer as a state machine.
- Articulate that there are many equivalent representations of computer functionality.
- Use mathematical expressions to describe the functions of simple combinational and sequential circuits.
- Design basic building blocks of a computer, including arithmetic-logic units, registers, central processing units, and memory.
- Describe the concept of the software life cycle.
- Explain the phases of requirements analysis, design, development, testing, and maintenance in a typical software life cycle.
- Differentiate amongst various software development models.
- Utilise Unified Modeling Language for object-oriented analysis and design.
- Describe different design architectures.
- Explain tasks involved in software project management.
- Describe basic legal issues related to Software Engineering.
- Explain requirements engineering (RE).
- Understand what a customer wants.
- Analyse the need and assess feasibility.
- Negotiate a reasonable solution, specify and validate requirements, and manage requirements as they are transformed into a working system.
- Examine current techniques, notations, methods, processes, and tools for software requirements engineering.
- Create models for software engineering processes and products, including functional and non-functional goals, requirements, and specifications.
- Develop skills for establishing, defining, and managing requirements for large, complex, and changing software-intensive systems from technical, organisational, and management perspectives.
- Describe assignments carried out and skills acquired during the training period and submit a comprehensive report on knowledge acquired and experience gained during the exercise.
- SIWES I will take place during long vacations of 200 Level and 300 Level.
- Provide a survey of the main branches of Philosophy, Symbolic Logic, and special symbols in symbolic logic, including conjunction, negation, affirmation, disjunction, equivalent and conditional statements, and laws of thought.
- Understand the method of deduction using rules of inference and bi-conditionals qualification theory, including types of discourse, nature of arguments, validity and soundness, techniques for evaluating arguments, and distinctions between inductive and deductive inferences.
- Explain Sturm-Liouville theory and apply it to solve boundary value problems involving ordinary differential equations.
- Analyse functions and determine Fourier series expansions, including handling discontinuities and periodic functions.
- Solve partial differential equations, including the heat, wave, and Laplace equations, using separation of variables.
- Use orthogonal polynomials and functions to solve differential equations and express functions as series expansions.
- Expand functions in terms of eigenfunctions and apply the technique to differential equations with variable coefficients.
- Use Fourier transforms to solve differential equations and analyse signals in time and frequency domains.
- Develop solutions using object-oriented programming in C++ and use modules, packages, and namespaces for programme organisation.
- Use APIs in writing applications.
- Apply divide and conquer strategies to searching and sorting using iterative and recursive solutions and handle exceptions in programmes.
- Write simple multithreaded applications and design and implement simple GUI applications.
- Explain instruction formats, including addresses per instruction and variable length versus fixed length formats.
- Describe the organisation of the classical von Neumann machine and its major functional units.
- Explain how subroutine calls are handled at the assembly level.
- Describe basic concepts of interrupts and I/O operations.
- Write simple assembly language programme segments.
- Show how high-level programming constructs are implemented at the machine-language level.
- Compare alternative implementations of data paths.
- Discuss control points and generation of control signals using hardwired or micro-programmed implementations.
- Describe system requirements gathering techniques, data modelling using entity relationship modelling, and process modelling using data flow diagrams.
- Describe system architectural design, process and database design, and user interface design.
- Measure computer power consumption.
- Reduce power consumption.
- Procure sustainable hardware.
- Design green data centres.
- Recycle computer equipment.
- Configure computers to minimise power consumption.
- Use virtualisation to reduce the number of servers and apply other green technologies.
- Integrate sustainable information technology into organisational culture and planning to foster long-term sustainability.
- Explain the role of software processes in software development and experience a variety of processes, ranging from rigid to agile.
- Demonstrate a comprehensive understanding of fundamental programming concepts and data structures in C++ such as primitive types, arrays, records, strings, and string processing.
- Have a solid grasp of data representation in memory and be able to effectively allocate memory on the stack and heap.
- Be proficient in implementing and applying various data structures including queues and trees, utilising appropriate implementation strategies.
- Be skilled in managing run-time storage effectively through pointers and references, and adept at working with linked structures.
- Gain practical experience in writing C++ functions and implementing algorithms for arrays, records, string processing, queues, trees, pointers, and linked structures, further enhancing proficiency in C++ programming and data structure manipulation.
- Produce detailed object models and designs from system requirements.
- Use the modelling concepts provided by UML.
- Identify use cases and expand them into full behavioural designs.
- Expand the analysis into a design ready for implementation and construct designs that are reliable.
- Design and implement simple client-side and server-side web applications.
- Demonstrate hands-on skills in PHP and Python programming using open-source software.
- Compare and contrast web programming with general-purpose programming.
- Develop a fully functioning website and deploy it on a web server.
- Define various terminologies relating to data communication.
- Explain the seven-layer ISO-OSI standard protocols and network architecture.
- Describe different error-detection methods.
- Describe Internet technologies and protocols.
- List the features and benefits of network operating systems.
- Build, evaluate, and maintain software defined networks (SDN) and explain how SDN is changing the way communication networks are managed, maintained, and secured.
- Explain topics including data and control plane abstraction, network extensibility, automation, security, and scalability.
- Exhibit hands-on experience in SDN, network function virtualisation (NFV), and network application development.
- Describe the assignments carried out and the skills acquired during the training period.
- Submit a comprehensive report on the knowledge acquired and the experience gained during the exercise.
- Analyse the concepts of peace, conflict and security.
- List major forms, types and root causes of conflict and violence.
- Differentiate between conflict and terrorism.
- Enumerate security and peacebuilding strategies.
- Describe roles of international organisations, media and traditional institutions in peacebuilding.
- Identify business opportunities in Nigeria through environmental scanning and market research, considering social, climate, and technological factors.
- Understand entrepreneurial finance options like venture capital, equity finance, microfinance, and small business investment organisations.
- Grasp the principles of marketing, customer acquisition, and retention, as well as e-commerce models (B2B, C2C, B2C), drawing lessons from successful e-commerce companies.
- Acquire skills in small business management, family business dynamics, negotiation, and modern business communication methods.
- Demonstrate the ability to generate business ideas and explore emerging technologies for market solutions and digital business strategies.
- Recognise operating system types and structures.
- Describe OS support for processes and threads.
- Recognise CPU scheduling, synchronisation, and deadlock.
- Resolve OS issues related to synchronisation and failure for distributed systems.
- Explain OS support for virtual memory, disk scheduling, I/O, and file systems.
- Identify security and protection issues in computer systems.
- Use C and Unix commands, examine behaviour and performance of Linux, and develop system programmes under Linux that apply OS concepts related to process synchronisation, shared memory, mailboxes, and file systems.
- Verify the groundwork completed before construction and apply an object-oriented design approach.
- Write pseudocode and convert it into a specific programming language.
- Perform collaborative development, refactoring, and integration techniques.
- Apply formatting, commenting, and code readability practices.
- Explain business models and identify entrepreneurial opportunities in Software Engineering.
- Describe and create business plans and business start-up processes.
- Explain and perform business feasibility analysis and strategy.
- Explain marketing strategies and discuss business ethics and legal issues.
- Explain the processes, principles, and techniques of software testing and analysis.
- Explain topics from underlying theory of testing to organisational and process issues in real-world applications.
- Explain mobile infrastructures, mobile technologies, and design and implementation skills for mobile apps using contemporary development methodologies and environments.
- Explain mobile systems, mobile operating systems, and mobile application development environments.
- Explain short-range communication technologies such as Bluetooth and WiFi.
- Explain mobile application development methodologies including Android-Java and iOS-Swift.
- Explain mobile application deployment and distribution and mobile networks and communication infrastructures including GSM, CDMA, and 3G/WCDMA/UMTS.
- Describe the components of a database system and give examples of their use.
- Describe the differences between relational and semi-structured data models.
- Explain and demonstrate the concepts of entity integrity constraint and referential integrity constraint.
- Apply queries, query optimisations and functional dependencies in relational databases.
- Describe properties of normal forms and explain the impact of normalisation on the efficiency of database operations.
- Describe database security and integrity issues and their importance in database design.
- Explain the concepts of concurrency control and recovery mechanisms in databases.
- Distinguish qualitative and quantitative research methodologies and their applications.
- Identify and define a research problem in a given area.
- Identify different methods of data collection and select methods appropriate to a given situation.
- Design and conduct simple research including analysis and interpretation of research results.
- Document the research problem and methodology through to report writing.
- Defend the written research report.
- Familiarise themselves with ethical issues in the conduct of research.
- Explain the use of Big-O, Omega, and Theta notation to describe the amount of work done by an algorithm.
- Use asymptotic notation to give upper, lower, and tight bounds on time and space complexity.
- Determine the time and space complexity of simple algorithms.
- Deduce and solve elementary recurrence relations for recursively defined algorithms.
- Identify practical examples for strategies such as brute-force, greedy, divide-and-conquer, recursive backtracking, and dynamic programming.
- Use pattern matching to analyse substrings.
- Apply numerical approximation techniques to solve mathematical problems such as finding polynomial roots.
- Understand project planning, scheduling, and resource utilisation.
- Manage project resources and procurement decisions effectively.
- Monitor and execute projects with strong communication and time management skills.
- Lead projects to timely and successful completion.
- Adapt to project complexities and make informed decisions to achieve goals.
- Identify a researchable topic in Software Engineering and conduct a relevant literature review.
- Acknowledge and reference sources appropriately.
- Design a research methodology to address the identified problem.
- Select tools for analysing collected data.
- Present a written project proposal.
- Explain the importance of software configuration management.
- Describe typical processes in configuration management and maintenance.
- Identify key issues in software maintenance.
- Explain principles and techniques in reverse engineering of binaries, including static and dynamic analysis.
- Demonstrate malware analysis techniques, anti-analysis methods, and obfuscation approaches.
- Apply tools such as IDA for practical analysis.
- Analyse malware and firmware samples and develop analysis tools.
- Explain AI fundamentals, concepts, goals, techniques, branches, and applications.
- Discuss intelligent agents and their architectures.
- Describe the Turing Test and the Chinese Room argument.
- Analyse heuristics and trade-offs among completeness, optimality, and complexity.
- Explain search strategies and combinatorial explosion.
- Demonstrate knowledge representation techniques such as semantic networks and frames.
- Translate natural language into predicate logic and apply resolution techniques.
- Evaluate programming languages and tools used in AI applications.
- Explain state laws and regulations related to ethics.
- Identify and explain relevant codes of ethics and social issues in Software Engineering.
- Review ethical cases and develop ethical resolutions and policies.
- Explain consequences of non-compliance with ethical provisions.
- Develop sound methodologies for resolving ethical conflicts and crises.
- Understand architectural design and implementation of software systems.
- Apply architecture specifications, patterns, methodologies, and tools.
- Use programming environments effectively in architectural implementation.
- Describe fundamentals and concepts of human-computer interaction.
- Explain interface design and development principles.
- Recognise the importance of user feedback in system improvement.
- Demonstrate technical competence in Software Engineering.
- Show communication and teamwork skills.
- Produce and defend a technical project report.
- Demonstrate the ability to conduct full research work.
- Understand compiler, assembler, and interpreter design principles.
- Explain syntax, semantics, and parsing techniques.
- Analyse lexical analysis, code generation, and run-time storage organisation.
- Construct parsing tables and manage symbol tables.
- Generate optimised code and handle error detection and recovery.
- Apply supervised and unsupervised learning techniques.
- Implement decision trees, linear and logistic regression, SVM, clustering, and ensemble methods.
- Understand probabilistic models and model evaluation techniques.
- Gain introductory knowledge of neural networks and auto-encoders.
- Understand cloud architecture, principles, and best practices.
- Explain secure cloud service design and regulatory compliance requirements.
- Design and manage secure cloud-based services.
- Contribute to resilient and secure cloud infrastructures.
Admission Requirements
Admission Requirements for BSc. Software Engineering
100 Level Entry Requirements for BSc. Software Engineering
Here’s what you need to study for a bachelor’s programme at Miva Open University
A copy of your O’Level result
The result must include a minimum of five credits in the following subjects in not more than two sittings:
- Mathematics
- English
- Physics
- Any other two (2) science subjects
Please note that submission of Joint Admissions and Matriculation Board (JAMB) results is not mandatory at this stage. However, upon admission to the university, the provided results will be thoroughly verified for authenticity and compliance with the stated criteria, including JAMB Regularisation.
Direct Entry Admission Requirements for BSc. Software Engineering
Here’s what you need to study for a bachelor’s programme at Miva Open University
Direct Entry Candidates must meet ‘O’ Level requirements for the programme:
- Two (2) 'A' Level passes in science subjects including Mathematics.
- NCE merit passes in Mathematics and one other Science subject.
- ND lower credit in Computer Science or other Mathematics/Computing/Physics/Electronics based programmes.
- Very good passes in three (3) JUPEB subjects: Physics, Mathematics, Chemistry or Biology.
- 'A' Level passes chosen from English Language, Mathematics, Environmental Science, Biology, Chemistry, Physics, Further Mathematics, Technical Drawing, Computer Studies and Information Technology
- International Baccalaureate (IB) Diploma in relevant subjects.
Careers
Potential Roles for BSc. Software Engineering Degree Dolders
- Software Developer/Engineer
- Full-Stack Developer
- Software Architect
- Quality Assurance Engineer
- DevOps Engineer
- Systems Analyst
- Technical Consultant
- Software Project Manager
- Machine Learning Engineer
- Game Developer
- Mobile App Developer
- Startup Founder
- Chief Technical Officer (CTO)
- Entrepreneur
Tuition
Payment Plans
Miva Open University offers a flexible payment plan for its degree programmes. You may choose to pay the year’s fee or per semester.
Tuition Per Semester
$315
/Semester
- Pay Per Semester.
- No hidden charges.
- No additional costs.
Tuition Per Session
$560
/Session
- Pay Per Session
- No hidden charges.
- No additional costs.