Software Engineering(B.Sc. SE)

Duration 3 Years Level Graduation Type Degree


B.E. Software Engineering or Bachelor of Engineering in Software Engineering is an undergraduate Software Engineering course. It is the application of a systematic and disciplined approach to the development, operation, and maintenance of software. Bachelor of Engineering in Software covers the fundamentals of software engineering, including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding and testing. The course combines a strong technical focus on project providing the opportunity to practice engineering knowledge, skills, and practices in a realistic development setting with a real client.

To qualify for an SWE at ATU, students are required to complete 3 years of full-time course work and the curriculum comprise nine semesters.

Course Requirements

Software Engineering
Year I Semester I
CodeCourseCredit Hours (15)
SWE111Introduction to Software Engineering3
SWE112Introduction to Computer Applications3
SWE113Calculus I3
SWE114Introduction to Islamic Studies3
SWE115Academic Writing, I3
Software Engineering
Year I Semester II
CodeCourseCredit Hours (15)
SWE121Fundamental of Programming I(python)3
SWE122Introduction to Database Systems3
SWE123Calculus II3
SWE124Introduction to Data Communication and Networking3
SWE125Academic Writing II3
Year I Semester III
CodeCourseCredit Hours (14)
SWE131Fundamental of Programming II(java)4
SWE132Advanced Networking3
SWE133Introduction to Web Development3
SWE134Advanced Database Systems4
Year II Semester I
CodeCourseCredit Hours (14)
SWE211Object Oriented Programming4
SWE212Advanced Software Engineering3
SWE213Advanced Operating Systems (Linux/Unix)3
SWE214Advanced Web Development4
Year II Semester II
CodeCourseCredit Hours (14)
SWE221Advanced python4
SWE222Cyber Security3
SWE223Discrete Mathematics3
SWE224Management Information Systems4
Year II Semester III
CodeCourseCredit Hours (14)
SWE231Data Structure and Algorithms4
SWE232Microsoft System Admiration3
SWE233Linear Algebra3

Year III Semester I Course
Credit Hours (15)
SWE311Advanced Java Programming3
SWE312Oracle Database3
SWE314Software Project Management3
SWE315Operating Systems3
Software Engineering
Year III Semester II
CodeCourseCredit Hours (15)
SWE323Introduction to Entrepreneurship3
SWE324Research Methodology3
SWE325Introduction to Emerging Technologies3
Year III Semester III
CodeCourseCredit Hours (15)
SWE331Introduction to Interpersonal Skills3
SWE332Mobile and Web Development3
SWE333Principles of Economics and Management3
SWE334Senior Project6


  1. Computer architecture and Organization
  2. Artificial Intelligence and applications
  3. Image Processing
  4. Robotics
  5. Human Computer Interaction Engineering
  6. Digital Signal Processing
  7. Principles of Economics and Management

Course Descriptions

SWE111: Introduction to Software Engineering

Software engineering is the branch of computer science that creates practical, cost-effective solutions to computing and information processing problems, preferentially by applying scientific knowledge, developing software systems in the service of mankind.

This course covers the fundamentals of software engineering, including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools.

SWE112: Introduction to Computer Applications

This course is an overview of Computer applications, historical development of computers, logical organization of a computer system, software, and data representation inside computers. Computer arithmetic, computer system architecture (Boolean algebra and logic circuits). Overview of computer networks & Computer

security, Lab Introducing the use of MS Windows environment; Introduction to main MS application packages in that context – MS Excel, MS Word, MS access, MS power point, Introduction to using Internet.

SWE113: Calculus I

Calculus I is an introduction to differential calculus: the study of change. The course is designed for students working on a degree in Software Engineering and those planning on certain types of graduate work. SWE113 covers differentiation of algebraic,

applications of the derivative, differentials,. The goal here is developing the student’s geometric insight into the concepts of differentiation, and applying these concepts to problem solving and “real world application”.

SWE114: Introduction to Islamic Studies

This course it is a religious subject of the religion of the people in Somaliland so it is essential that the youth of the country learn their religion. This subject is an important ethical issue for the Muslim community especially for the students because the student is the tomorrow’s leader of the country and must have an Islamic morality since we require them to serve their people honestly and justly. The course covers ethical issues such as security, trustworthiness, consultation, justice, generosity, patience, safeguarding promises and safeguarding your tongue. Therefore, this course is important for the whole community and especially for learners.

SWE115: Academic Writing I

