Sei sulla pagina 1di 30

ZIMBABWE NATIONAL DEFENCE UNIVERSITY

(ZNDU)

BACHELOR OF SCIENCE HONOURS DEGREE IN SOFTWARE ENGINEERING

FACULTY OF ENGINEERING UNDERGRADUATE REGULATIONS


DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING

BACHELOR OF SCIENCE HONOURS DEGREE IN SOFTWARE ENGINEERING

REGULATIONS FOR THE UNDERGRADUATE PROGRAMME


These regulations should be read in conjunction with the ZNDU General Academic Regulations for
Undergraduate Degrees hereinafter referred to as the General Academic Regulations and the Faculty of
Engineering Regulations.
The ZNDU General Academic Regulations and Faculty of Engineering Regulations take precedence over
the Bachelor of Science Honours Degree in Software Engineering regulations.

Degree Profile of
Bachelor of Science Honours Degree in Software Engineering

Institution: Zimbabwe National Defence University

Type of Degree: Honours

Credit Load: 510 credits

Level: ZQF–Level 8

Accreditation Zimbabwe Council for Higher Education


Organisation(s):

Period of reference:

Purpose of the Programme

To develop knowledge, skills and competences in the field of Software Engineering relevant to
various employment capabilities and careers in the modern software industry. To prepare students
for further studies and lifelong learning in software engineering and in line with modern software
engineering standards.
Entry Requirements:
Prospective students must satisfy the minimum entry requirements specified in the general
academic regulations and Faculty of Engineering regulations.
An applicant should have the following:
a. At least 2 ‘A’ Level passes in Physics, Mathematics and either Chemistry or
Computer Science.
b. At least Five ‘O’ level passes including English Language, Mathematics and
Science plus an HND and 2 years post HND experience.

c. At least Five ‘O’ level passes including English Language, Mathematics and
Science plus a relevant National Diploma and 5 years post ND experience.

Programme Characteristics

Areas of Study: Software Development, Software Architecture, Computer Architecture,


Computer Programming, Object Oriented Programming, Systems
Engineering and Security, Artificial Intelligence, Entrepreneurship,
Management

Specialist Focus: Software Engineering with special focus on software product design,
manufacture and applications.

Orientation: Key components mandatory to ISO standard and SEI standards for software
engineers are covered in the programme. Teaching and learning to be
professionally oriented and focus on both the design, practical hands-on
aspects and innovation.

Distinctive The programme builds the research-technology-innovation continuum and


Features: focuses on knowledge development and application using a student-centred
approach. The close link between practical and theoretical appreciation, that
is, embedding of theoretical and practical techniques makes the programme
unique.

Career Opportunities and Further Education

Employability: Career opportunities include Software Engineering, Software Testing, Game


Development, Defence Systems Engineering, Laser Targeting systems
development, Autonomous Systems and Systems modelling. Additional
career opportunities include Airlines, Civil and Military Aviation Software,
Avionics and Navigation, Research Institutions; Positions in Academia;
Consultancy and Management; Starting enterprises in Aviation Software
and related product development.

Further Studies: Master’s and Doctoral studies in Software Engineering and Technology or
interdisciplinary programmes related to Software Science/engineering.

Programme Delivery

Teaching and Lectures, tutorials, laboratory classes, seminars, group work, industrial
Learning visits, Work Related Learning, research project, individual independent
Methods: study.

Assessment Written and oral examinations, tests, laboratory reports, seminar


Methods: presentations, industrial attachment report, mini-research project reports,
final year research project reports, continuous assessments.

Programme Competences
Generic:
· Multidisciplinarity: Ability to draw appropriately from multiple academic disciplines to
define and solve problems based on understanding of complex phenomena.
· Quantitative and innovative reasoning: Capability to draw from the environment and use
analytics for informed decision making and strive to seek new ways of doing things.
· Communication skills: Ability to communicate effectively and to present information
orally and in writing and using ICTs to both expert and non-expert audiences.
· Analysis and synthesis: Capacity for analysis and synthesis using logical arguments and
proven facts.
· Ethical commitment: Professional integrity and awareness of impact of science and
technology on society and the environment.
· Entrepreneurial skills: Capability to identify and create new business ventures based on
knowledge and new thinking paradigms.

Discipline specific:
· Deep knowledge: Ability to analyse software systems and engineering phenomena in terms
of underlying scientific principles and knowledge and by means of appropriate technological
methods.
· Professional: Ability to design and implement software in related tasks and professional
procedures/practices for a competitive and profitable software industry/sector.
· Technology development skills: Ability to develop new technologies across the software
engineering value chain with a view to enhance efficiencies.
· Problem-solving skills: Ability to solve a wide range of engineering problems in software
related domains by identifying their fundamental aspects and using both theoretical and
experimental methods.
· Analytical and computational skills: Ability to use data to analyse software engineering
phenomena and technological issues using appropriate IT packages.

Intended Learning Outcomes


· Engineering Knowledge. Graduates would be able to apply the knowledge of
Mathematics, Science, Engineering fundamentals, and Engineering specialisation to solve
complex software engineering problems.
· Problem Analysis. Graduates would identify, formulate, review research literature,
and analyse complex Engineering problems reaching substantiated conclusions using first
principles of Mathematics, Natural and Engineering Sciences.
· Design/Development of Solutions. Graduates would be able to design solutions for
complex Engineering problems and system components or processes that meet the
specified needs with appropriate consideration for the public health and safety, cultural,
societal, and environmental considerations.
· Conduct Investigations of Complex Problems. Graduates would be able to use
research-based knowledge and research methods including design of
experiments/prototypes, analysis and interpretation of data, and synthesis of the
information to provide valid conclusions.
· Modern Tool Usage: Graduates would be able to create, select, and apply
appropriate techniques, resources, and modern Engineering and Information Technology
(IT) tools including prediction and modeling of complex Engineering activities with an
understanding of the limitations.
· The Engineer and Society. The Graduate Engineer would be able to apply reasoning
informed by the contextual knowledge to assess societal, health, safety, legal and cultural
issues and the consequent responsibilities relevant to the professional Engineering
practice.
· Environment and Sustainability. The Engineer would understand the impact of the
professional Engineering solutions in societal and environmental contexts, and
demonstrate the knowledge of, and need for sustainable development.
· Ethics. The Engineer would apply ethical principles and commit to professional
ethics and responsibilities and norms of the Engineering practice.
· Individual and Teamwork. Graduates would function effectively as individuals,
and as a member or leader in diverse teams, including multidisciplinary settings.
· Communication. The Graduate would be able to communicate effectively on complex
Engineering activities with the engineering community and with society at large, would
be able to comprehend and write effective reports and design documentation, make
effective presentations, and give and receive clear instructions.
· Project Management and Finance. The Graduate would be able to demonstrate
knowledge and understanding of the engineering and management principles and apply
these to one’s own work, as a member and leader of a team. The Engineer would be able
to manage projects in multidisciplinary environments.
· Life-long Learning. The Graduate would be able to recognize the need for and have
the preparation and ability to engage in independent and life-long learning in the broadest
context of technological change.
· Modeling and Simulation. The Graduates would be able to inculcate modeling and
simulation skills to design and analyse the problems in the field of Software Engineering.
Expected Student Outcomes (from ACM and IEEE)

