Programs

BS in Computer Science Curriculum

Course (Department, Number, Title)

All courses in the program listed by term starting with the first term of the first year and ending with the last term of the final year.

Indicating whether the course is Required, Elective, or a Selected Elective by an R, an E, or an SE.1 Subject Area (ECTS)
Math & Basic Sciences Computing topics;

Check if Contains Significant Design (√)

Other
YEAR 1, SEMESTER 1
FLEN 1011 Communicative English Language Skills I R 5
PHYS 1011 General Physics R 5
PSCH 1011 General Psychology R 5
MATH 1011 Mathematics for Natural Sciences R 5
LOCT 1011 Critical Thinking R 5
SPSC 1011 Physical Fitness R 0
GEES 1011 Geography of Ethiopia and the Horn R 5
HIST 1012 History of Ethiopia and the Horn R 5
YEAR 1, SEMESTER 2
FLEN 1012 Communicative English Language Skills II R 5
EMTE 1012 Introduction to Emerging Technologies R 5
ECEG 2052 Computer Programming R 5
MATH 1041 Applied Mathematics I R 5
MCiE 1012 Moral and Civic Education R 4
ANTH 1012 Social Anthropology R 4
Mgmt. 1012 Entrepreneurship R 5
YEAR 2, SEMESTER 1
EENG 2041 Digital Logic Design R 5 (✔)
COSC 2051 Object-Oriented Programming R  5
MATH 2011 Linear Algebra R 5
COSC 2041 Fundamentals of Database Systems R 5 (✔)
ECON 1011 Economics R 5
STAT 2015 Probability and Statistics R 5
SNIE 1012 Inclusiveness R 3
TCBTP 2003 Demographic survey and Community problem Identification R 5
YEAR 2, SEMESTER 2
COSC 2032 Data Communication and Computer Networks R 5
COSC 2042 Advanced Database Systems R 5 (✔)
MATH 2082 Numerical Analysis R 5
MATH 2052 Discrete Mathematics and Combinatorics R 5
COSC 2092 Data Structures and Algorithms R 5
COSC 2022 Computer Organization and Architecture R 5  (✔)
TCBTP 2004 Appropriate Technology and Professional Ethics R 5
YEAR 3, SEMESTER 1
COSC 3023 Operating Systems R 5
COSC 3081 Web programming R 7
COSC 3053 Java Programming R 5
COSC 3061 Software Engineering R 5 (✔)
COSC 3101 Automata and Complexity Theory R 5
COSC 3025 Microprocessor and Assembly Language Programming R 5  (✔)
GLTR 1012 Global Trends 3
YEAR 3, SEMESTER 2
COSC 3034 Wireless Communication and Mobile Computing R 5
COSC 3112 Introduction to Artificial Intelligence R 5
COSC 3094 Design and Analysis of Algorithms R 5 (✔)
COSC 3026 Real Time and Embedded Systems R 5
COSC 3072 Computer Graphics R 5 (✔)
TCBTP 3006 Action Plan Development and Intervension Phase R 5
YEAR 4, SEMESTER 1
COSC 4035 Computer Security R 5
COSC 4113 Computer Vision and Image Processing R 5
COSC 4123 Research Methods in Computer Science R 3
COSC 4103 Compiler Design R 5 (✔)
FYPR 4211 Final year Project I R 5
COIP 4203 Industrial Practice R 3
Elective I  

 

 

 

 

COSC 4055 Event-Driven Programming E 5
COSC 4075 Human Computer Interaction E 5
COSC 4077 Multimedia E 5
COSC 4083 Mobile Application Development E 5
COSC 4079 Simulation and Modeling E
YEAR 4, SEMESTER 2
COSC 4036 Networking and System Administration R 5
COSC 4038 Introduction to Distributed Systems R 5
COSC 4132 Selected Topics in Computer Science R 5
FYPR 4212 Final year Project II R 5
MOE 4254 Exit Exam R 0
Elective II
COSC 4112 Introduction to Data Mining and Data Warehousing E 5  

 

 

COSC 4114 Introduction to Machine Learning E 5
COSC 4116 Introduction to Natural Language Processing E 5
TOTALS (in terms of ECTS) 294 40 183 (45 √) 71
TOTALS (in terms of semester credit hours) 175 24 110 (27 √) 41
Total must satisfy minimum credit hours Minimum Semester Credit Hours 21 Hours 40 Hours

 

BS in Computer Science Course Description

ECEG 2052—Computer Programming (5). This course teaches problem solving using computers, algorithms, program structure, constants, types, variables, reserved words, syntax diagram, identifiers, numbers, character strings and constant declarations.

COSC 2051—Object-Oriented Programming (5) Prerequisites: ECEG 2052. The course introduces to principles and practices of Object-Oriented Programming. OOP introduces the fundamental concepts of OOP and gives students hands-on experience to work on real world problems.

COSC 2041—Fundamentals of Database Systems (5). The course deals with data models, ER diagrams, database design methods, normalization, relational algebra, file organizations and storage management, index structure for files, and SQL statements.

COSC 2032—Data Communication and Computer Networks (5). This course explores the various types of data communication systems and their applications. It deals with layered architecture (OSI & TCP/IP), network hardware and software, network medium, and IP addressing.

COSC 2042—Advanced Database Systems (5). Prerequisites: COSC 2041. The course deals with query optimization, transaction management, recovery and concurrency control, database authorization and security.

COSC 2092—Data Structures and Algorithms (5). Prerequisites: ECEG 2052. The course deals with analysis of time and space requirements of algorithms; abstract data types such as linked lists, stacks, queues, trees; and basic and advanced search and sort algorithms.

COSC 2022—Computer Organization and Architecture (5). Prerequisites: EENG2041. The course introduces students to basic computer organization and architecture concepts. It covers number systems, Boolean algebra, digital logic circuits and their design, simple machine architecture.