This course develops further knowledge of the grammar and of essential vocabulary in order to lead the students to a better level of proficiency. Emphasis is placed on developing listening, speaking, reading and writing skills through an integrated approach. It focuses on grammar and fundamental writing skills. College English is a basic grammar course in which students study different grammar and discuss ways to formulate their writing. Peer revision, collaboration with class members, in-class writing activities, reading, identifying run on sentence and fragments, class discussion, and error pattern identification comprise the core requirements.

SWE121: Fundamental of Programming I (python)

This course is an introduction to the Python programming language for students without prior programming experience. We cover data types, control flow and object-oriented programming. Python is a language with a simple syntax, and a powerful set of libraries. It is an interpreted language, with a rich programming environment, including a robust debugger and profiler. While it is easy for beginners to learn, it is widely used in many scientific areas for data exploration.

SWE122: Introduction to Database Systems

This course is assumed to be the first course in database management systems. It starts by introducing what database and database systems are, and how it differs with the traditional file processing system. It then deals with data models, ER diagrams, database design methods, normalization, relational algebra and calculus, file organizations and storage management, index structure for files, and SQL statements.

SWE123: Calculus II

Calculus II is an introduces to integral calculus: the study of change. The course is designed for students working on a degree in Software Engineering and those planning on certain types of graduate work. SWE123 covers transcendental functions, applications of the indefinite integrals and definite integrals. The goal here is developing the

student’s geometric insight into the concepts integration, and applying these concepts

to problem solving and “real world application”.

SWE124: Introduction to Data Communication and Networking

This course will explore the various types of the data communication systems, networks and their applications. Concept & terminologies like computer networks, layer architecture (OSI & TCP/IP), network hardware, network software, standardization, network medium, and IP addressing will be explored. The practical aspect will deal with building small to medium level networks including Cabling, Configuring TCP/IP, Peer-to-Peer Networking, Sharing resources, Client Server Networking.

SWE125: Academic Writing II

A writing course is designed to reinforce essay composition skills and introduce students to the practice of writing for academic purposes. It will prepare students for work in high level English courses in which research writing is a requirement. The course will place greater emphasis on macro-level composition skills such as: essay structure, paragraph structure, coherence, unity; and micro-level skills such as: sentence structure, grammar, vocabulary, spelling and mechanics.

SWE131: Fundamental of Programming II(java)

This course starts with overviewing methods and discusses the concept of arrays, Strings, exception handling and files in detail. It also discusses about the mechanics of running, testing, and debugging programs and introduces object-oriented programming.

SWE132: Advanced Networking

This course is to familiarize students with basics and Advance Networking. This course is job- oriented course and designed to produce networking professionals capable of implementing, administration, maintaining Networks and overall systems

SWE133: Introduction to Web Development

This course introduces students to basic web design using HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets). The course does not require any prior knowledge of HTML or web design. Throughout the course students are introduced to planning and designing effective web pages; implementing web pages by writing HTML and CSS code; enhancing web pages with the use of page layout techniques, text formatting, graphics, images, and multimedia; and producing a functional, multi-page website.

SWE134: Advanced Database Systems

The course presupposes a basic knowledge of conceptual modeling for data base systems and implementation using relational DBMS and SQL. The course aims to a more profound understanding of database theories, models, and methods and an ability to use data mining and data warehousing, distributed databases and client server architecture.

SWE211: Object Oriented Programming

This programming course emphasizes the methodology of programming from an object-oriented perspective and software engineering principles. It allows students to develop the ability to analyses programming problems and design and document suitable solutions and to implement reliable and robust software using contemporary program design methods. Topics to be dealt with are classes: data abstraction, information hiding, overloading, inheritance, polymorphism, exceptions handling, Static and dynamic binding, Abstract classes, java File I/O and Interfaces.

SWE212: Advanced Software Engineering

This course covers advanced software engineering topics related to dependable systems. Students will be presented with properties of dependable systems such as availability, reliability, security, safety, and resilience. Students will learn about the benefits of these properties and techniques for attaining these properties. Software reuse and distributed systems are also covered.

SWE213: Cyber Security

This course is designed to teach mid-level security practitioners how to engage all functional levels within the enterprise to deliver information system security. To this end, the course addresses arrange of topics, each of which is vital to securing the modern enterprise. These topics include inter alia plans and policies, enterprise roles, security metrics, risk management, standards and regulations, physical security, and business continuity. Each piece of the puzzle must be in place for the enterprise to achieve its security goals; adversaries will invariably find and exploit weak links