As a basic step toward providing curriculum guidance, the following set of outcomes for
an undergraduate curriculum has been identified. This is intended as a generic list that
could be adapted to various software engineering program implementations. Although
emphasis is placed on knowledge and skills related to software engineering, an
undergraduate curriculum should of course enable a student to analyze and synthesize
these elements as appropriate.
Graduates of an undergraduate SE program should be able to demonstrate the following
qualities.
[Professional Knowledge] Show mastery of software engineering knowledge and
skills and of the professional standards necessary to begin practice as a software
engineer.
Students, through regular reinforcement and practice, need to gain confidence in their
abilities as they progress through a software engineering program of study. In most
instances, students acquire knowledge and skills through a staged approach in which
they achieve different levels as each academic term progresses. In addition, graduates
must have an understanding and appreciation of professional issues and standards
related to ethics and professional conduct, economics, and societal needs.
[Technical Knowledge] Demonstrate an understanding of and apply appropriate
theories, models, and techniques that provide a basis for problem identification and
analysis, software design, development, implementation, verification, and
documentation.
Software engineering employs concepts that are unique to the nature of software and
its development and also draws others from a range of reference disciplines. Students
should both be aware of these concepts and of their limitations, whether inherent or
arising from their adaptation to software engineering. Students should be able to
evaluate and reflect on the processes that they follow as well as upon the solutions
that they produce.
[Teamwork] Work both individually and as part of a team to develop and deliver
quality software artifacts.
Students need to perform tasks that involve working as an individual, but also
experience many other tasks that entail working with a group. For group work,
students should be informed about the nature of groups and of group activities and
21
roles as explicitly as possible. This must include an emphasis on the importance of
such matters as a disciplined approach, adhering to deadlines, communication, and
STRUCTURE OF PROGRAMME

Course structure

· The course design is influenced by the objective to equip all students with the basics of the Software
industry.

· The minimum duration of the Bachelor of Science Honours degree in Software Engineering shall be
8 semesters.

· The programme is taught and examined at 4 levels of study, which is completed over four calendar
years inclusive of an industrial attachment.

· There are prescribed courses for each level of study.

· Courses are designated as core or optional.

· To successfully complete the programme, a student must accumulate a minimum of 510 credits

· A student may not carry more than 2 previous semester courses to a higher level.

· All students must successfully complete a period of industrial attachment of at least 6 months to be
covered over 2 semesters.

· Industrial attachment should have been passed before a student can register for the final year of
study.

· All students are expected to register with a relevant Engineering Professional Body.

· At levels 3 and 4 of the academic study, a student shall undertake a project or projects worth 24 and
30 credits respectively, and submit project reports for assessment before the date specified by the
Departmental Board, failure of which will lead to a penalty being imposed.

· A student cannot be allowed to graduate without passing at least all core courses and a prescribed
number of elective courses as defined in these regulations.

· A student who fails a core course shall repeat that course.

· A student who fails a required optional course may repeat that course or take an equivalent course
specified in the regulations.

· Repeat courses take priority over any other courses should there be a clash on the timetable.

· No supplementary examinations.
EXAMINATIONS
End of course examinations shall be in accordance with the General Academic Regulations.
Unless specified otherwise in the course outlines, a written examination of a course is of 3 hours duration.

ASSESSMENT OF COURSES
Assessment of a Course shall include the mark of the examination as well as the continuous assessment
mark in that Course. Normally, the continuous assessment shall contribute between 20% and 33% of the
overall mark as determined at the beginning of the course by the examiners concerned. A student who
attains a mark less than 40% in the continuous assessment fails the course.

PROCESSING OF EXAMINATION RESULTS


Examination results shall be processed as prescribed by General Academic Regulations.

DETERMINATION OF EXAMINATION RESULTS


The determination of the results for each student will be in accordance with the General Academic
Regulations.
In determining the degree classification, the aggregate marks from Levels 1, 2, 3, and 4 will be weighted
in the ratios of the credits.
Actual weighting at each level will be: Level 1=20%; Level 2= 22%; Level 3=25%; Level 4=33%. For
level 4, 10% is for 8 months compulsory industrial attachment spread over levels 3 and 4 semester breaks.

INCOMPLETE: PENDING means that the profile of results for the student is incomplete and no final
decision can be made at that point in time.
PASS: PROCEED shall apply to a student who has passed all the required Level 1 or Level 2 or Level
3 courses as stipulated in these regulations.
INCOMPLETE: PROCEED shall apply to a student who has failed not more than 2 courses at that
level.
INCOMPLETE: REPEAT FAILED COURSES shall apply to a student who fails at least 3 courses at
Level 2 or Level 3 or Level 4 in a given academic year or a student who fails any course(s) on a
second or subsequent sitting.
WITHDRAW: In an academic year, a student may be required to withdraw from the programme in
accordance with the General Academic Regulations where a student is unlikely to complete because he
will be timed out.
DISCONTINUE: A student may be required to discontinue from the programme in accordance with
the General Academic Regulations after 3 years of unsuccessful completion of Level 1.

AWARD OF THE DEGREE


The degree awarding and classification shall be in accordance with the General Academic Regulations.
Programme Courses

LEVEL I (A student shall take all Level I courses)

Semester 1.1 Credits

DAE 101 Engineering materials 12

