Software Agent
Software Engineering

The course introduces agent systems and software agents. It focuses on 
agent system architecture and infrastructure from a software engineering 
viewpoint, including requirements for agent-based systems; modeling 
and design of agent-based systems and the development process for 
agent-based systems.  Topics such as agent architecture, communication, 
knowledge sharing, computing, and uncertainty management are 
discussed. Studying society of agents and models of agency follows. 
Finally, a perspective on a methodology for agent-oriented software 
engineering and standards are presented. 

Knowledge Discovery and Data Mining
Software Engineering

This course discusses basics of the knowledge discovery process, data 
mining, and provides a basic introduction to data science. It also presents 
current research in Knowledge Discovery in Databases (KDD) dealing 
with data integration, mining, and interpretation of patterns in large 
collections of data. Topics include data warehousing and data pre
processing techniques; data mining techniques for classification, 
regression, clustering, deviation detection, and association analysis; and 
evaluation of patterns mined from data. Industrial and scientific 
applications are discussed.

Game Development
Software Engineering

This course introduces you to Games development, emphasising a mix 
of creative content design, development,and technical specialisation. 
You will gain an understanding of the Games industry from its 
conception through to current trends. Initially, you will study the 
lifecycle of games development, focusing on story design, character 
design, game mechanics, and level design, as well as content 
development including textures and interface, 3D modelling, game 
development, and programming. You will learn event driven 
programming through triggers and updates in a games development 
environment. 
● Via lectures and hands-on projects, the course explores principles of 2D 
and 3D graphics, animation, sound, and collision detection using various 
frameworks, as well as programming languages. By class’s end, students 
will have programmed several of their own games and gained a thorough 
understanding of the basics of game design and development. 

Computer Graphics
Software Engineering

The aim of this course is to provide a unified introduction to computer 
graphics and computer vision It introduces both the hardware and 
software utilized in computer graphics imaging or digital visual arts. The 
emphasis is on creating a working graphics system from the ground up, 
but modern models and applications are also discussed and utilized. The 
fundamentals of display hardware and applications, interactive 
techniques and color models, study of 3D viewing pipeline, drawing 
images in OpenGL, 3D polygon rendering and transformations are 
discussed shrewdly. 

Software Engineering Capstone Project II
Software Engineering

This course is a continuation from capstone project I of 1st semester. 

Management Information Systems
Software Engineering

This course deals with the nature of information as an organizational 
resource; its significance in decision making and management; information 
requirements at different levels and functional areas of management; 
identification and source of information required; management of 
information system; development of information system; application of 
information and knowledge management. Common business applications 
related to management such as Financial Information Systems, Marketing 
Information Systems,  Manufacturing and Production Information Systems,  
Human Resource Information Systems,  Managerial Decision Support 
Systems will also be discussed. 

Computer Simulation and Modelling
Software Engineering

The course will introduce the basic concepts of modeling and simulation 
that are increasingly being used by architects, planners, and engineers to 
shorten design cycles, innovate new products, and evaluate designs and 
simulate the impacts of alternative approaches. Students will use 
MATLAB to explore a range of programming and modeling concepts 
while acquiring those skills.  They will then undertake a final project that 
analyzes one of a variety of scientific problems by designing a 
representative model, implementing the model, completing a 
verification and validation process of the model, reporting on the model 
in oral and written form, and changing the model to reflect corrections, 
improvements and enhancements. 

Fundamentals of Financial Technology
Software Engineering

This course is designed to provide students from non-finance 
backgrounds an in-depth understanding of both the opportunities and 
challenges in the FinTech industry, with a special focus on the Ethiopian 
market. The course will cover key FinTech concepts, digital currencies, 
digital payments, lending platforms, and regulatory landscape as well as 
delve into the critical areas of cybersecurity and fraud prevention in the 
FinTech sector.  The course prepares students for potential careers in the 
rapidly evolving FinTech industry, with a strong foundation in both 
FinTech and cybersecurity principles.  

Software Metrics
Software Engineering

This course is a step by step description of the software metrics. It 
includes introduction to foundations of measurement theory, models of 
software engineering measurement, software products metrics, software 
process metrics and measuring management.  