COSC 3023—Operating Systems (5). Prerequisites: COSC 2022. The course deals with process concept, scheduling & inter-process communication along with threads; CPU scheduling criteria and algorithms; process synchronization, semaphores; deadlocks and memory management.

COSC 3081—Web programming (7). The course covers concepts, principles and methods in programming for web and Internet environment and the services and technologies available and used on Internet.

COSC 3053—Java Programming (5). Prerequisites: COSC 2051. This course covers topics on Java which includes: AWT and Swing, I/O Streams, Multi-threading, Network Programming, Java database connectivity (JDBC), RMI, and Introduction to Servlets.

COSC 3061—Software Engineering (5). This course provides an introduction to the problems of software development and maintenance; the processes and methods used to address them. All phases in the software development life cycle will be explored.

COSC 3101—Automata and Complexity Theory (5). This course aims to develop the theoretical foundations of computer science through study of mathematical and abstract models of computers and the theory of formal languages.

COSC 3025—Microprocessor and Assembly Language Programming (5). Prerequisites: COSC 2022. The course covers basic components of 8086 instruction set architecture and 8086 processor registers. It also deals with memory allocation and reference techniques.

COSC 3034—Wireless Communication and Mobile Computing (5). Prerequisites: COSC 2032.This course examines the unique network protocol challenges and opportunities presented by wireless communication and router mobility. It also briefs fundamental concepts in wireless & mobile computing

COSC 3112—Introduction to Artificial Intelligence (5). Prerequisites: COSC 2092, STAT2015. The purpose of this course is to give students an understanding of Artificial Intelligence methodologies, tools and results.

COSC 3094—Design and Analysis of Algorithms (5). Prerequisites: COSC 2092. The course focuses on concepts of review of the basic data structures, design techniques, and graph algorithms.

COSC 3026—Real Time and Embedded Systems (5). Prerequisites: COSC 3025, COSC 3023. This course provides unique concepts and techniques needed to design and implement computer systems having real-time response requirements in an embedded environment.

COSC 3072—Computer Graphics (5). Prerequisites: ECEG 2052. This course will introduce students to all aspects of computer graphics including hardware, software and applications. The course introduces experience using an OpenGL.

COIP 4203—Industrial Practices (3) Apply degree program knowledge through practical internships, developing project skills, technical problem-solving abilities, managerial abilities, and industry-specific skills.

COSC 4035—Computer Security (5). Prerequisites: COSC 2032. This course deals with the security issues and technologies involved in modern information systems and networks and the various ways of information systems attacks and tradeoffs in protecting networks.

COSC 4113—Computer Vision and Image Processing (5). Prerequisites: COSC 3072, STAT2015. This course deals with processing grey-scale and color images and introduce the basic principles of processing digital signals and how those principles apply to images.

COSC 4123—Research Methods in Computer Science (4). The course focuses on study of current methods and techniques in computer science research. It deals with research in computing, proposal preparation, using resources to conduct research, writing research papers and presenting

COSC 4103—Compiler Design (5). Prerequisites: COSC 3101. The course builds on prior knowledge of languages and grammars and how they can come together to form applications. It also covers data structures, techniques, & softwares used in compiler construction.

FYR4211—Final year Project I (5). Prerequisites: COSC 3061. This course involves identifying a problem, studying the problem, gathering data and an open presentation of the development of the project work.

COSC 4055—Event-Driven Programming (5). This is a course in event-driven programming building on prior programming experience. The course covers topics in control arrays, exception handling, and the use of properties, controls, and multiple forms.

COSC 4075—Human Computer Interaction (5). A key component to the discipline of Computer Science is the understanding and the advocacy of the user in the development of CS applications and systems. CS graduates must develop a mind-set that recognizes discipline of HCI.

COSC 4077—Multimedia (5). This course deals with Multimedia technologies, storage models and structures; data models and interfaces. It also covers multimedia information systems; video/audio networking; media synchronization; image computing.

COSC 4083—Mobile Application Development (5). Prerequisites: COSC 2051. This course introduces mobile application development for the Android platform. Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

COSC 4036—Networking and System Administration (5). Prerequisites: CoSc2032, CoSc3023. This course deals with concepts & techniques of systems and network administration. It also deals with how to administer & manage a network by properly planning & implementing various function

COSC 4038—Introduction to Distributed Systems (5). Prerequisites: CoSc3023, CoSc2032. This course focuses on principles, techniques, and practices relevant for designing and implementing a distributed system.

COSC 4132—Selected Topics in Computer Science (5). This course provides a broad viewpoint on Compute science by surveying recent developments, major results, and hot topics in today’s leading-edge research in computer science.

FYPR 4212—Final Year Project II (5) Prerequisite: FYPR 4211. Implement and test the solution that is designed on    the prerequisite course using different programming languages and tools.

COSC 4079—Simulation and Modeling (5). Simulation is the art of using tools – physical or conceptual models, or computer hardware and software, to attempt to create the illusion of reality. It also covers the modeling of systems that rely on human factor.

COSC 4112—Introduction to Data Mining and Data Warehousing (5). Prerequisites: STAT 2015. In this course, advanced methods in the context of dimension reduction, feature extraction and selection, clustering, and classification will be explored. Interrelationship between methods will be addressed

COSC 4114—Introduction to Machine Learning (5). Prerequisites: MATH 2011, STAT 2015. Machine Learning is the study of how to build computer systems that learn from experience. This course will explain how to build systems that learn and adapt using real-world applications.

COSC 4116—Introduction to Natural Language Processing (5). Prerequisites: COSC 3101. This course provides an introduction to the field of computational linguistics, natural language processing. The course deals with how to create systems that can understand and produce natural language.