DMT101 Engineering Mathematics I 12

DEE 102 Electrical principles 12

DSE 101 Introduction to Computers and Programming 12

DAE 104 Mechanical/ Automated Engineering Design and Graphics 12

DPH 109 Physics 12

Semester 1.2

DCS 101 Communication Skills for Engineers 12

DMT102 Engineering Mathematics II 12

DAE 103 Maintenance and Workshop Practice 12

DAE 105 Analogue and Digital Electronics 12

DSE 102 Data Structures and Algorithms 12

LEVEL II (A student shall take all Level II courses)

Semester 2.1
DSE 201 Logic Design and Switching Circuits 12
DSE 202 Advanced Database Design 12
DSE 203 Software Engineering 12
DMT 203 Engineering Mathematics III 12
DAE 211 Object Oriented Programming 12
DSE 204 Operating Systems 12
Semester 2.2
DSE 205 Software Architecture 12
DSE 206 Data Communication and Networks 12
DSE 207 Systems Analysis and Design 12
DSE 208 Research Methods + 12
DSE 209 Project 1 24

LEVEL III

Semester 3.1
Industrial Attachment 60

Semester 3.2
Industrial Attachment 60

LEVEL IV

Semester 4.1

DSE 401 Entrepreneurship 12


DSE 402 Software Project Management 12
DSE 404 Artificial Intelligence 12
DSE 405 Design and Analysis of Algorithms 12
DSE 420 Software Engineering Design Project 15

Semester 4.2

DSE 406 Knowledge Based Systems 12


DSE 407 Systems Programming 12
DSE 408 Human Computer Interaction 12
DSE 403 Computer Security 12
DSE 420 Software Engineering Design Project 15

Optional Courses:

Computer Graphics
Application of Database Systems
Computer Networks
Numerical Analysis
VLSI Design
Formal Languages
Visual Programming
Computer Aided Design and Manufacturing
Microprocessors, Microcontrollers and Interfacing
Business Management for Scientists
Introduction to Parallel Processing

Equipment and Software


The programme will be supported by fully Equipped Computer laboratories.

SYNOPSES

DSE 101 Computer Organisation and Architecture

This course equips students with the fundamental knowledge of computer components, their functions
and how they are interconnected. In the course, the functions and the design of the various computer
functional units will be discussed. These concepts will help students to get some idea about Computer
Organization and Architecture. The course will basically be dealing with the operational units of the
computer and how they are interconnected using their architectural specifications. The course covers
hardware (e.g mouse, keyboard, screen, printers, CPU, scanners) and software (e.g MS office application
software, Windows, Unix, Linux) that are used in different application areas. The course broadly covers
System Architecture and Design, Data Representation and Logic, Micro architecture (computer
organization), Instruction Set Architecture (ISA).

Contact Hours

Lecture Time: 48 hours


Tutorials 12 hours

Learning Objectives
Having successfully completed this course, the student will be able to:

· Illustrate and describe basic functional operations of a computer.

· Identify the structure and the interconnection structures of the computer.

· Demonstrate a good understanding of the basics of numbering systems.

· Identify and analyze the gate symbols for the Boolean operations AND, OR, NOT and XOR.

· Explain how the control unit of the Central processing unit interprets machine level

instructions.
DMT 101 Engineering Mathematics 1

Introduction to real numbers. Real sequences. Functions: algebraic, exponential and trigonometric
functions and their inverses. Limits, continuity and derivatives. Rules for differentiation. Main theorems
of the differential calculus. L'Hôpital's rule. Applications of derivatives.
Anti-differentiation: all basic methods. Definition of the integral, Riemann sums and fundamental
theorem of calculus. Improper integrals. Applications of integration. Plane polar and 3-dimensional
coordinates. Computer laboratory using MAPLE symbolic computation software to illustrate concepts
and solve problems in calculus. Linear Algebra: Vectors in 2, 3 and higher dimensions; geometric
applications. Linear systems of equations. Matrices: matrix algebra, inverses and determinants. Solution
of matrix equations. Integers: GCD, LCM, division algorithm, integers modulo n, RSA encryption.
Complex numbers, arithmetic, powers and roots. Fundamental theorem of algebra and solution of
polynomial equations.
Introduction to vector spaces. Subspaces, bases and dimension. Linear transformations and matrix
representations. Eigenvalues, eigenvectors and diagonalization of matrices. Inner products; Gram-
Schmidt process. An introduction to mathematical proofs and propositional logic is given throughout the
course.

Contact Hours
Lecture Time: 48 hours
Tutorials 12 hours

Learning Objectives
Having successfully completed this course, the student will be able to:

· Manipulate numbers.

· Reason about, manipulate and sketch functions of one variable.

· Apply techniques of differentiation to functions of one or more variables.

· Apply techniques to calculate limits of functions.

· Apply techniques of integration to functions of one or more variables.

· Apply techniques to solve common first and second-order ordinary differential equations.

References.

· S Lang, 2012, Calculus of Several Variables, New York, Springer Science + Business Media.

· P D Lax, M S Terrell, 2013, Calculus with Applications, New York, Springer Science + Business
Media.
DCS 101 Communication Skills for Engineers

The course covers a wide range of business language skills including, presentation, public speaking,
problem solving, negotiation and writing in Engineering Organisations. Students will also be introduced
to language structures, expressions and vocabulary for specific business situations. In addition, students
will be acquainted with language skills, life skills, and cultural understanding needed in the professional
workplace. Students will be afforded the opportunity to work on their reading and listening skills as well
as have practice in writing and speaking through authentic and purposeful tasks.

Contact Time:
Lecture hours: 48 hours
Practicals: 12 hours

Learning Objectives:
It is expected by the end of the first semester students would be able to:

· Present well-organised, logically argued and clearly-expressed written and oral assignments in
correct and appropriate English.

· Write academic messages that communicate effectively.

· Carry out appropriate research for the purpose of enhancing their academic development.

· Interpret and understand Technical information.

References:

· Berko, R .et al. 2011, Communicating –A social and Career Focus.12TH edition, New Jersey,
Prentice Hall.

· Burghart M.D. 1991, Introduction to the Engineering Profession, New York, Harper.

DAE 102 Electrical Principles