Software Engineering Capstone Project I
Software Engineering

The capstone project allows students to demonstrate their learning using 
an area of interest as the basis for the project.  This could be in an area 
that they participate to pursue after graduation.  Students will work in a 
team of 3-4 to design, assemble/develop and present a capstone project 
to an audience to demonstrate personal learning and achievement, and 
growth in core competencies.

Software Product Management
Software Engineering

The course covers the entire software product life cycle, the emphasis is 
on requirements management and setting their priorities, feature 
grouping and variation management, and version control systems. The 
course will also cover issues related product management role in 
software industry; Product definition; configuration management; 
Product management tools - planning, managing and tracking and 
dealing with external stakeholders. 

Seminar in Software Engineering
Software Engineering

The purpose of this course is to give students the opportunity to cover 
issues and current trends that might have not been covered in the courses 
provided as core or elective courses. The instructor has the responsibility 
of introducing current topics relevant for the program. 
Students are provided with a list of papers published on accredited 
journals or conference proceeding to choose from. Each student will 
choose papers, critically evaluate, prepare and submit a well-written 
report followed by oral presentation findings and critics. 

Systems Thinking and Systems Approach
Software Engineering

This course focuses on approaches to systems thinking; systems
thinking method; and Systems Thinking Guide in the work place. 
Systems thinking as a method and tool for managing change, solving 
complex problems, and creating individual and team learning. 

Service-oriented Architecture
Software Engineering

This course focuses on Service Oriented Architecture (SOA) concepts 
and principles, as well as quality considerations for developing modern 
software systems from a technical and organizational 
perspective.  Topics include: Introducing service oriented architecture 
(SOA); Principles of service orientation; SOA business aspects: 
standards of Web services, implementation of SOA using Web services, 
business aspects of SOA and Web services; SOA Design Patterns: SOAP - Message exchange Patterns - Coordination - Atomic Transactions - 
Business activities - Orchestration - Choreography - Service layer 
abstraction - Application Service Layer - Business Service Layer - 
Orchestration Service Layer; Business-centric SOA - service modeling - 
Service Oriented Design; SOA Technologies - SOA Tooling - SOA 
Vendors; 

Continuous Integration and Deployment
Software Engineering

This course introduces the concept of practices of Continuous 
Integration and Deployment. The course will provide DevOps 
Fundamentals: principles and practices, Version Control Systems; 
Continuous Integration; Continuous; integration, build automation and 
languages dependency Automated Software Testing.

Software Process Improvement
Software Engineering

This course aims to introduce students to software process improvement.  
Process improvement aims to learn from current practice and objectively 
assess potential improvements. This will be explored by practicing a 
simplified form of the Personal Software Process and studying a number 
of process related topics drawn from: the goal question metric paradigm; 
appropriate automation; configuration management; project tracking and 
control; quality assurance; cost of quality; continuous integration; 
DevOps; software distribution; Infrastructure, Platform and Software as 
a Service; leveraging social media and the internet. 

Methods for IS Research
Software Engineering

This course enables students to understand concepts and application of 
research. It attempts to define what research is, why they do research, 
and the various methods that researchers use to investigate problems. It 
is designed as an under-graduate introduction to research methodology 
in software engineering and information systems. The course provides a 
framework for conceptualizing research and is meant to underpin the 
research project for the final year.  Special focus will be made in Design 
Science Research.

Software Project Management
Software Engineering

The course covers topics such as IS plans and projects; practical 
examination of how software projects can be managed from start to 
finish; stages of project planning and project life-cycle; project selection 
from an organizational perspective, project initiation and scope 
development; team building and leadership; project costing, scheduling, 
and identifying and managing risks; product quality assurance 
techniques, project resource identification and allocation; project 
contracts management; progress and performance measurement and 
evaluation, project audit and closure; automated project management 
tools; ethical issues in software project management.

Software Usability and Management
Software Engineering

The class will cover the perceptual psychological, cognitive psychological, 
and other scientific underpinnings of usability (i.e., the emerging “usability 
science”), the usability engineering methods used in the pursuit of UCD, and 
the justification for the application of usability engineering in a software 
development.