SWE214: Advanced Web Development

Client-server Architecture: Web page Design and development; information Architecture visualization; dynamic pages, OOP programming using PHP, File manipulation and Management using PHP. Multimedia web programming, dynamic web content creation; session tracking; Internet protocols, PHP Web controls, connecting web page to data base, loading and manipulating XML documents, web security; cryptography theory.

SWE222: Operating Systems

What is an Operating System, history of operating system, operating system zoo, process concept, process scheduling, inter-process communication, threads, CPU scheduling, basic concepts, scheduling criteria, scheduling algorithms and process synchronization. The critical section problem, semaphores, monitors, classical synchronization problems; deadlocks, avoidance, prevention, detection; memory management, physical and virtual memory, swapping, allocation, paging, segmentation; file systems, access methods, directory structure, file sharing and protection; security, authentication, intrusion detection, encryption.

SWE223: Discrete Mathematics

This course introduces the foundations of discrete mathematics as they apply to Software Engineering, focusing on providing a solid theoretical foundation for further work. Topics include

functions, relations, sets, simple proof techniques, Boolean algebra, propositional logic, digital logic, elementary number theory, the fundamentals of counting, predicate logic, recurrence relations, graphs, trees, matrices, computational complexity, elementary computability, and discrete probability.

SWE224: Management Information Systems

Management Information Systems is a formal discipline within business education that bridges the gap between Software Engineering and well-known business disciplines such as finance, marketing, and management. This course is designed to provide students with a basic understanding of how Information Systems are used in organizations for meeting strategic and operational goals. To that end, students will acquire skills using current end-user software for communication, data transformation, collaboration, and problem solving.

SWE231: Data Structure and Algorithms

This course focuses on the study of data structures, algorithms and program efficiency. Topics include: analysis of time and space requirements of algorithms; program efficiency improving techniques, abstract data types such as linked lists, stacks, queues,

trees (traversal, implementations); simple searching algorithms (e.g. linear search, binary search, etc.), simple sorting algorithms (e.g. bubble sort, insertion sort, selection sort), advanced sorting algorithms (e.g. merge sort, quick sort, heap sort ).

SWE232: Microsoft System Administration

This course provides students with the knowledge and skills necessary to perform administrative tasks in a Microsoft Windows network. The goal of this course is to provide individuals who are new to Microsoft Windows operating system with the knowledge necessary to understand and identify the tasks involved in supporting Windows networks. This course is designed to provide knowledge of user accounts, groups and group scopes, permissions, security, Active Directory terminology, utilities, and Network Roles and Services.

SWE233: Linear Algebra

This is an undergraduate course in linear algebra for students of Software engineering, science, and mathematics. Linear algebra is the study of linear systems of equations, vector spaces, and linear transformations. Solving systems of linear equations is a basic tool of many mathematical procedures used for solving problems in Software engineering. In this class we will concentrate on the mathematical theory and methods of linear algebra. The student will become competent in solving linear equations, performing matrix algebra, calculating determinants, and finding eigenvalues and eigenvectors. On the theoretical side, the student will come to understand a matrix as linear transformations relative to a basis of a vector space.


This course will cover the practical aspects of multi-tier application development using the .NET framework. The goal of this course is to introduce the students to the basics of distributed application development. We will introduce the students to Web Service development and .NET remoting. Technologies covered include the Common Language Runtime (CLR), .NET framework classes, C#, ASP.NET, and ADO.NET. We will also cover service-oriented architecture, design, performance, security, content management systems and deployment issues encountered in building multi-tier distributed applications.

SWE311: Advanced Java Programming

This course explores advanced Java language features and packages. The course begins with introducing applets. Multithreading, network programming and Database programming using JDBC is covered in depth. Distributed programming in Java is introduced using RMI. Reflection in Java and JAR files are covered. Server-side Web programming is introduced using servlets and JSP. Java security is covered. There is also an introduction to JavaBeans.

SWE312: Formal Language and Theory Automata

This course aims to develop the theoretical foundations of computer science through the study of mathematical and abstract models of computers and the theory of formal languages. It also introduces some fundamental concepts in automata theory and formal languages including grammars, finite automata, regular expressions, formal languages, pushdown automata, and Turing machines. 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.

SWE313: Statistics