This course will provide an overview of the fundamentals of electricity and its practical application.
Topics covered under electrical power systems include: Basic electrical Theory, Power Generation,
Charging Systems, Transmission and Distribution, Distribution technology, Transmission lines, Voltage
Control, Fault Analysis and Protection.

Contact Hours
Lecture Time: 50 hours
Laboratory Time: 10 hours

Learning Objectives
Having successfully completed this course, the student must have:
· The fundamental theory of electricity and electric circuits.

· A thorough understanding of electrical laws and theorems such as the Ohms Law, Thevenin’s
Theorem, Norton’s Theorem and Superposition Theory and their applications.

· A thorough knowledge of Electromagnetic fields and their applications.

· Knowledge to construct simple electrical circuits and be able to carry out experiments in the
laboratory to measure electric parameters.

References

· J. Bird, 2003, Electrical Circuit Theory and Technology, New York, Newnes.

· Edward Hughes, 1990, Electrical Technology, New York, Longman Scientific & Technical, John
Willey and Sons Inc.

DSE 103 Data Structures and Algorithms

Algorithms and data structures emphasizes the following topics: data structures, abstract data types,
recursive algorithms, algorithm analysis, sorting, searching, and problem-solving strategies.

The techniques for designing, building, and analysing computer programs that deal with large collections
of data. The course addresses techniques for programming, collections of data and the data structures and
algorithms that are needed to implement these collections. The course expands students' programming
skills, and provides an understanding of the principles of data abstraction, algorithm design, and the
analysis of algorithms that are fundamental to computer science.

Introduce the student to the concept of data structures through abstract data structures including lists,
sorted lists, stacks, queues, deques, sets/maps, directed acyclic graphs, and graphs; and implementations
including the use of linked lists, arrays, binary search trees, M-way search trees, hash tables, complete
trees, and adjacency matrices and lists.

Introduce the student to algorithms design including greedy, divide-and-conquer, random and
backtracking algorithms and dynamic programming; and specific algorithms including, for example,
resizing arrays, balancing search trees, shortest path, and spanning trees.

An introduction to the structure, analysis and usage of a range of fundamental data types and the core
algorithms that operate on them, including: algorithm analysis, sorting, searching, trees, graphs, files,
algorithmic strategies, analysis and measurement of programs. Labs and programming assignments in C,
using a range of Unix tools.

DAE 107 Introduction to Computers and Programming


Introduction to Computers and Programming introduces fundamental concepts which form the basis of
computing and design of computers. The course introduces the fundamental concepts of procedural
programming. Topics include the design features of computer systems and associated devices, system and
application software, data organisation on computer systems, data types, control structures, functions,
arrays, files, and the mechanics of running, testing, and debugging. It also offers an introduction to the
historical and social context of computing and an overview of computer science as a discipline.
Algorithms and problem-solving: Problem-solving strategies; the role of algorithms in the problem-
solving process; implementation strategies for algorithms; debugging strategies; the concept and
properties of algorithms - Fundamental programming constructs: Software development methodology:
Fundamental design concepts and principles; testing and debugging strategies; test-case design (black box
testing and requirements testing); unit testing; programming environments. History of computing and
computers; evolution of ideas and machines; social impact of computers and the Internet;
professionalism, codes of ethics, and responsible conduct; copyrights, intellectual property, and software
piracy.

Contact hours:
Lecture time: 40 hours
Laboratory time: 20 hours

Learning Objectives:
At the completion of the course, the students should be able to use computers, design algorithms for
simple problems, use algorithms in the programming environment, correctly test and debug processing
programmes and explain how algorithms and processing programmes work.

References:

· Wempen F (2014). Computing Fundamentals: Introduction to Computers. Wiley

· Casey Reas and Ben Fry, 2014, A Programming Handbook for Visual Designers, Second Edition,
Massachusetts, The MIT Press.

· Downey A. (2012) Think Python: How to Think Like a Computer Scientist. Green Tea Press.
Needham, Massachusetts.

· Halterman R.L (2017). Fundamentals of Python Programming. Morgan Kaufmann Publishers, San
Francisco.

· Wayne and Robert, 2008, Introduction to Programming in Java, An interdisciplinary Approach, New
Jersey, Pearson,

Contact Hours

Lecture Time: 48 hours

Laboratory Time: 12 hours


DSE 102 Introduction to Database Design

The course equips students with the basic knowledge, techniques and understanding of the fundamental
concepts of data management commencing with file processing systems through to database systems.
Students will learn about database systems for data handling, data models, methodology for relational
database design, database development lifecycle: conceptual database design, logical database design and
physical database design. Students will also learn and be able to apply relational algebra and structured
query language in designing and querying databases. Enforcement of database integrity and security.

Contact Hours

Lecture Time: 48 hours

Laboratory Time: 12 hours

Learning Objective:

At the completion of the course, the students should be able to use available tools to design and
implement databases to support engineering solutions.

References:

· Connolly TM & Begg C.E. (2005). Database Systems-A Practical Approach to Design,
Implementation and Management. Edinburgh Gate-Pearson Education Limited.

· Elmasri, R., & Navathe, S. B. (2011). Fundamentals of Database Systems. Massachusetts: Addison-
Wesley.

· Garcia-Molina, h., Ullman, J. D., & Widom, J. (2009). Database Systems: The complete book. New
Jersey: Pearson Education.

· Hoffer, J. A., Ramesh, V., & Topi, H. (2011). Modern Database Management. New Jersey: Pearson
Education, Inc.

DAE 105 Analogue and Digital Electronics

In this course students will study alternating current theory, including capacitance, inductance, and
reactance. Students will learn about magnetism, transformers, power supplies, and will use Oscilloscopes
and various test equipment to perform related lab experiments. Furthermore, students in this course will
study various types of resonance and filter circuits found in electronics, including amplifiers, wave-
shaping circuits, and operational amplifiers. Students will use test equipment to perform related lab
experiments. Extensive use of NIDA trainers will be used for Electronic Diagnostics and troubleshooting.
Students will also learn the basic logic gates and families and learn various logic circuits such as flip-
flops, counters, and decoders. Digital devices and interfacing will be studied. The students will study the
microprocessor and common parts of a computer system. Also, the students will learn the applications of
computers in aviation, aviation data busses, and troubleshooting techniques. Students will use test
equipment to perform related digital lab experiments.
Contact Time:
Lecture hours: 50 hours
Laboratory hours: 10 hours

