Software Engineering

COURSE SYNOPSIS

BIO101: General Biology I (3 Units: LH 45) Origin of life and influence of living things on the chemistry of the Earth, Essentials of life, including sources and use of energy, responsiveness to natural selection and cellularity Cell structure and organization, functions of cellular organelles, diversity, characteristics and classification of living things, general reproduction, interrelationship of organisms; heredity and evolution, elements of ecology and types of habitat.

BIO103: General Biology Practical I (1 Unit; PH 45) Laboratory experiments designed to illustrate the topics covered in BIO 101

CSC101 – Introduction to Computer Science (3 units) The computer as a tool for content creation, storage, and processing, Some of the broad fields of computer sciences from programming languages to Artificial Intelligence. Computing methods to problem solving and programming. Emphasis is placed on gaining literacy and some practice with computers applications and problem solving and the broad areas of computing.

CHE101: General Chemistry I (3 Units: LH 45) Atoms, molecules and chemical reactions. Modern electronic theory of atoms. Electronic configuration, periodicity and building up of the periodic table. Hybridisation and shapes of simple molecules. Valence Forces; Structure of solids. Chemical equations and stoichiometry; Chemical bonding and intermolecular forces, kinetic theory of matter. Elementary thermochemistry; rates of reaction, equilibrium and thermodynamics. Acids, bases and salts. Properties of gases. Redox reactions and introduction to electrochemistry. Radioactivity.

CHE103: General Practical Chemistry I (1 Unit: PH 45) Laboratory experiments designed to reflect the topics taught in CHM 101 and CHM 102 such as qualitative and quantitative chemical analysis, acid-base titrations. Gravimetric analysis. Calculation, data analysis and presentation. Functional group analysis.

GNS 101: Use of English I (2 Units: LH 30) Effective communication and writing in English Language skills, essay writing skills (organization and logical presentation of ideas, grammar and style), comprehension, sentence construction, outlines and paragraphs.

MEE 101: Engineering Drawing (3 UNITS) Instruments for Engineering drawing and their uses. Drawing Paper Sizes; Margins; and Title Blocks. Lettering and types of line. Geometrical construction: bisection of lines and angles and their applications. Polygon, tangency, locus of simple mechanisms. Pictorial drawing; Isometric, oblique and perspectives. Orthographic projection. Dimensioning and development of simple shapes. Assembly drawing of simple components. Conventional representation of common engineering features. Freehand sketching. Use of engineering drawing software of the department.

MTS 101: Introductory Mathematics I (3 Units: LH 45) Elementary set theory, subsets, union, intersection, complements, Venn diagrams. Real numbers, integers, rational and irrational numbers. Mathematical induction, real sequences and series, theory of Quadratic equations, Binomial theorem, complex numbers, algebra of complex numbers, the Argand diagram. De-Moiré’s theorem, nth roots of unity. Circular measure, trigonometric functions of angles of any magnitude, addition and factor formulae.

PHY 101 General Physics I (3 Units: LH 45) Space and Time, Units and Dimension, Kinematics; Fundamental Laws of Mechanics, statics and dynamics; work and energy; Conservation laws. Moments and energy of rotation; simple harmonic motion; motion of simple systems; 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. Types and properties of waves as applied to sound and light energies. Superposition of waves. Propagation of sound in gases, solids and liquids and their properties. The unified spectra analysis of waves applications

PHY 107 General Practical Physics I (1 Unit: PH 45) This introductory course emphasizes quantitative measurements, the treatment of measurement errors, and graphical analysis. A variety of experimental techniques will be employed. The experiments include studies of meters, the oscilloscope, mechanical systems, electrical and mechanical resonant systems, light, heat, viscosity, etc., covered in PHY 101 and PHY 102. However, emphasis should be placed on the basic physical techniques for observation, measurements, data collection, analysis and deduction.

GNS 103: Information Literacy (2 Units: LH 30) Brief history of libraries; Library and education; University libraries and other types of libraries; Study skills (reference services); Types of library materials, using library resources including e-learning, e-materials, etc.; Understanding library catalogues (card, OPAC, etc.) and classification; Copyright and its implications; Database resources; Bibliographic citations and referencing. Development of modern ICT; Hardware technology; Software technology; Input devices; Storage devices; Output devices; Communication and internet services; Word processing skills (typing, etc.).

CSC102 – Introduction to Computer Programming (prerequisite – CSC101) (3 units) Introduction to concept of programming logic, principles and techniques; study and use of Microsoft office productivity suite with an emphasize on database design and development; introduction to programming; VBA programming language; development of customized solutions for business and personal needs; VB.NET: introduction, VB.NET language, .NET framework; developing desktop applications: controls, common dialogue boxes and menus, developing browser-based applications; web services; ADO.NET; developing database applications.

