Softwareeng Handbook
Softwareeng Handbook
DEPARTMENT OF SOFTWARE
ENGINEERING
1
UNDERGRADUATE STUDENTS HANDBOOK
2
3
PHILOSOPHY AND CARDINAL PRINCIPLES OF THE UNIVERSITY
Abdullahi Bayero College was reconstituted into a University College with effect from
October 01, 1975 and into Bayero University in October 01, 1977.
In pursuing its aims and objectives, the University will be constantly guided by the
requirements of the national plans, manpower needs and sheer physical and
environmental factor.
4
1.0. INTRODUCTION
The discipline of Software Engineering focuses on producing graduates who are ready to
develop and maintain quality software systems of scale for organizations and businesses
within the constraints of time, budget and other requirements. In addition to its core
computer science technical foundation, Software Engineering also involves human
processes that are harder to formalize than the logical abstraction of computer science.
The discipline therefore borrows and adapts from traditional engineering practice as well
as from the field of project management. A focus of a Software Engineering specific
curriculum must be able to develop students into software engineers through course work,
practicals and applied project experience.
The history of the Department can be traced to 1900’s when the Computer Center was
established in the University. The Center functioned as a service unit providing computing
facilities to the entire university community. Lecturers and students from different
faculties, but mainly those from the Faculty of Science, had to learn programming on their
own in order to use the facilities.
As the Information Technology revolution rapidly unfolded and new computer applications
evolved in different areas, it soon became evident that there was the need to have
specialized computer professionals that were especially fluent in algorithm design,
systems analysis, programming and software development. The University therefore
started a B.Sc. program in Computer Science in 2001 domiciled in the Department of
Mathematics.
5
University set up a high powered committee to look into this and the major
recommendation was to establish a Faculty of Computer Sciences and Information
Technology with three (3) departments namely Computer Science, Information
Technology and Software Engineering.
The new Faculty and the Departments took off in 2012 but only the B.Sc. program in
Computer Science, which was transferred from the Department of Mathematical
Sciences, had due permission from the National Universities Commission (NUC) to enroll
students. Thus, the newly established Department of Software Engineering, which barely
had six (6) members of staff, could only assist in teaching Software Engineering courses
to Computer Science students. In 2017, NUC finally gave the consent to the University to
start the B.Sc. program in Software Engineering.
1.2. PHILOSOPHY
Nigeria (and indeed sub-Saharan Africa) represents virgin territory for the software
industry and the field in turn presents huge opportunities for the region within the context
of an expanding global economy. It is well known that the software industry is the only
one that wealth can be created from zero or near-zero capital – only intellectual capital is
needed. There is therefore the need for Nigeria to grow its own crop of software engineers
as a force for sustainable socio-economic development.
(iii) Adequate training in human and organizational behavior and management in the
software development life-cycle.
6
(iv) Developing in the products entrepreneurial knowledge, a sense of public
responsibility and a spirit of self-reliance.
(v) Nurturing of partnership between the institution and the software industry for
effective programme delivery.
(vi) Creating an awareness and understanding of the moral, ethical, legal, and
professional obligations needed to function as part of the computing ecosystem
while protecting human health and welfare and the environment in a global society.
The general philosophy therefore is to produce graduates with high academic and ethical
standards and adequate practical exposure for self-employment as well as being of
immediate value to the software industry and the community in general.
1.3. OBJECTIVES
The general goal and objectives of Software Engineering education and training should
be in consonance with the realization of national needs and aspirations vis-à-vis industrial
development and technological emancipation. The graduates must therefore be
resourceful, creative, knowledgeable and able to perform the following functions:
(i) To appreciate the importance of computer science (as a base) in such areas as
principles of programming, algorithm, data structures, databases and
programming languages
(ii) To develop and utilize the practical skills acquired in software architecture and
design, software metrics, verification and validation, requirements and analysis
7
and the software engineering process for the production of software-based
systems.
(iv) To be able to exercise original thought, have good professional judgment and be
able to take responsibility for the execution of important tasks as programmers,
system analysts, software developers, web developers, software consultants,
system administrators, IT project managers, system engineers and entrepreneurs,
etc.
(v) To be able to produce and manage high-quality software-based solutions with long
life-cycles especially for large or complex systems.
(vi) To develop the understanding and engineering and entrepreneurial skills needed
to become the architects and project leaders building systems in which software
plays a critical role.
(vii) To leverage on Software Engineering as the driving force behind the new
technologies that are transforming the way we live and work.
(viii) To have the requisite knowledge and skill base for further academic and
professional development in Software Engineering.
8
1.4. LEARNING OUTCOMES:
(a) Regime of Subject Knowledge
(i) Have a thorough knowledge of scientific and engineering practice and theory in
computing and be able to extend this knowledge through self-led study
(ii) Understand the impact of globalization on computing and software engineering
(iii) Recognize the challenges and opportunities for the software industry in Nigeria
and the region.
(iv) Identify requirements for specialised computing systems and propose solutions
to fulfil them
(v) Use and, where appropriate, modify for specific use, established systems
development methods
(vi) Explain the relationships between computer systems and other natural and
artificial systems in the modern world at appropriate levels of abstraction
(vii) Explain the concepts of computer programming and critically evaluate and
predict their utility in models, tools and applications
(viii) Demonstrate advanced, specialist theoretical and practical knowledge in a
range of computer science sub-fields
(ix) Explain legal issues relating to computing: intellectual property, data protection,
computer misuse and health and safety
(x) Explain the principles and practice of software engineering in a modern
industrial context
(i) Analyse and abstract problems and propose and apply effective solutions
(ii) Apply software engineering theory, principles, tools and processes, as well as
the theory and principles of computer science and mathematics, to the
development and maintenance of complex, scalable software systems.
(iii) Participate productively on software project teams involving others from a variety
of disciplines and backgrounds
(iv) Develop and critically evaluate specifications for specialist computer systems
9
(v) Elicit, analyze and specify software requirements through a productive working
relationship with project stakeholders
(vi) Apply software engineering best practice to the development of computer
systems
(vii) Demonstrate software engineering application domain knowledge having
engineered a software product of value to a specific organization or to address
a societal need.
(viii) Implement specialist computer systems from given specifications
(ix) Plan and manage large scale projects
(x) Communicate requirements and proposals for computer systems to other
computing professionals
(xi) Communicate effectively through oral and written reports, and software
documentation
(xii) Evaluate the impact of potential solutions to software engineering
problems in a global society, using their knowledge of contemporary issues
(xiii) Employ an entrepreneurial approach to provide sustainable software
engineering solutions.
(xiv) Identify the common needs of industry from computer systems and apply
controlled compromise in meeting requirements
(xv) Design and execute methodologically sound scientific and engineering
studies
(xvi) Demonstrate advanced specialist skills in addressing the problems of
Computer Science and its sub-fields
(xvii) Understand, evaluate, synthesize and apply complex ideas
10
(iii) Assess the nature of intellectual property and its ownership, and respect it
accordingly
(iv) Identify resources for determining legal and ethical practices in other countries as
they apply to computing and software engineering
Candidates are admitted into the Software Engineering degree programme in any of the
following two ways: (i) the Unified Tertiary Matriculation Examination (UTME); (ii) Direct
Entry;
(b) Five Credit level passes O’L Level in nationally recognised examination at
not more than TWO sittings, which must include English Language,
Mathematics, Physics, and two other acceptable science subjects.
It is also desirable for candidates to pass Computer Studies and Further
Mathematics at credit level, such candidates shall have added advantage.
11
1.6. PROGRAMME STRUCTURE AND DURATION
The Department of Software Engineering offers a four (4) year degree Programme for
UTME candidates and a three (3) years Programme for DE candidates. There are two (2)
semesters of formal University studies in each Academic Session. At 300 level, a Student
is expected to go for 6 months Students Industrials Work Experience Scheme (SIWES),
after completion of the first semester courses at the end of which a report about what the
Student learned in the industry has to be written, presented and defended. At 400 level,
Students undertake a one year project in any field of interest in Software Engineering
besides the usual prescribed courses.
12
The coding of course codes in Software Engineering Department is structured using
alphanumeric format described as follows:
(i) A three uppercase prefix “SWE” derived from the term Software Engineering or
“CSC” derived from Computer Science or “ITC” derived from Information
Technology or “CBS” derived from Cyber Security.
(ii) A four digit code (example 1301) whose first digit signifies the level at which the
course is offered, the second digit signifies the credit value of the course and the
two last digits are used for identification purposes.
Note that the credit units of a course determines the hours of lectures for that week. For
example (SWE1301) implies 3 hours of lectures per week.
The following standard terminologies are used for different categories of courses in the
Department:
13
1.10. COURSE ASSESSMENT
1.11. REGISTRATION
Each Student must register and the pay the appropriate fees at the beginning of each
session. A fresh Student must complete the registration process before the closure of
central registration of new Students. Failure to complete the process within this time shall
attract late registration fees charges or forfeiture of the admission. A returning Student
who fails to complete the registration process with the specific period approved for
registration shall pay a late registration fees as may be prescribed by the University. A
returning Student who fails to register within four (4) weeks of commencement of the
registration exercise shall not be allowed to register. Such a Student shall be deemed to
have withdrawn, unless (s) he provides a reason acceptable to the Senate, in such case
(s) he can be considered for suspension of studies.
i. Credit Load
14
ii. Registering for Courses
a. Courses are to be registered for by students sequentially. Thus, a Student must
register for Level II courses before registering for Level III. Moreover, when
registering, a Student shall first enter lower level courses (failed, or not taken)
before higher level course.
b. If a Student fails a required course, s(he) must register for it as “carry over” in
all subsequent sessions until the course is cleared except where in level 300
second semester where Students go for SIWES.
15
2.0. EXAMINATION
A Student shall take an examination at the end of each semester. Thus, in an academic
session a Student shall sit for two (2) examination.
In order to be admitted into an examination, a Student must have registered the course.
A Student must have at least a 75% attendance.
Note: The Department follows Examination Rules prescribed in the University handbook.
16
2.3. GRADING OF COURSES
Grading of courses shall be done by a combination of percentage marks and letter grades
translated into a graduated system of Grade Point as shown in Table 1.
For the purpose of determining a student’s standing at the end of every semester, the Grade Point
Average (GPA) system shall be used. The GPA is computed by dividing the product of
the total number of Units x Grade Point (TUGP) by the total number of units (TNU) for all
the courses taken (whether passed or failed) in the semester as illustrated in Table 2.
The Cumulative Grade Point Average (CGPA) over a period of semesters is calculated in
the same manner as the GPA by using the grade points of all the courses taken during
the period.
17
Course Credit Unit Grade Point Units x Grade
Point (UGP)
C1 U1 GP1 U1 x GP1
C2 U2 GP2 U2 x GP2
- - - -
- - - -
Ci Ui GPi Ui x GPi
- - - -
- - - -
CN UN GPN UN x GPN
TOTAL TNU TUGP
N N
TNU = åU i TUGP = åU i * GPi CGPA =
TUGP
i=1 i=1 TNU
CSC1303 3 A 5 3*5=15
ITC1203 2 C 3 2*3= 6
SWE130 3 B 4 3*4=12
1
MTH1301 3 B 5 3*5=15
PHY1210 2 A 5 2*5=10
GSP1201 2 F 0 2*0=0
15 58
18
Table 4: CGPA Example
Course Grade Grade Grade
Credit Letter Value Points
First Semester
CSC1303 3 A 5 15
ITC1203 2 B 4 8
SWE130 3 B 4 12
1
MTH1301 3 B 5 15
PHY1210 2 A 5 10
GSP1201 2 C 3 6
15 66
Second Semester
CBS1202 2 B 4 8
SWE130 3 C 3 9
4
CST1301 3 A 5 15
8 32
19
(ii) Absent (ABS) and Incomplete Grade
a. ABS: A Student shall be awarded ABS if s (he) did not sit for an Examination in a
registered course. ABS is computed as F grade in GPA/CGPA calculations. A
Student is allowed to verify an ABS grade if s (he) has sat for the Examination.
b. Incomplete Grade (I) means the assessment of a course the formal examination of
which is not written under the permission of Senate. This means that the course is
not included in GPA/CGPA calculation even though the Student has registered for
it
The determination of the class of degree shall be based on the Cumulative Grade Point Average
(CGPA) earned at the end of the programme. The CGPA shall be used in the
determination of the class of degree as summarized in Table 5. It is important to note that
the CGPA shall be calculated and expressed correct to two decimal places.
(iv) Probation
A student whose Cumulative Grade Point Average is below 1.50 at the end of a particular
year of study, earns a period of probation for one academic session. A student on
20
probation is allowed to register for courses at the next higher level in addition to his/her
probation level courses provided that:
(v) Withdrawal
A candidate whose Cumulative Grade Point Average is below 1.50 at the end of a particular year of
probation should be required to withdraw from the University. Withdrawn Students are
free to reapply for fresh admission into the University using the usual UTME channel. If
readmitted, such students cannot use any credits earned in the previous programmes
from which they were withdrawn.
(ii) Rustication: For a non-final Student this means staying away from academic work for
the period indicated by Senate. For a final year student, “Rustication” means
cancelling the work of the semester(s) in which the offence occurred and registering
afresh in a new semester/session. As rustication is a punishment, the period of
rustication counts in determining the Students maximum period of stay in the
University.
21
from course work for a period of 12 weeks, commencing 6 weeks before the (EDD).
Incomplete grade will normally be awarded only if the examination occurs within a period
beginning 6 weeks before the EDD and ending 9 weeks after the actual date of delivery.
A faculty Board may at its discretion extend this period on receipt of a medical statement
indicating exceptional circumstances. If the EDD interferes with a substantial part of the
semester’s coursework, the Department shall recommend suspension of studies for the
Student.
a. Suspension of Studies means a period approved by Senate (based on an
application by the Student with appropriate supporting documents) for the
Student to be away from the University. It is given for a maximum of one
session in the first instance, but could be renewed (on application) for one
more session only. The period of suspension of studies does not count in
determining the maximum period pf stay at the University by the concerned
Student.
A Student may be granted dispensation from course work for a period of time if s (he) get
sick. Incomplete grade will normally be awarded only if the examination occurs within the
period. If the sickness interferes with a substantial part of the semester’s coursework, the
Department shall recommend suspension of studies for the Student. A student must
however apply and submit the necessary documents on time.
22
3.0. COURSE OUTLINE
100 LEVEL
TOTAL 20
Second semester
9 Core SWE 1304 Introduction to Computer Programming 3
23
11 Core CBS1202 Fundamentals of Cyber Security 2
TOTAL 15
LEVEL I TOTAL 35
200 LEVEL
S/N Status Code Title Credits
First Semester
1 Core SWE2301 Introduction to Software Engineering 3
2 Core CSC2323 Discrete Structures 3
3 Core CSC2253 Data Structures and Algorithms 2
4 Core CSC2211 Computer System Theory 2
5 Core ITC2201 Introduction to Web Computing 2
6 Core GSP2204 Foundation of Nigerian Culture, Government and Economy 2
7 Core GSP2206 Peace Studies and Conflict 2
8 Core (DE GSP2201 Use of English 2
only)
TOTAL 16(18)
Second semester
9 Core SWE2204 Human Computer Interaction 2
10 Core SWE2210 Software Construction 2
11 Core SWE2211 Software Engineering Process 2
12 Core SWE2314 Computer Programming II 3
13 Core SWE2315 System Analysis and Design 3
14 Core CSC2210 Operating System I 3
15 Core CSC2206 Computer Architecture and Organization I 2
16 Core CSC2204 Analysis of Algorithms 2
17 Core MTH2205 Linear Algebra I 2
18 Core GSP2205 Logic and Philosophy 2
19 Core GSP2202 Use of Library, Study Skill &ICTs
24
(DE
Only)
TOTAL 23(25)
LEVEL II TOTAL 39(43)
300 LEVEL
400 LEVEL
25
5 Core SWE4211 Software Engineering Security 2
6 Core SWE4210 Software Architecture and Design 2
7 Core CSC4303 Operation Research I 3
8 Core EEP3201 Introduction to Entrepreneurial Skills 2
9 Elective SWE4215 Embedded Systems 2
10 Elective SWE4218 Modelling and Computer Simulation 2
Total 17(21)
Second Semester
26
Measure of location and dispersion in simple and grouped data exponential. Elements of
probability and probability distribution, normal, binomial, poison, geometric, Negative
binomial distributions. Estimation and tests of hypothesis concerning the parameters of
distribution. Regression, correlation, and analysis of variance contingency table Non-
parametric inference.
ITC1203: Fundamentals of IT
Pervasive themes in information technology, information technology system model, a
gentle introduction to information technology, human-computer interaction, Information
management, networking, platform technologies, programming and web systems and
technologies and its related and information disciplines, information technology
application domains.
PHY1210: Mechanics
Space and Time, Units and dimension, Kinematics; Fundamental Laws of Mechanics,
statics and dynamics; work and energy; Conservation laws. Elasticity; Hooke's law,
Young's shear and bulk moduli, Hydrostatics; Pressure; buoyance, Archimedes'
Principles, Surface tension; adhesion, cohesion, capillarity, drops and bubbles.
Temperature; heat; gas laws; laws of thermodynamics; kinetic theory of gases. Sound,
Applications.
27
Electrostatics; conductors and currents; dielectrics; magnetic fields and induction;
Maxwell's equations; electromagnetic oscillations and waves; Applications.
28
Integration as an inverse of differentiation. Methods of integration, Definite integrals.
Application to areas, volumes.
Covers Abstract Data Types (ADTs) and their support and implementations in object
oriented languages. Topics include recursion, complexity analysis, linear data structures
29
(stacks, queues, priority queues, lists and strings), and non-linear data structures (hash
tables, binary trees, search trees, balanced trees, heaps), searching and sorting
algorithms and graph algorithms. This will also include substantial programming
assignments and projects. Introduction to algorithm for parallel & distributed computing.
Topics include valid and invalid arguments, translating from English to the language of
proportional and predicate logic, formal deduction and its role in providing the validity of
an argument: logic and computer science, how to build a circuit from logic gates and how
to minimize circuits using propositional logic, introduction to prolog, a programming
language based on logic and the application of logic in computer science. AI automated
theorem- provers,, expert system etc. Fundamental concepts of computer systems and
system programming. Hardware fundamental including digital logic, memory systems,
processor design, buses, I/O subsystems data representations, computer arithmetic,
microprogramming, and instruction-set, architecture. Software concepts including
assembly language programming, operating systems, assemblers, linkers and compilers,
computer peripherals interfacing and maintenance.
Introduction to Web Computing An introduction to the Internet, the World Wide Web, and
web development students will create interactive web pages by writing HT 'and and CSS
and by programming in JavaScript- Topics include the origins of the web, the roles and
operations of web browsers and web servers, interacting with web applications through
forms, and using digital media. style sheets to separate document structure and
document formatting;
30
and conducts (cultism and related vices), Re-orientation of moral Environmental
problems.
GSP2206: Peace Studies & Conflict Resolution
Basic Concepts in peace studies and conflict resolution, Peace as vehicle of unity and
development, Conflict issues, Types of conflict, e. g. Ethnic/religious/political/ economic
conflicts, Root causes of conflicts and violence in Africa, Indigene/settler phenomenon,
Peace – building, Management of conflict and security. Elements of peace studies and
conflict resolution, developing a culture of peace, Peace mediation and peace-keeping,
Alternative Dispute Resolution (ADR). Dialogue/arbitration in conflict resolution, Role of
international organizations in conflict resolution, e.g. ECOWAS, African Union, United
Nations, etc.
31
Topics include specifications, abstraction techniques including typing, access control,
inheritance, polymorphism, genericity and design patterns, frameworks and
architectures. Students will also learn the proper engineering use of techniques such as
information hiding, classes, objects, inheritance, design by contract, exception handling,
event-based systems, and concurrency. Special emphasis should be placed on suitable
and appropriate object-oriented software development such as software quality and
corresponding concepts, principles and best practices for addressing both functional and
non-functional requirements of the software system in its architecture.
32
CSC2210: Operating System I
Surveys methods and algorithms used in operating systems. Concurrent distributed
operation is emphasized. The main topics covered are an introduction to operating
systems, process management, process scheduling, inter-process communications,
memory management techniques, virtual memory, I/O management, deadlock
avoidance, file system design, socket programming, distributed operation; distributed
data; performance evaluation, protection and security. Prerequisites.
33
Vector spaces over the real field. Subspaces, linear independence, basis and dimension.
Linear transformations and their representation by matrices; range, null space, rank.
Singular and non-singular transformations and matrices. Algebra of matrices.
34
techniques. Process assurance vs. Product assurance. Quality process standards.
Product and process assurance. Problem analysis and reporting. Statistical approaches
to quality control.
35
systems, process management, process scheduling, inter-process communications,
memory management techniques, virtual memory, I/O management, deadlock
avoidance, file system design, socket programming, distributed operation; distributed
data; performance evaluation, protection and security. Prerequisites.
36
RAID system reliability, N modular redundancy, software reliability and recovery
techniques, network system
SWE3600: SIWES
Students are attached to private and public organizations for a period of six months with
a view to making them acquire practical experience and to the extent possible, develop
skills in all areas of computing. Students are supervised during the training period and
shall be expected to keep records designed for the purpose of monitoring their
performance. They are also expected to submit a report on the experience gained and
defend their reports.
37
implementation of plans, software acquisition and supplier contract management,
implementation of measurement process, monitor process, control process, and
reporting; Review and evaluation – determining satisfaction of requirements, and
reviewing and evaluating performance; Closure – determining closure and closure
activities; Software engineering measurement – establish and sustain measurement
commitment, plan the measurement process, preform the measurement process; and
evaluate measurement; Software engineering management tools.
38
and appropriate use of metrics in design. Designing for qualities such as reliability,
performance, safety, security, reusability, etc. Measuring internal qualities and complexity
of software. Evaluation and evolution of designs. Basics of software evolution,
reengineering, and reverse engineering.
39
management; Starting a new business, Feasibility studies; Innovation; Legal Issues;
Insurance and environmental considerations. Possible business opportunities in
Nigeria’s, nails, screws making Dyeing/Textile blocks paste making.
40
software applications such as mobile applications and Web applications building on
existing open-source frameworks and application development platforms.
41
Metal working/Fabrication – Steel and aluminum door and windows, Training industry,
Vegetable oil/and Salt extractions, Fisheries/Aquaculture, Refrigeration/Air conditioning,
Plastic making, Farming (crop), Domestic Electrical wiring, Radio/TV repairs, Carving,
Weaving, Brick laying/making, Bakery, Tailoring.
42