Learning Objectives:
The main objective of this course is to enable the student to incorporate the knowledge thus gained in the
service of electronic communication systems as obtaining in the majority of Aircraft Engineering.

References:

· M. M. Mano, Englewood Cliffs, 1988, Computer Engineering Hardware Design, New Jersey,
Prentice Hall.

· P. K. Lala, 1996, Practical Digital Logic Design and Testing, New Jersey, Prentice Hall.

DMT 102 Engineering Mathematics II

The course is designed to cover the elementary theory of vectors, matrices and determinants, and their
applications to solving systems of linear equations. The course will cover Basic definitions and notation,
geometric representation and laws of vector algebra. Importance of the set theory. Introduction to
probability, random experiments, sample spaces, events, mutually exclusive events, axiomatic definition
of probability, relative frequency, Computation of probabilities of finite sample spaces, cardinality of a
set, probabilities based on symmetry, methods of enumerating sample points, conditional probability,
total probability, independent events, Bayes’ Law. Introduction, Operations, Rules of Complex
arithmetic, Modulus, Complex conjugate, Division, Polar representation of complex numbers, De
Moivre's theorem and its application, Applications of complex numbers. Matrix addition and
multiplication, properties, Transpose of a matrix, square matrices, diagonal and trace, Powers of matrices,
Some special types of square matrices, Determinants, Laplace expansion of the determinant, Inverse of
matrices, Application of matrices, Elementary row operations, Inverses using row operations, Solving
systems of linear equations. Introduction, Separable, Exact, Integrating factor, Bernoulli equation, Initial
value problems, Boundary value problems, Second and higher order differential equations.
Prerequisite: DMT101

Contact Hours
Lecture Time: 48 hours
Tutorials: 12 hours

Learning Objectives
Having successfully completed this course, the student must have:
· Having successfully completed this course, the student will be able to:
· Apply vectors and matrices to solve equations.
· Apply various probability distributions to solve practical problems.
· Apply techniques to solve second and higher order differential equations.
· Apply the method of Laplace transform to the solution of first and second order differential
equations

References

· A Jeffrey, 1990, Linear Algebra and Differential Equations, CRC-Press, Florida.

· Antony Howard, 2006, Elementary Linear Algebra, 10th edition, Wiley, Canada.

DSE 104 Operating Systems

The course equips students with the knowledge of operating systems as a fundamental component of
computer systems. Students will be focused on what operating systems do, how they are designed and
constructed. Common features of an operating system, traditional PC and server operating systems, as
well as operating systems for mobile devices. Process management- the process concept and concurrency
as the heart of modern operating systems, memory management- management of main memory during the
execution of a process, storage management- how mass storage, the file system, and I/O are handled in a
modern computer system, protection and security- mechanisms necessary for the protection and security
of computer systems. Linux system and windows system.

Overview-Background, Computer-system structures, Operating system structures

Process Management-Processes and threads, Process synchronization, Deadlocks and CPU scheduling

Storage Management-Memory management, Virtual memory, File-system interface, File-system


implementation

I/O Systems-I/O, Secondary-storage structure,

Distributed Systems-Network and distributed system structures, Distributed file systems, Distributed
coordination.

Prerequisite: A knowledge of programming eg C, Java.

Contact Hours
Lecture Time: 48 hours
Tutorials: 12 hour

DSE 106 Programming Languages


This course is an introduction to the basic concepts of programming languages, with a strong emphasis on
functional programming. The course uses programming languages as vehicles for teaching the concepts,
but the real intent is to teach enough about how any language “fits together” to make you more effective
in programming in any language and in learning new ones. This course is neither particularly theoretical
nor just about programming specifics; it will give students a framework for understanding how to use
language constructs effectively and how to design correct and elegant programs. By using different
languages, students will learn to think more deeply than in terms of the particular syntax of one language.
The emphasis on functional programming is essential for learning how to write robust, reusable,
composable, and elegant programs. Indeed, many of the most important ideas in modern languages have
their roots in functional programming.

DAE 211 Object Oriented Programming

The course begins with a brief review of control structures and data types with emphasis on structured
data types and array processing. It then moves on to introduce the object-oriented programming
paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented
design. Topics such as an overview of programming language principles, simple analysis of algorithms,
basic searching and sorting techniques and an introduction to software engineering issues.
Prerequisite: DAE 107,

Contact Hours:
Lecture time: 48hours
Laboratory time: 12hours

Learning Objectives:
On successful completion of this course students will be able to:

· Manipulate binary patterns and understand the use of binary to represent numbers.

· Apply good programming style and understand the impact of style on developing and maintaining
programs.

· Explain the benefits of object-oriented design and understand when it is an appropriate methodology
to use.

· Design object-oriented solutions for small systems involving multiple objects.

· Independently find and interpret discipline related documentation.

· Explain the relevance of ethics in the context of Software Engineering.

References:

· Barbara Liskov, 2001, Program Development in Java, Addison-Wesley.

· Brian W. Kernighan and Rob Pike, 1999, The Practice of Programming, Addison-Wesley.
· Balagurusamy, E.: Object Oriented Programming with C++ , 2nd Edition ,Tata McGraw- Hill

· Walter, 2001, Problem Solving with C++: The Object of Programming, 3 rd Edition, Prentice Hall.

DMT 203 Engineering Mathematics III

Probability and Statistics


This course provides a non-calculus treatment of topics in Probability and Statistics. Lessons include a
brief review of set operations, definitions and examples of sample space and probability of events,
random variables, various discrete and continuous distributions, mean, variance and general expectations,
sampling, tests of hypothesis for mean and variance, and power of tests.
Multivariable and Vector Calculus
Vector-valued functions, curves. Functions of several variables. Partial derivatives. Extreme values.
Scalar and vector fields. Gradient, divergence, curl. Line and surface integrals. Green's, divergence and
Stokes' theorems.

Contact Hours:
Lecture Time: 48 hours
Tutorials: 12 hours

Learning Outcomes:
Students will have an appreciation of:

· Set operations, definitions and examples of sample space.

· General expectations, sampling, tests of hypothesis for mean and variance, and power of tests.

· Functions of several variables.

References:

· Dimitri P. Bertsekas, John N. Tsitsiklis, 2008, Introduction to Probability, Athena Scientific.

