The Common Core

FIRST YEAR COURSES
MT01 Discrete Mathematics
This course covers the mathematics and numbering fundamentals necessary for programming and for computer science in general. These include binary number representation, sets, relations, logic, graphs and combinatorics and an introduction to counting probabilities.
CM01 Oral Technical Communication
This course introduces the students to the theory and practice of verbal technical communication in English. For this, students engage in speaking activities (extemporaneous, impromptu, individual, and in group) designed to promote competency in the preparation and delivery of technical information tailored to different audiences. Among the skills developed in this course are the organization of ideas, use of a structured outline, various persuasive methods and supporting materials, selection of appropriate language, and use of visual aids. Students also learn how to evaluate technical communication addresses of their peers.
CS01 Programming I
This course is intended to provide students with knowledge to solve various engineering problems on a computer using a high-level language. It introduces fundamental techniques for writing programs in Python and testing them. The course includes an introduction to computers and operating systems and aspects of programming such as control structures, functions, data types, and strings. Students are exposed to different programming environments such as Idle, Ipython, Jupyter, Spider, Notebook, Atom, and Anaconda.
CM02 Written Technical Communication
This course is designed to develop the writing skills necessary for Applied Computer Science students and for future writing tasks in professional contexts. It emphasizes their ability to communicate with various audiences in writing. The course covers (i) Writing professional correspondence such as Memos, Letters, E-mails, and other formats; (ii) Job-application materials; (iii) Editing for correctness, concision, and for style and coherence; and (iv) Writing Proposals and other workplace reports such as Solicited proposals and Request for Proposals (RFPs), Non-solicited proposals, Status reports, and Recommendation Reports. The last parts of the course cover the topics of Document Design and graphics in documents, Visuals and persuasion, and Writing collaboratively.
CS02 Programming II
This course builds on the knowledge and basic skills acquired in CS01 programming course to allow students to scale-up and be able to use advanced features of python including objected-oriented programming. Students are re-introduced to the basic concepts such as loops, functions, lists and dictionaries, then exposed to string handling, iterators, generators, classes, exceptions, modules, and files. The course finishes with an intitiation to plotting, Numpy and some sorting and searching algorithms.
CS03 Data Structures
This course builds on the knowledge and skills acquired in CS01 and CS02 programming courses to allow students to gain experience building classical data structures namely lists, sets, queues, stacks, trees, and graphs using Object Oriented Python.
CS04 Databases
This course covers the design and implementation of relational databases. Significant focus is placed on Entity-Relationship and Relational modeling together, Normalization and using SQL as a database query language, including some procedural SQL, Transactions and concurrency. Students will practice building and connecting to a database system using MySql and Python.
CS05 Algorithm Analysis
This course introduces students to a variety of algorithms through real world problems. The classes of algorithms covered include greedy, divide-and-conquer, graph traversal, sorting, searching, and optimization algorithms such as gradient descent. Students will be exposed to the computational efficiency of these principal algorithms, time memory tradeoffs, and will learn to implement, compare and evaluate them through applied homework questions using Python.
CS06 Computer Organization and Operating systems
This course will introduce the high level architecture of computing systems and its major components. Students will learn about Data representation, Memory, CPU, Input/Output, execution cycles, and how these components are managed by the operating system to achieve the functions defined for a computer. Students will learn how user programs are loaded and executed and how hardware is accessed through system call service routines. Students will use Shell command line to interact with the file system, processes, and threads, in both Linux and Windows environments.
CS07 Intro to Front-end Web development (Dedicated for Software Development Track)
This course covers the three key technologies necessary for any web development, namely HTML, CSS, and JavaScript, then show how these are used in frameworks such as Bootstrap and React to create responsive front-end designs. Students will also learn how to create dynamic web pages and how to pull data from a back-end database using APIs. They are also introduced to Git for code management, collaboration, and control of large software development projects.
CS07 Computer Network (Dedicated for Cyber Security Track)
This course is an introduction to computer networks. It starts by presenting LANs and virtual LANs, then moves up to cover TCP/IP protocol stack including IP addressing/subnetting. Students will also learn about the use of Network APIs in client/server architectures, and cover DNS, HTTP, SMTP and FTP protocols as the Internet main infrastructure services. Students will use networking tools, such WireShark, to monitor and analyse network traffic.
CS07 Probability and Statistics (Dedicated for Data Science Track)
The first part of this course introduces basic concepts of probability as a mean of modelling uncertainty. It covers discrete and continuous random variables, probability distributions, conditional probabilities, Bayes theorem, and Sampling distributions. The second part of the course covers descriptive statistics including confidence intervals, correlation, regression, chi square tests, and analysis of variance.