GNS 106: Logic, Philosophy and Human Existence (2 Units: LH 30) A brief survey of the main branches of Philosophy; Symbolic logic; Special symbols in symbolic logic-conjunction, negation, affirmation, disjunction, equivalent and conditional statements, law of tort. The method of deduction using rules of inference and biconditionals, qualification theory. Types of discourse, nature or arguments, validity and soundness, techniques for evaluating arguments, distinction between inductive and deductive inferences; etc. (Illustrations will be taken from familiar texts, including literature materials, novels, law reports and newspaper publications).

GNS 102: Communication in English II (2 Units: LH 30) Logical presentation of papers; Phonetics; Instruction on lexis; Art of public speaking and oral communication; Figures of speech; Précis; Report writing.

MTS102 Elementary Mathematics II (3 Units: LH 45) (Calculus) Functions of a real variable, graphs, limits and idea of continuity. The derivative, as limit of rate of change. Techniques of differentiation, maxima and minima. Extreme curve sketching, integration, Definite integrals, reduction formulae, application to areas, volumes (including approximate integration: Trapezium and Simpson's rule).

PHY102 General Physics II (3 Units: LH 45) (Electricity, Magnetism and Modern Physics) Electrostatics; conductors and currents; dielectrics; magnetic fields and electro- magnetic induction; Maxwell's equations; electromagnetic oscillations and waves; Coulomb’s law; methods of charging; Ohm’s law and analysis of DC circuits; AC voltages applied to Inductors, capacitors and resistance; Applications.

PHY108 General Practical Physics II (1 Unit: PH 45) This is a continuation of the experiments designed for PHY 101 and PHY 102 some of which have been covered under PHY 107.

CSC201 – Introduction to Computer Programming Method (Prerequisites – CSC101, CSC102) (3 units) Introduction to problem solving methods and algorithm development, designing, coding, debugging and documenting programs using techniques of a good programming language style, programming language and programming algorithm development. A widely used programming language should be used in teaching the course such as object–oriented FORTRAN, MATLAB.

SEN201 – Introduction to Software Engineering I (2 units) Frequently asked questions about software engineering, professional and ethical responsibility; socio–technical systems – emergent system properties, systems engineering, legacy systems, critical systems – a simple safety–critical system, system availability, reliability and dependability, safety, security, software process and project management.

SEN202 – Introduction to Software Engineering II (2 units) Concept of Software Engineering: design, development and testing of software systems. Software requirements analysis, software architecture and design, implementation, integration, test planning and maintenance. CSC202–Comparative Programming Languages (Prerequisite–CSC201) (3 units) Current issues in programming languages; language topics include imperative, functional, logic and object-oriented programming and other programmable applications such as symbolic manipulations and simulation. Implementation of concepts such as binding, scope, looping, branching, subprograms and parameter parsing, tasks and concurrency, heap management, exception handling, templates, inheritance and overloading.

CSC203 – Computer Logic and Digital Design (2 units) Organization and architecture of computer systems: Von Neumann model and non-Von Neumann model. Data representation: Bits, bytes and words; numeric data representation and number bases; fixed and floating-points systems; signed and two-component representation; representation of non-numeric data (character codes, graphical data); representation of records and arrays. Digital logic: Boolean algebra, sequential and combinatorial circuits, fundamental building blocks (logic gates, flip-flops, counters, registers, logic expressions, Karnaugh maps, circuit minimization, sum of product forms, register transfer notation, physical consideration (gate delays, fan-in, fan-out).

GNS201 Man & His Environment (2 Units: LH 30) Man–his origin and nature. Introduction to the various areas of science and technology. Man and his cosmic environment, scientific methodology, science and technology in the society and service of man. Renewable and non-renewable resources–man and his energy resources. Elements of environmental studies. Environmental effects of chemical plastics, textiles, wastes and other materials. Chemical and radio chemical hazards.

MTS201 Mathematical Methods I (3 Units LH 45) Real-valued functions of a real variable. Review of differentiation and integration and their applications. Mean value theorem. Taylor series. Real-valued functions of two or three

MTS 202: Numerical Analysis I (3 Units) Solution of Algebraic and Transcendental Equations; Curve Fitting; Error Analysis; Interpolation and Approximation; Zeros of Non-Linear Equations in One Variable; System of Linear Equations; Numerical Differentiation and Integration.

MTS203 Linear Algebra (2Units) Pre-requisite -MTS 101,102 Co-requisite -MTS 203 Vector space 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 transformation and matrices. Algebra of matrices.

SEN204 – Software Requirements I (2 units) Definition of a software requirement, product and process, functional and non–functional requirements, emergent properties, quantifiable requirements, system requirements; Requirements process – process models and actors, process support and management, process quality and improvement; requirements elicitation – requirements sources and elicitation techniques.

CSC205 – Structured Programming (2 units)(Prerequisites – CSC102) Structured programming concepts and structures; introduction to Perl programming language – introduction, scalar data, lists and arrays, subroutines, hashes, I/O basics, concepts of regular expressions, using regular expressions, more control structures, modules and objects, standard modules, file handles and file tests, directory operations, manipulating files and directories, string and sorting. Perl as technology – Unicode, inter-process communication, thread, internals and externals; databases and Perl, XML and SOAP, networking programming – sockets, email connectivity, FTP, LDAP; Perl/Tck; win32 modules and extensions, OLE automation, ODBC extension for win32, CGI and web server programming.

SEN206 – Software Architecture and Design I (2 units) General design concepts, context of software design, software design process, software principles; key issues in software design – concurrency, control and handling of events, data persistence, distribution of components, error and exception handling and fault tolerance, interaction and presentation, and security; software structure and architecture – architectural structures and viewpoints, architectural styles, design patterns, architecture design decisions, and families of programs and frameworks

CSC206 – Human Computer Interaction (2 units) Introduces the principles of user interface development, focusing on three key areas: (1). Design: How to design good user interfaces, starting with human capabilities and using those capabilities to drive design techniques: task analysis, user-centered design, iterative design, usability guidelines, interaction styles, and graphic design principles. (2). Implementation: Techniques for building user interfaces, including low-fidelity prototypes, Wizard of Oz, and other prototyping tools; input models, output models, model-view-controller, layout, constraints, and toolkits. (3). Evaluation: Techniques for evaluating and measuring interface us ability, including heuristic evaluation, predictive evaluation, and user testing.

CSC207 – Introduction to Web Design (1 unit) Introduction to the Internet and web servers; the web environment, authoring – HTML overview, structural HTML tags, formatting text, creating links, adding images and other page elements, tables, frames, forms, specifying colour in HTML, cascading style sheets, server side include; graphics – GIF, JPEG, PNG formats, designing graphics with palette, animated GIFs, multimedia and interactivity, introduction to JavaScript, DHTM, XML, XHTML, WAP, WML and Ruby of rails of Django.

SEN208–Software Construction I (2 units) Minimizing complexity, anticipating change, constructing for verification, standards in construction; managing construction – construction in life cycle models, construction planning, and construction measurement; practical considerations – construction design, construction languages, coding, construction testing, construction for reuse, construction with reuse, construction quality and integration.

ECN 202 - Principles of Economics- (2 units, LH: 30) An introduction to the various issues, the nature of economic science; the methodology of economics, major areas of specialization in economics, stressing the historical development of ideas; major findings in the various areas of specialization; elementary principles of micro and macro-economics, current issues of interest and probable future developments

MTS 209: Elementary Differential Equation I (3 units) First and Second Order Ordinary Differential Equations and General Theory of nth Order Linear Ordinary Differential Equations.

CSP 210: General Agriculture Practical (2 units) This will involve field planting. Each student will be allocated a field plot for the planting and management of an arable crop. Students will be exposed to practical work in animal production and health, fisheries and wildlife management, and crop and forestry nurseries.

SEN301 – Computer Architecture and Organization (2 units) Computer architecture and computer organization, basic structure of computers; performance evaluation: metrics and calculations, performance equations, Amdahl's law; instruction set architecture; introduction to computer arithmetic; software, CPU design and architecture, basic CPU organization; pipelining and instruction level parallelism; the memory subsystems – memory hierarchy, caches and cache hierarchies, cache organizations, cache performance, compiler support for cache performance, main memory organization, virtual memory, I/O organizations; introduction to embedded systems; parallel processing, multiprocessor and thread-level parallelism; interconnection networks and clusters, vector processing, multiprocessing.

SEN302 – Object-Oriented Analysis and Design (2 units) Object–oriented approach to information system development, particularly in reference to the earlier stages of analysis and design. Importance of modelling, principles of modelling, object–oriented modelling, conceptual model of the Unified Modelling Language (UML), architecture, software development life cycle. The principles and basic concepts of object orientation and the different aspects of object–oriented modelling as represented by the UML technique. Case study of a typical UML–based CASE tool

SEN303 – Data Structures, Algorithms and Complexity (2 units) Stacks, linked lists; trees, priority queues; search trees; sorting; hashing, garbage collection; storage management; maps and dictionaries; text processing; graphs, generic programming: coding for re–use of both data structures and algorithms. Introduction to algorithms and its importance, mathematical foundations: growth functions, complexity analysis of algorithms, summations, recurrences, sorting algorithms; algorithm design: divide-and-conquer approach, greedy approach. Graph algorithms: graph searching, topological sort, minimum spanning tree, shortest paths, backtracking and its applications in games; string matching; dynamic programming and longest common subsequence; theory of NP–completeness; turning machines and the halting problem; introduction to computational complexity; introduction to algorithm for parallel computers, parallelism.

SEN304 – Data Communications and Networks (2 units) Introduction to digital and analogue representations and channels; bandwidth and noise; channel capacity; telecommunication history; switching, circuit–switched networks, datagram networks, concept of virtual circuit networks, structure of circuit and packet switch. uses of computer networks, network hardware and software, reference models, example networks, network standardization; physical layer – the theoretical basis for data communication, transmission media, digital modulation and multiplexing; data link layer – data link layer design issues, error correction and control, elementary data link and sliding window protocols, medium access control sublayer, data link layer switching; the network layer in the internet; the transport layer – transport services, network security; introduction to software defined networks and sensor networks.

SEN305 – Software Requirements II (Prerequisite – CSC224) (2 units) Requirements analysis – requirements classification, conceptual modeling, architectural design and requirements allocation, requirements negotiation and formal analysis; Requirements specification–system definition document and system requirements specification; requirements validation – requirements review, prototyping, model validation and acceptance tests; practical consideration – iterative nature of requirements process, change management, requirements attributes, requirements tracing and measuring requirements; software requirement tools.

STA306: Operations Research (3units) Nature and scope of operations research. Linear programming and graphical, simplex (including big M and two-phase) methods, Sensitivity analysis, Duality theory, Transportation and assignment problems, Network analysis: CPM and PERT, Inventory theory and applications, Sequencing and scheduling.

CSC305 – System Programming with C (2 units) Introduction to system programming; introduction to Unix or Unix–like operating system and GUI; introduction to C programming with gcc – program structure, compiling and software development, basic scalar data types and their operators, flow control, complex data types: arrays, structures and pointers, structuring the code: functions and modules, pre-processing source code, error handling and debugging; file I/O; network programming; concurrency, process management and signals; inter-process communication; shells and scripting; compiling, linking and loading; memory and virtual memory; embedded system programming.

SEN306 – Software Construction II (Prerequisite – CSC228)(2 units) Construction technologies – API design and use, object–oriented runtime issues, parameterization and generics, assertions, design by contract, and defensive programming, error handling, exception handling and fault tolerance, executable models, state–based and table–driven construction techniques, runtime configuration and internationalization, grammar–based input processing, concurrency primitives, middleware, construction methods for distributive software, constructing heterogeneous systems, performance analysis and tuning, platform standards, and test–first programming; Software construction tools – development environments, GUI builders, unit testing tools, and profiling, performance analysis and slicing tools.

SEN307 – Software Design II (Prerequisite – CSC226)(2 units) User interface design; Software design quality and evaluation; Software design notations – structural and behavioral descriptions; Software design strategies and methods – general strategies, functional–oriented design; object–oriented design, data structure centered design, component–based design, and other methods; Critical systems specification – risk – driven, safety, security and software reliability specifications; Formal specification in the software process; Software design tools.

CSC307 – Discrete Structures (2 units) Sets, relations, functions, recurrence relations, prepositional calculus, Boolean algebra, graph and group theories, introduction to monodies and formal language theory.

EMT 301: Introduction to Entrepreneurship: (2 units) Profiles of business ventures in the various business sectors such as: Soap/Detergent, Tooth brush and Tooth paste making; Photography; Brick making; Rope making; Brewing; Glassware production/Ceramic production, Paper production; Water treatment/conditioning/packaging; Food processing/preservation/packaging; Metal fabrication; Tanning industry; Vegetable oil extraction; Farming; Fisheries/aquaculture; Plastic making; Refrigeration/Air-conditioning; Carving, Weaving; Bakery; Tailoring; Printing; Carpentry; Interior Decoration; Animal husbandry etc. Case Study Methodology applied to the development and administration of Cases that bring out key issues of business environment, start-up, pains and gains of growth of businesses, etc. with particular reference to Nigerian businesses. Experience sharing by business actors in the economy with students during Case presentations.

CSC308 – Object Oriented Programming (2 units) Introduction to object-oriented and Java or other object-oriented programming language, why object-oriented is fundamentally different from imperative programming, nuts and bolts (scalars, strings and expressions, similarities and differences to C); classes (their interfaces and implementation); control structures and arrays; inheritance (extending classes, abstract classes, overriding, polymorphism and dynamic binding); exception handling; interfaces; graphical I/O; stream I/O and object serialization.

SEN308 – Software Modeling and Engineering Process (2 units) The theory of modeling language design; UML modeling language; Approaches to model transformations and automated code generation; Model analyses methods; Basics of software engineering modeling tools; Key elements of software engineering methodologies; Industrial application of software engineering (experience and issues); System and multi–model development; Architectural design software engineering; Relevant research areas and directions; software engineering process models (e.g., agile modeling).

SEN312–Open-Source Software Development & Applications (2 unit) Introduces concepts, principles and applications of opensource software. Discusses about open-source software development process, Covers economy, business, societal and intellectual property aspects of open source software. Obtain hands-on experience on open source software and related tools through developing various open source software applications such as mobile applications and web applications building on existing open-source frameworks and application development platforms.

CSC309 – Theory of Computation (2 units) Introduction to the theory of computation; central areas of theory of computation: automata, computability and complexity; regular expressions, finite automata, pushdown and linear bounded automata; formal grammars and their corresponding classes of languages, Turing machines, undesirability, recursive functions; complexity theory; NP–completeness.

SEN 309 - Operating Systems (2 units) 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.

SEN310 – Software Testing (2 units) Testing–related terminology, key issues, and relationships of testing to other activities (testing versus static software quality management techniques, testing versus correctness proofs and formal verification, testing versus debugging, testing versus programming); Test levels – the target of the test, and objectives of testing; Test techniques – software engineer’s intuition and experience, input domain–based techniques, code–based techniques, fault–based techniques, usage–based techniques, model–based techniques, techniques based on nature of application, and selecting and combining techniques; Test–related measures – evaluation of the program under test, and evaluation of the tests performed; Test process – practical considerations, and test activities; Software testing tools – testing tool support and categories of tools

SEN314–Distributed, Parallel and Cloud Computing (2units) AnalysisandDesignofParallelandDistributedAlgorithms;Languages/OperatingSystemsf or parallel processing; GPGPU computing; Architecture of parallel/distributed systems, Tools for parallel computing, Parallel (distributed) database systems, Networking aspects of parallel/distributed computing, Parallel/distributed scientific computing Applications; High- performance computing Applications in molecular sciences; Multimedia applications for parallel/distributed systems; Grid networks, services and applications; Distributed File Systems;HyperScale/HyperConvergedDistributedStorageDesign,StorageI/OProtocols; Cloud as a Service, Cloud Infrastructure, Management and operations, Performance, Scalability, Reliability, Virtualisation, loud Provisioning Orchestration, Architecture support, Development Tools, Platforms and Applications, Legal aspects and Service Level Agreement, Mobile computing advances in the Cloud, Performance optimisation

CSC315 – Data Analysis (2 units) Review of basic concept of probability theory, common distribution functions, moments of distribution functions, the foundation of statistical analysis, sampling distribution of moments, statistical tests and procedures, linear regression and correlation analysis, the design of experiments, least squares, Fourier analysis and related approximation norms. Laws of large numbers and the central limit theorem, random walk, Markov Chains, introduction to Poison process.

EMT 302: Practical Skills in Entrepreneurship: (2 units: LH 30) Profiles of business ventures in the various business sectors such as: Soap/Detergent, Tooth brush and Tooth paste making; Photography; Brick making; Rope making; Brewing; Glassware production/Ceramic production, Paper production; Water treatment/conditioning/packaging; Food processing/preservation/packaging; Metal fabrication; Tanning industry; Vegetable oil extraction; Farming; Fisheries/aquaculture; Plastic making; Refrigeration/Air-conditioning; Carving, Weaving; Bakery; Tailoring; Printing; Carpentry; Interior Decoration; Animal husbandry etc. Case Study Methodology applied to the development and administration of Cases that bring out key issues of business environment, start-up, pains and gains of growth of businesses, etc. with particular reference to Nigerian businesses. Experience sharing by business actors in the economy with students during Case presentations

CSC401 – Compiler Construction (Prerequisite – CSC309)(2 units) Introduction to language translators; lexical analysis; grammars, top-down parsing methods; bottom-up parsing techniques; automatic compiler generation tools; symbol tables; semantic analysis, attribute grammars, syntax-directed translation; intermediate code generation; code generation: expressions and simple control structures, records and arrays; procedures and functions; runtime memory management; code optimization; error detection and recovery; compilation of object-oriented languages, Java Virtual Machine.

SEN401 – Software Maintenance (2 units) Nature of maintenance, need for maintenance, majority of maintenance costs, evolution of software, and categories of maintenance; key issues in software maintenance – technical issues, management issues, maintenance cost estimation, and software maintenance measurement; maintenance process – maintenance processes and activities; techniques for maintenance, program comprehension, reengineering, reverse engineering, migration, and retirement; software maintenance tools.

SEN402 (4 units), SEN404 (4 units), SEN406 (4 units) – Students Industrial Work Experience Scheme 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.

SEN403 – Data Modelling and Management (2 units) Database concepts: file systems and databases, relational database model; SQL, design concepts and implementation: entity relationship modelling; normalization of database tables, structured query language; database design and implementation; introduction to transaction management and concurrency control, distributed database management systems; database privacy, security, failure and recovery; object-oriented databases; client/server systems; data warehouse; databases in electronic commerce; web database development and database administration. special purpose databases; decision support–online analytical processing, data warehouses, and data mining; knowledge management – knowledge representation and elucidation, information retrieval, and digital libraries

SEN405 – Theory of Programming Languages (1 unit) Preliminaries, evolution of programming languages, describing syntax and semantics, lexical and syntax analysis, names, bindings, type checking, expression and assignment statement, statement-level control structures, subprograms, abstract data types, support for object-oriented languages, concurrency, exception handling, functional and logic programming.

CSC405 – Electronic Commerce Technologies (Prerequisite – CSC205)(2 units) The concepts and tools of electronic commerce; technology of the internet, core network protocols, agents, commerce client technology; survey of technologies used to support all aspects of electronic commerce; structural design of electronic commerce systems; client-server architecture, Java Beans, Enterprise Java Beans, Java Server Pages; characteristics, properties and processing of electronic payment; security; design and implementation issues related to web application for electronic commerce.

SEN407 – Software Configuration Management (2 units) Management of the software configuration management process – organization context for software configuration management, constraints and guidance for software configuration management process, planning for software configuration management, software configuration management plan, and surveillance of software configuration management; Software configuration identification and software library; Software configuration control – requesting, evaluating and approving software changes, implementing software changes, and deviations and waivers; Software configuration status accounting – software configuration status information and reporting; Software configuration; Software release management and delivery – software building, and software release management; Software configuration management tools.

SEN409 – Software Engineering Process (2 units) Software process definition – software process management and infrastructure, Software life cycles – categories of software processes, software life cycle models, software process adaptation, practical considerations; Software process assessment and improvement – software process assessment methods, software process improvement models, and continuous and staged software process rating; Software measurement – software process and product measurement, quality of measurement results, and software process measurement techniques; Software engineering process tools.

SEN411 – Software Engineering Project Management (2 units) Determination and negotiation of requirements, feasibility analysis, and process for the review and revision of requirements; Software project planning – process planning, determine deliverables, effort, schedule and cost estimation, resource allocation, risk management, quality management, and plan management; Software project enactment – 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, perform the measurement process; and evaluate measurement; Software engineering management tools.

CSC411 – Computer Graphics and Virtual Environments (2 units) Overview of input/output hardware, elements of graphics software; fundamental algorithms; two-dimensional viewing and transformation; design for interaction, and introduction to three-dimensional concepts; digital photography; video editing; survey of applications; virtual environments technology, requirements and applications; presence; displays; programming virtual environments; devices. An overview of computer graphics for visualization, scientific visualisation techniques; introduction to computer animation

SEN413– Game Design and Development (2units) The course covers game development history, platforms, goals and genres, player elements, story and character development, game play, levels, interface, audio, development team roles, game development process, and marketing and maintenance. Students will play games analyze them, and complete portions of game designs with appropriate documentation.

SEN415 – Logic and its Applications in Computer Science (2 units) Valid & invalid arguments; translating from English to the language of propositional and predicate logic; formal deduction and its role in proving the validity of an argument; logic & computer science – how to build circuits from logic gates and how to minimize circuits using propositional logic; introduction to Prolog – a Programming language based on logic; and, the applications of logic in computer science - AI, automated theorem provers, expert systems, and so on.

SEN501 – AI and Expert Systems (2 units) The evolution of computing, defining artificial intelligence; general problem solving approaches in artificial intelligence, characteristic requirements for the realization of intelligent systems, programming languages for artificial intelligence and architecture for artificial intelligence machines; the psychological perspective of cognition; production systems; problem solving by intelligent search; the logic proposition and predicates; default and non-monotonic reasoning; structural approach to knowledge representation, the nature and goals of soft-computing, basic forms of inference; the representation and manipulation of knowledge in a computer; rule-based representations; logic-based representations; frames; semantic and partitioned nets; generation of explanations; handling of uncertainties; truth maintenance systems; expert system architectures; an analysis of some classic expert systems; building expert systems; methodologies for building expert systems: knowledge acquisition and elicitation, formalization, representation and evaluation; knowledge engineering tools; expert systems paradigms.

SEN502 – Software Review Techniques (2 units) The need for software review; history of software review; software review tools and technologies; software review, inputs, process, and performance; theoretical model for analysis of software review performance; industry software reviews survey design; industry software reviews survey results and findings.

SEN503 – Research Methodology (1 unit) Foundations of research; problem identification and formulation; research design; qualitative and quantitative research; measurement; sampling; data analysis; Interpretation of data and paper writing; use of encyclopedias, research guides, handbook etc., academic databases for computer science discipline; use of tools/techniques for research: reference management software, software for detection of plagiarism.

SEN504 – Software Engineering Economics (2 units) Software engineering economic fundamentals; lifecycle economics; Risk and uncertainty – goals, estimates and plans, estimation techniques, addressing uncertainty, prioritization, decisions under risk and uncertainty; Economic analysis methods – for–profit decision analysis, minimum acceptable rate of return, return on investment and capital employed, cost–benefit analysis, cost–effectiveness analysis, break–even analysis, business case, multiple attribute evaluation, and optimisation analysis; Practical considerations – the “good enough” principle, friction – free economy, ecosystems, and off-shoring and out-sourcing.

SEN505 – Engineering Mobile Application (2 units) Introduction to developing mobile applications, beginning with mobile operating systems capabilities and application architecture and extending to major components, such as activities, services, broadcast receivers, etc; development of interactive applications using widget libraries, web-based services, animation, an SQL database engine, and multithreading..

CSC505 – Fault–Tolerant Computing (Prerequisites – CSC203, CSC30)(2 units) Introduction and overview of fault tolerant schemes; fault and error modeling; test generation and fault simulation; concepts in fault-tolerance; reliability/availability modeling; system level diagnosis; low level fault-tolerance – coding techniques (basic principles, parity bit codes, hamming codes, error detection and retransmission codes, burst error correction codes, Reed-Solomon codes, etc.); high-level fault tolerant techniques in systems: rollback, check pointing, reconfiguration; software fault-tolerance; fault tolerant routing; integrated hardware/software fault-tolerance; redundancy, spares and repairs – apportionment, system versus component redundancy, parallel redundancy, RAID system reliability, N-modular redundancy; software reliability and recovery techniques, network system reliability, reliability optimization.

SEN506 – Special Topics in Software Engineering (2 units) Review of publications on the recent developments in Software Engineering. Experts and professionals in the industries and government establishments shall be invited to address students on their experience. The course shall provide a platform for students to have direct interactions with the captains of Software Engineering in both public and private sectors of Nigeria. Some selected Nigerian in Diaspora shall be invited to address the students on their overseas experience. The students are given the opportunity to familiarize themselves with career structure and needs of the society. The platform provides the basis for the students to have insight into a new mindset for Software Engineering as an emergent and evolutionary platform for job and wealth creation. Recent topics and developments in software engineering are expected to be introduced from year to year. Apart from seminars to be delivered by lecturers or guests, students are expected to do substantial readings on their own.

SEN507 – Software Engineering Law and Justice (2 units) This course covers the legal aspects of technology, particularly intellectual property law, as well as ethical issues related to software development in ICT industry. It is intended to provide students with a solid foundation on legal matters that impact software development, including patents, trademarks, copyright, trade secrets, privacy and confidentiality, contracts and licensing, government regulations, global legal issues including Internet law and cybercrime, professional ethics and code of conduct. Basic concepts of jurisprudence, speech anonymity versus accountability, ethical decision making in the network environment. Students shall learn about the legal and ethical issues they need to be aware of in developing and managing new media and informatics technology and products so that they can work effectively with legal counsel and other professional. Accreditation, certification and licensing, codes of ethics and professional conduct, nature and role of professional societies and software engineering standards, economic impact of software, employment contracts, legal issues, documentation, and trade–off analysis; Group dynamics and psychology – dynamics of working in teams/groups, individual cognition, dealing with problem complexity, interacting with stakeholders, dealing with uncertainty and ambiguity, and dealing with multicultural environments; Communication skills – reading, understanding and summarising, writing, teams and group communication, and presentation skills.

CSC508 – Modeling and Simulation (2 units) Introduction to simulation concepts, introduction to models, problem formulation, project planning, system definition, input data collection and analysis, modeling translation, verification, validation, experimental design, analysis, project reports and presentations, training simulators.

SEN508 –Software Emerging Technologies (2 units) Security engineering – security concepts, security risk management, design for security, system survivability, service–oriented software engineering – services as reusable components, service engineering, software development with services, aspect – oriented software development – the separation of concerns, aspects, joint points and point-cuts, software engineering with aspects.

SEN509 – Software Engineering Security (2 units) History and terminology, security mindset, design principles, system/security life–cycle, security implementation mechanisms, information assurance analysis model, disaster recovery, and forensics; Security mechanisms–cryptography, authentication, redundancy, and intrusion detection; Operational issues–trends, auditing, cost/benefit analysis, asset management, standards, enforcement, legal issues, and disaster recovery; Policy–creation of policies, maintenance of policies, prevention, avoidance, incident response (forensics), and domain integration (physical, network, internet, etc.); Attacks – social engineering, denial of service, protocol attacks, active and passive attacks, buffer overflow attacks, and malware; Security domains–security awareness and possible domains; Forensics–legal systems, digital forensics and its relationship to other forensic disciplines, rules of evidence, search and seizure, digital evidence, and media analysis; Security services; Threat analysis model; Vulnerabilities.

SEN510 – Data Storage Networks (2 units) The importance of data and storage, opportunity for cloud, virtualization, and data storage networking; the background and basics of information service delivery and clouds; managing data and resources: protect, preserve, secure, and serve, common management tasks along with metrics for enabling efficient and effective data infrastructure environments; technology, tools, and solution options, various resource technologies (servers, storage, and networking) and techniques, a glimpse into the future of cloud, virtualization, and data storage networking.

SEN511 – Software Quality (2 units) Software engineering culture and ethics, value and costs of quality, models and quality characteristics, software quality improvement, and software safety; Software quality management processes – software quality assurance, verification and validation, and reviews and audits; Practical considerations – software quality requirements, defect characterization, software quality management techniques, and software quality measurement; Software quality tools.

SEN512 – Big Data Analytics (2 units) The concept of noSQL movement; the theory and techniques for data acquisition, cleansing, and aggregation; the principles and functionalities of big data programming models and tools; acquiring, processing, and managing large heterogeneous data collections; algorithms and systems for information and knowledge extraction from large data collections.

SEN513 – Software Engineering Models and Methods (2 units) Modeling principles, properties and expression of models, syntax, semantic and pragmatics, and preconditions, post–conditions, and invariants; Analysis of models – analyzing for completeness, consistency and correctness, traceability and interaction analysis; Software engineering methods – heuristic methods, formal methods, prototyping methods and agile methods.

CSC514 – Performance Evaluation and Benchmarking (2 units) Introduction and overview, performance modeling; measurement techniques – on-chip performance monitoring, off-chip hardware monitoring, software monitoring, microcoded instruction,, aggregating performance metrics over a benchmark suite, statistical techniques for computer performance analysis, statistical sampling for processor and cache simulation, statistical simulation, benchmark simulation and introduction to analytical models; energy and power simulator, validation.

SEN 514: Embedded Systems (2 units) Introduction to embedded computing and embedded systems; typical embedded systems–core of the embedded system, memory, communication interface; embedded firmware; embedded real–time operating systems; real–time operating systems–based embedded system design; task communications and synchronisation

SEN 515: Business in Software Engineering (2 units) Accreditation,certificationandlicensing,codesofethicsandprofessionalconduct,natureand role of professional societies and software engineering standards, economic impact of software, employment contracts, legal issues, documentation, and trade–off analysis; Group dynamics and psychology–dynamics of working inteams/groups, individual cognition, dealing with problem complexity ,interacting with stakeholders, dealing with uncertainty and ambiguity, and dealing with multicultural environments; Communication skills–reading, understanding and summarising, writing, teams and group communication, and presentation skills

SEN599 – Final Year Student’s Project (6 units) An independent or group investigation of appropriate software, hardware, communication and networks or IT related problems in information technology science carried out under the supervise on of a lecturer. Before registering, the student must submit a written proposal to the supervisor to review. The proposal should give a brief outline of the project, estimated schedule of completion, and computer resources needed. A formal written report is essential and an oral presentation may also be required.