· Charles Henry Edwards, David E. Penney, 2010, Differential Equations & Linear Algebra, Pearson
Prentice Hall.

DSE 201 Logic Design and Switching Circuits

The course introduces students to switching logic and combinational circuits. Analysis of switching
devices, minimisation techniques, number systems and codes and logic design of functional digital units.
Furthermore, the use of LSI in logic design, an introduction to sequential circuits design of synchronous,
asynchronous and pulse sequential circuits, minimization of sequential circuits and state assignment and
covers are also covered. An overview of digital systems and their applications Number systems, base
conversion, and data representation using binary codes Boolean algebra and its laws, theorems, and
operations Simplification of Boolean algebraic expressions Converting a word description of a logic
system behavior into an algebraic expression Using Karnaugh Maps and Quinn-McLowski’s techniques
to minimize Boolean expressions. Design and analysis of combinational logic networks and applications
Implementing logic functions using multiple-output networks such as Multiplexers, Decoders, Read-Only
Memories, and Programmable Logic Arrays The operation of the SR, JK, T, and D flip-flops as basic
memory units Design and analysis of synchronous sequential logic networks and applications.

DSE 202 Advanced Database Design


This course covers various techniques for implementing relational databases, object oriented and
distributed databases. The course covers web-database integration, data warehouses for business
intelligence (OLAP, data mining). ASP, SQL, ODBC connectivity, Internet Development tools, Query
optimisation and performance tuning. NoSQL databases.SQL,ASP,Scripting,ODBC(connectivity)
Internet development tools

DSE 203 Software Engineering


This course will equip students with the skills needed to follow a career specifying and
developing software systems, and other computer-based solutions. Students will gain
knowledge and practical experience of the latest technologies, but also a grounding in the
underlying principles of software engineering. The course introduces the issues, concepts,
techniques, tools, and methodologies related to large-scale software development covering the
entire life cycle. Topics include definition, estimation, analysis, design, implementation, testing,
deployment, maintenance, and refinement of the software, CASE.

DSE 204 Software Architecture

The development of software is largely evolutionary in nature with The Architecture Business Cycle,
what is Software Architecture, Architectural patterns, reference models, reference architectures,
architectural structures and views. Creating an Architecture Quality Attributes, Achieving qualities,
Architectural styles and patterns, designing the Architecture, Documenting software architectures,
Reconstructing Software Architecture.

Architecture Evaluation, Architecture design decision making, ATAM, CBAM.

Software Product Lines, Building systems from off the shelf components, Software architecture in future.

Pattern Description, Organizing catalogs, role in solving design problems, Selection and usage.

Creational and Structural patterns, Abstract factory, builder, factory method, prototype, singleton,
adapter, bridge, composite, façade, flyweight, Proxy.

Chain of responsibility, command, Interpreter, iterator, mediator, memento, observer, state, strategy,
template method, visitor.

A-7E – A case study in utilizing architectural structures, The World Wide Web - a case study in
interoperability, Air Traffic Control – a case study in designing for high availability, Celsius Tech – a
case study in product line development.
DSE 205 Data Communication and Networks
The course introduces computer communication and network technologies. The course will cover
computer network topologies, protocols (ISO model, ATM and TCP/IP protocol), and communication
media, framing, addressing, packet switching, virtual circuits, congestion and deadlock control. The
laboratory assignments include client server configuration and implementation of protocols.

DSE 206 Systems Analysis and Design


This course introduces the students to the concepts and skills of system analysis and design. The course
includes expanded coverage of data flow diagrams, data dictionary, and process specifications. This
course introduces a variety of new software used by analysts, designers to manage projects, analyze and
document systems, design new systems and implement their plans. It introduces also a recent coverage of
UML, wireless technologies and ERP; web-based systems for e-commerce and expanded coverage on
RAD and GUI design.

DAE 208 Research Methods


This course will provide an overview with applied exercises of best practice in addressing an engineering
challenge in a systematic manner, evaluating background literature, adhering to ethics, documentation
strategies, and communication in the form of both concise as well as detailed written reports, and oral and
written communication of complex engineering concepts to a general audience. The course provides
training in the research methods that enable students to formulate a research question, design a research
project and choose and execute the methods best suited to understand a research problem. This helps
them to meet the requirements of the undergraduate degree programme in the final year.

Contact Time:
Lecture hours: 52 hours
Presentations: 8 hours

Learning Objectives:
By the end of this course, students should be able to:

· Use both qualitative and quantitative research methods in order to explore, and find answers to
identified research questions.

· Use appropriate research techniques to collect and analyse data.

· Design appropriate research instruments.

· Approach engineering research problems in a structured and strategic manner

· Undertake an effective literature review to learn the background material required for the research
project and also to identify the current state of the art

· Communicate the findings of a literature review following the accepted standards and traditions of
engineering disciplines – especially with regard to referencing
· Prepare and communicate a formal research proposal including a plan, a convincing justification for
the research and formal placement of the research within the context of the current state of the art

· Describe the ethical obligations associated with conducting research

· Appreciate the impact and importance of ethics in engineering research

· Appreciate the importance of standardization and certification.

References:

· Bryman, J. (2008) Social Research Methods. Oxford University Press, London.

· Kothari, C. R. (2009) Research Methodology: Methods and Techniques. New Age International
Publishers, New Delhi.

· Graziano, A. M. (1997) Research Methods: A process of Enquiry. Longman, New York.

· Langdridge, D. (2004), Research Methods and Data Analysis. Perterson Education Limited, Essex.

DSE 209 Project 1

This course addresses the task of planning and conducting a small research project, for an undergraduate
level dissertation. It aims to help the student develop a clear sense of direction early on in the project, and
to support him/her in organising, planning, and monitoring their project. The course focuses on choosing
a research topic, developing research questions, and writing a dissertation.

Notional Hours: 150 hours

References:

· Beins, 2017, Research Methods: A Tool for Life, Cambridge University Press.

· Bernard C. Beins, 2013, Successful Research Projects: A Step-by-Step Guide, SAGE Publications.

DSE 401 Entrepreneurship


The course identifies business opportunities that match students’ personalities (traits), develop business
plans, strategies of executing the business plans and use the most appropriate sources of funding to get
started. For students who decide not to start their own enterprises they will be able to create an
environment of innovation in organisations that employ them and also be able to provide effective
consultancy services to SMEs in need.