Descriptive statistics, elements of probability theory, and basic ideas of statistical inference. Topics may include frequency distributions, measures of central tendency and dispersion, commonly occurring distributions (binomial, normal, etc.), estimation, and testing of hypotheses.

SWE314: Software Project Management

SWE314 describes the principal tasks of software project managers and basic concepts in software projects, plan software projects, including risk and quality management.

Explain basic concepts and principles of components of software engineering and how these components contribute to the software process, evaluate and relatedifferent software processes, system models and architectural designs and assess their suitability in a given context and how the project manager can act to influence success of the project.

SWE315: Advanced Operating Systems (Linux/Unix)

This course deals with the concepts and techniques of systems and network administration. The course mainly covers a wide range like host management, network management, host and network security to automating system administration. In this course students will install, manage and configure various popular network based services in a Linux environment.

SWE312: Oracle Database

Fundamentals of the tasks and functions required of a database administrator. While Oracle is the primary Database Management System utilized, the concepts and procedures presented in this course are typical for any Database Management System Server.

SWE325: Introduction to Emergence Technology

An Introduction to Emerging Technology offers business and aspiring technical professionals a streamlined course to learn the basic concepts of the most common

emerging technologies and their applied business applications. Participants will explore how emerging tech is defining what products and services we create, how we create and deliver them, and engage with our partners and customers. Each individual will gain the necessary foundational information to participate in their organization’s emerging technology initiatives

SWE322: Multimedia System

This course deals with the principles and current technologies of multimedia systems. It incorporates topics such as multimedia standards, tools and systems, current issues and trends of research in Multimedia systems. It is designed to raise student’s understanding of multimedia data and multimedia systems and initiate them for research in the domain

SWE323: Introduction to Entrepreneurship

What to expect on this course. (Online web site with a business, products or solutions), Entrepreneurship historical perspective (from agriculture to commerce) who are the entrepreneur. Example of the current entrepreneurs in the world, from facebook to microsoft), Online e- commerce annual worldwide amount from 2001 to today, understanding product and solutions, Understanding targeting customers with the correct product or solution, Start team work on how to develop a product and solution, Legal research on online tax and incentives in Somaliland. Develop and research payment system ( credit card option to receive international payments), research a domain and keywords target (free domains from dot TK),research web site and Hosting, setup a hosting account and web site ,Search engine optimization, Outsource with freelancer sites or forum.

SWE324: Research Methodology

This course provides participants with an introduction to research methods that enable them build skills necessary for the planning, data gathering and dissemination of research findings. The skills are important to participants in their day-to-day work as they compile reports and generate information for relevant decision-making. The skills acquired along the module are also key to the participants’ progress on the degree program where they are expected to carry out research. Topics covered range from Research Design; Methods of Data Collection; Approaches to Analyzing Data and Writing a Research Proposal. The course provides a foundation for further learning in specific research methods. It is primarily designed for participants on the Degree College of Computing and Information Technology

SWE325: Mobile Web Development

Android application development course, students will learn how set up Android

environment and master its architecture, including user interfaces, activities, controls, layouts, services, content providers, and multimedia APIs. that work seamlessly with a range of phones and tablets; students will gain practical development experience by building applications during the android app development course. Android developers are in high demand.

SWE331: Introduction to Interpersonal Skills

an intervention that teaches individuals to express themselves clearly and directly and to listen in an active and empathic way, using such techniques as feedback and modeling, in group, family, or work contexts.

SWE333: Principles of Economics and Management

Managerial economics is defined as the branch of economics which deals with the application of various concepts, theories, methodologies of economics to solve practical problems in business management. It is also reckoned as the amalgamation of economic theories and business practices to ease the process of decision making.

Managerial economics is also said to cover the gap between the problems of logic and problems of policy.

SWE331: Computer Graphics

The aim of this course is to introduce computer graphics and computer vision for students with an interest in imaging or digital visual arts and to the highest extent, create animated objects and video game development. The course primarily introduces both the hardware and software utilized in computer graphics. 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

SWE332: Human Computer Interaction Engineering

A key component to the discipline of Software Engineering is the understanding and the advocacy of the user in the development of software applications and systems. Software engineering graduates must develop a mind-set that recognizes the importance of users and organizational contexts. They must employ user-centered methodologies in the development, evaluation, and deployment of Computer applications and systems. This requires graduates to develop knowledge of HCI, including but not limited to such areas as user and task analysis, human factors, ergonomics, accessibility standards, and cognitive psychology.

SWE333: Senior Project