Process modeling and workflow design
Software Engineering

The aim of this course is to introduce students to the fundamental concepts of business process modeling, a systematic approach to model flow of work within organizations in order to support detailed analysis of business processes. The course covers definition of business processes, principles of process modeling, workflow design, analysis of business process models, overview of existing modeling languages (UML, YAWL, BPEL/BPMN), and business process integration. process representation; interpreting and creating process diagrams; and process validation and change management. 

Software Usability and Management
Software Engineering

This course will cover the usability engineering methods used in the pursuit of UCD, and the justification for the application of usability engineering in a software development 

After completing this course, the student will be able to:

    • understand and be able to explain the rudimentary aspects of how human beings take in and process information,
    • know what the methods of usability engineering are and have experience with some of them,
    • understand and be able to explain why software developers should NOT depend on their own intuitions for what is a usable design,
    • be able to make the arguments for cost-justifying a user-centered design approach,
    • have had exposure to a variety of usability labs,
    • know how to carry out a usability evaluation and write a usability test plan and report.
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; 

Fundamentals of Database Systems
Software Engineering

The course covers the following topics: Database concepts related to data handling techniques, definition of a database and benefits of database systems, functions and components of DBMS. Architecture for database systems: ANSI SPARC architecture architectures, data model concepts and basic types of data models (Hierarchical, Network and Relational data models). Emphasize on Relational data model: data structures and integrity rules. Three levels Database design: (Conceptual, Logical and Physical Database designing). Basics of Relational Languages (Relational Algebra, Relational calculus and SQL), normalization as a process for verification of data model design, SQL interaction with programming interfaces.
Learning

Continuous Integration and Deployment
Software Engineering

This course introduces the concept of practices of Continuous Integration and Deployment. The course provides a comprehensive, hands-on journey into Continuous Integration (CI) and Continuous Deployment (CD) within the broader DevOps ecosystem. It equips learners with the skills, tools, and  practices required to build automated, reliable, and scalable software delivery pipelines.