Lecture time: 60 hours

Learning Objectives:
At the end of the course students should be able to
· Describe the nature and significance of entrepreneurship
· Distinguish between social entrepreneurs, corporate entrepreneurship and entrepreneurship
· Outline the characteristics of entrepreneurship and disprove entrepreneurship myths
· Distinguish and evaluate the paths to entrepreneurship
· Prepare and critique business plans
· Distinguish and evaluate the different sources of financing for small businesses
· Assess the risks facing small businesses and their mitigation.

References:

· Entrepreneurship and New venture Management by Issa Van Aardt and Carel Van Aardt

· Small Business Management : Entrepreneurship and beyond by Timothy S Hatten

· Entrepreneurship on Trial, 2001: Cases Concepts And Principles From The Banking Sector, Dr T.T.
Makoni

· Entrepreneurship, Start your own Business by J Kroon

· Small business management, an entrepreneur’s guidebook byMegginson L. C, Byrd. J, and


Megginson W. L

· www.jstor.org/stable/2486746- Strategic management Journal.

· www.jstor.org/stable/3875185-Journal of International Business Studies.

DSE 402 Software Project Management

The course focuses on Software Maturity Framework, Principles of Software Process Change, Software
Process Assessment, and Process Framework. Process Reference Models; CMM, CMMi, PCMM, PSP,
TSP. Students also muster: Conventional Software Management, Evolution of Software Economics,
Improving Software Economics Life-Cycle phases and Process artifacts; Engineering and Production
stages, artifact sets, model-based software architectures. Other key knowledge areas are: Software process
workflows, Iteration workflows, Major milestones, Minor milestones, Periodic status assessments.
Process Planning; WBS, Planning guidelines, cost and schedule estimating process, iteration planning
process, Pragmatic planning; Line-of- business organizations, project organizations, evolution of
organizations, process automation. Project Control and process Instrumentation; Seven Core Metrics,
Management indicators, Quality indicators, Life-Cycle expectations, Pragmatic software metrics, metrics
automation; Ethics and Good Governance in Software Project Management Practices & Modern Project
Profiles, Next Generation Software Economics, and Modern Process Transitions.

DSE 403 Computer Security


The course exposes students to basic computer security concepts: threats, vulnerabilities, controls, risk,
confidentiality, integrity, availability, security policies, security mechanisms, assurance, prevention,
detection and deterrence. Basic cryptography, Program security, Security in conventional operating
systems, Trusted operating systems, Database management systems security, Network security,
Management of security.

DSE 404 Artificial Intelligence

The development and deployment of intelligent software agents dating back to the conception of artificial
brain in the Turing test continues to shape the technological landscape. The course on AI defines the AI
Problems and covers: AI Techniques, Basic Problem-solving methods, state space search, problem
characteristics, Production systems characteristics, issues in design of intelligent search algorithm;

State Space Search: Depth First Search, Breadth First Search, DFID. Heuristic Search: Best First Search,
Hill Climbing, Beam Search, Tabu Search. Randomized Search: Simulated Annealing, Genetic
Algorithms, Ant Colony Optimization. Problem Reduction, Constraint Satisfaction, Means-End Analysis;

Knowledge Representation issues, Knowledge Representation using Predicate logic, Propositional logic.
Theorem proving in First Order Logic. Soundness and Completeness, Forward and Backward chaining.
Situation calculus. Semantic Nets, Semantic Frames, Conceptual Dependency, scripts, Knowledge
representation with uncertainty. Building a Knowledge Base. Partial order planning. Uncertain
Knowledge and Reasoning, Probabilities, Bayesian Networks;

Overview of different forms of learning: Learning Decision Trees, Neural Networks. Concepts of Fuzzy
Logic, Intelligent Agents, Machine Learning;

Natural Language Processing, Deep Learning. Use of tools like Prolog and Lisp. Use of MATLAB.

The course focuses on: Machine learning - examples of machine learning applications - Learning
associations – Classification – Regression - Unsupervised learning - Supervised Learning - Learning class
from examples - PAC learning – Noise, model selection and generalization - Dimension of supervised
machine learning algorithm;

Bayesian Decision Theory – Introduction – Classification – Discriminant function - Bayesian networks –


Association rule - Parametric Methods – Introduction – Estimation – Classification – Regression -
Multivariate Methods – Data - Parameter estimation – Classification – Complexity – Features -
Dimensionality Reduction – Analysis – Multidimensional scaling - Linear discriminant analysis;

Clustering –

+Mixture densities - k-means clustering - Supervised Learning after clustering - Hierarchical clustering -
Nonparametric Methods - Density estimation - Generalization of multivariate data – Classification –
Regression - Smoothing models - Decision Trees - Univariate trees - Multivariate trees - Learning rules
from data – Linear Discrimination;

Structure of brain - Neural networks as a parallel processing – Perceptron - Multilayer perceptron;


Back Propagation - Training procedures - Tuning the network size - Learning time;

Competitive learning - Adaptive resonance theory - Self organizing map - Basis functions -Learning
vector quantization - Assessing and Comparing Classification Algorithms - Combining Multiple Learners
– Reinforcement Learning.

DSE 405 Design and Analysis of Algorithms

The course introduces students to the design of computer algorithms, as well as analysis of sophisticated
algorithms. Analyze the asymptotic performance of algorithms, write rigorous correctness proofs for
algorithms, demonstrate a familiarity with major algorithms and data structures.
Apply important algorithmic design paradigms and methods of analysis. Synthesise efficient algorithms
in common engineering design situations.

DSE 420 Software Engineering Design Project


This course requires the students to produce a unique, operationally relevant and realistic software
product. The work includes the preparation of design reports, and the formal review of the design reports
of other students. The design study culminates with a thorough final report and a public presentation both
of which are evaluated.

DSE 406 Knowledge Based Systems


The course covers Knowledge representations and mappings, approaches and issues (e.g. predicate
logic, fuzzy logic, week and strong slot and filler structures), knowledge acquisition, the frame problem,
symbolic reasoning under uncertainty (nonmonotonic reasoning, augmenting a problem Solver),
statistical reasoning (e.g. probability and Bays Theorem, Bayesian networks, Dumpster-Shafer theory),
building knowledge-based systems.

DSE 407 Systems Programming


The course provides students with a basic understanding of the issues involved in writing system
programs on Linux or Unix systems, manipulating system processes, system io, system permissions, files,
directories, signals, threads, sockets, terminal, etc. Overview of systems programming, Users, files and
manuals, Directories, file properties and file systems, Terminal control and signals, Event driven
programming, Processes and programs, i/o redirection and pipes, Servers and sockets, Threads An
intermediate knowledge of the Operating Systems is assumed. In addition, students are expected to have
an intermediate knowledge of the C (or C++) programming language and knowledge of the theory of
multiprocessing operating systems.

DSE 408 Human Computer Interaction


The course covers HCI, its challenges, goals, and evolution. Components of HCI, conceptual model for
HCI and its design, cognitive frameworks for HCI; introduction to cognitive psychology: memory
knowledge, learning inference, skill acquisition, and procedural Vs declarative knowledge. Cognitive
models in HCI: interface metaphors, technological aspects: I/O, interactive styles. Interactive design
methods and techniques, evaluation.
DSE 420 Software Engineering Design Project

Optional Courses:

Computer Graphics
Computer graphics are an intrinsic component of many modern software applications and are often
essential to the success of these applications. The objective of this course is to familiarize students with
fundamental algorithms and data structures that are used in today’s interactive graphics systems as well as
programming and architecture of high-resolution graphics computers. The principles and practise of
computer graphics are described from their mathematical foundations to the modern applications domains
of scientific visualisation, virtual reality, computer games and film animation. The course will include
some practical experience of graphical software environments such as Java Graphics 2D and OpenGL.
Characteristics of graphics I/O devices; 2D/3D transformation including scaling, translation, and rotation;
graphics pipeline; data structures for graphics; geometry representation; OpenGL programming; vertex
processing; lighting and shading; rasterization including line and polygon drawing; ray casting; ray
tracing; computer graphics in games; visualization.

Computer Networks
This class will cover the theory, design, engineering, and installation of networks to connect digital
computers. The course will prepare students to plan and implement a network. Also includes peer-to-peer
networks, the client-server model, network operating systems, and an introduction to wide-area networks.
The network and implementation tools may vary to meet current development trends.

Numerical Analysis
This course is an introduction to the numerical analysis. The primary objective of the course is to develop
the basic understanding of numerical algorithms and skills to implement algorithms to solve mathematical
problems on the computer. Preliminaries of Computing: Basic concepts -round-off errors, floating point
arithmetic, Convergence. Numerical solution of Nonlinear Equations: Bisection method, fixed-point
iteration, Newton’s method. Error analysis for Iterative Methods. Computing roots of polynomials.
Interpolation and Polynomial Approximation- Lagrange Polynomial, Divided Differences, Hermite
Interpolation. Numerical integration and differentiation-Trapezoidal rule, etc., Gaussian quadrature and
Euler-Maclaurin formula. Applied Linear Algebra- Direct methods for solving linear systems, numerical
factorizations, Eigenvalue problems. IVP problems for ODE- Euler’s, Taylor, Runge-Kutta, and multistep
methods, Stability. Numerical linear algebra- Direct methods, Iterative methods. Approximation theory-
Least square approximation, Approximating Eigenvalues-Power method, Householder’s method. BVP for
ODE.

VLSI Design

This is an introductory course which covers basic theories and techniques of digital VLSI design in
CMOS technology. In this course, we will study the fundamental concepts and structures of designing
digital VLSI systems include CMOS devices and circuits, standard CMOS fabrication processes, CMOS
design rules, static and dynamic logic structures, interconnect analysis, CMOS chip layout, simulation
and testing, low power techniques, design tools and methodologies, VLSI architecture.
Formal Languages

The course presents abstract models of computers (finite automata, push-down automata and Turing
machines) and the language classes they recognize or generate (regular, context-free and recursively
enumerable). Also presents applications of these models to compiler design, algorithms and complexity
theory. The course introduces some fundamental concepts in automata theory and formal languages
including grammar, finite automaton, regular expression, formal language, pushdown automaton, and
Turing machine. Not only do they form basic models of computation, they are also the foundation of
many branches of computer science, e.g. compilers, software engineering, concurrent systems, etc. The
properties of these models will be studied and various rigorous techniques for analyzing and comparing
them will be discussed, by using both formalism and examples.

Visual Programming

Visual programming languages are widely used for the rapid development of graphical applications. This
subject will introduce students to the fundamental principles of event-driven programming and to
programming using a visual environment through the use of the Visual C# programming language. An
additional aim of this subject is to give students an understanding of the main ideas of Human Computer
Interaction (HCI).

Computer Aided Design and Manufacturing


The course outlines modern solid modeling design, analysis, simulation, and manufacturing of
mechanical systems. Theoretical focus is given to fundamental Computer Aided Design (CAD) and
Computer Aided Manufacturing (CAM) concepts. These are sustained by numerous practical examples to
provide the student with intensive hands-on experience with CAD/CAM. Implementations use the Creo
(former Pro/Engineer) design package (PTC Inc.). The course has an intensive schedule covering aspects
of solid modeling design, assemblies, mechanism design, dynamics, structural analysis, simulation, and
manufacturing spanning an entire range of product development, from creative concept through detailed
product definition to prototype development and serviceability. Knowledge acquired will likely reflect in
the way that students express and implement engineering ideas. The course will enable students to use
powerful design tools in their future classes and work.

Microprocessors & Embedded Systems


Introduction to embedded systems, Real-time systems, Selecting a processor, Partitioning the effort
(HW/SW co-design), Accessing peripherals, Specification techniques for embedded systems, Embedded
system software architectures, Interrupts and I/O drivers, Code optimization techniques, Real time kernels
and real time operating systems Testing techniques for embedded systems, Debugging techniques for
embedded systems, Managing embedded projects and Future trends in embedded systems

Introduction to Parallel Processing

The course covers how parallel computers work and how to analyze the correct designs of parallel
architectures, especially within the technological constraints. The course is a comprehensive study of
modern parallel computer architectures and parallel processing techniques and their applications from
basic concepts to state-of-the-art computer systems. It provides in-depth coverage of fundamentals,
design complexity, power, reliability and performance coupled with treatment of parallelism at all levels.

Potrebbero piacerti anche