MS in Computer Science

The Computer Science Graduate Program prepares students for careers at the forefront of computing, teaching, industrial progress and research. Computer Science has become a highly active and fast-changing discipline. Holders of the M.S. degree in Computer Science have the opportunity to work at the cutting edge of this fundamental and exciting field, having been made ready to compete in the job market in different related areas such as artificial intelligence, database management, design and analysis of computer algorithms, computer graphics, image processing, computer architecture, parallel and distributed computing, operating systems, programming languages, networks, software engineering and symbolic manipulation.

 

 
 
TOTAL REQUIRED CREDITS FOR GRADUATION (39 credits)
CORE REQUIREMENTS (30 credits)
CODE DESCRIPTION PREREQUISITE CR.
CSI 500 Advanced Topics in Software Engineering NONE
3
CSI 505 Neural Networks NONE
3
CSI 515 Expert Systems NONE
3
CSI 516 Distributed Systems NONE
3
CSI 525 Advanced Algorithms NONE
3
CSI 535 Parallel Processing NONE
3
CSI 544 Advanced Systems Security NONE
3
CSI 550 Advanced Database Systems NONE
3
CSI 599 MS Thesis NONE
6
TECHNICAL ELECTIVES (9 credits)
To be selected from courses of numbers 500 offered by the department of Computer Science and Computer & Communications Engineering
COMPUTATIONAL DATA SCIENCE EMPHASIS (12 credits)
CODE DESCRIPTION PREREQUISITE CR.
CSI 518 Data Analytics: Profiling Techniques NONE
3
CSI 524 Machine Learning NONE
3
CSI 536 Forecasting Methodologies NONE
3
CSI 548 Statistical Quality Control NONE
3
CYBERSECURITY (12 credits)
CODE DESCRIPTION PREREQUISITE CR.
CSI 501 Security Policy and Ethical Issues in Information Technology NONE
3
CSI 509 UNIX and Network Administration NONE
3
CSI 532 Cybersecurity and Intrusion Detection and Prevention NONE
3
CSI 576 Security in the Internet of Things NONE
3
SYSTEMS ENGINEERING (12 credits)
CODE DESCRIPTION PREREQUISITE CR.
CSI 516 Distributed Systems NONE
3
CSI 531 Human Computer Interaction NONE
3
CSI 549 Compiler Design and Construction NONE
3
CSI 563 Embedded Systems NONE
3
Course Descriptions
CSI 500
Advanced Topics in Software Engineering
The course studies techniques for designing and implementing a reliable and cost-effective large scale software. Covered topics include : formal methods, process models, requirements analysis and
Prerequisite: NONE
CSI 505
Neural Networks
The course introduces the neural networks algorithms, their adaptive behavior and associative learning. Covered topics include : neural networks for parallel computing, perception, back propagation, Kohonen nets, Hopfield nets, statistical methods in neural computing, associative memories, cognition, neocognition and application softwares.
Prerequisite: NONE
CSI 515
Expert Systems
The course studies the anatomy of expert systems and knowledge representation. Covered topics include : types and architecture of expert systems, building an expert system, expert system tools, expert systems in the marketplace, and application softwares.The course studies the anatomy of expert systems and knowledge representation. Covered topics include : types and architecture of expert systems, building an expert system, expert system tools, expert systems in the marketplace, and application softwares.
Prerequisite: NONE
CSI 516
Distributed Systems
This course provides students with an understanding of the principles, techniques, and practice in the design and implementation of distributed systems, with a particular focus on infrastructure software. Covered topics include: Introduction to Erlang, System Architecture, Communication, Replication & Consistency, Distributed Shared Memory, Distributed Objects and Middleware, Synchronisation & Coordination, Mid-session Recess, Fault Tolerance, Security, Naming, Peer-to peer, Distributed File Systems, Parallel Programming, and Clusters and Grid.
Prerequisite: NONE
CSI 525
Advanced Algorithms
This is a graduate course on the design and analysis of algorithms, covering several advanced topics not studied in the introductory courses offered in the undergraduate program. Topics include: recursion, dynamic programming, greedy strategy, approximation algorithms, reductions, complexity, and combinatorial optimization for building efficient computer algorithms and handling the intractability of NP-complete problems.
Prerequisite: NONE
CSI 535
Parallel Processing
Parallel processing from the computer science perspective. Includes architecture (bus based, lockstep, SIMD), programming languages (functional, traditional and extensions), compilers, interconnection networks, and algorithms.
Prerequisite: NONE
CSI 544
Advanced Systems Security
This course provides an essential study of computer security issues and methods in networking systems. Covered topics include review of networking, advanced cryptography, access control, distributed authentication, TCP/IP security, firewalls, IPSec, Virtual Private Networks, intrusion detection systems, and advanced topics such as wireless security, and identity management.
Prerequisite: NONE
CSI 550
Advanced Database Systems
This course teaches advanced techniques of databases. topics include: network, relational, and object-oriented database models, system architectures, transaction processing, system implementation, and SQL. The course also addressess research literature surrounding database systems, including an historical perspective, the emergence of relational and object-oriented systems, concurrency control, and distributed systems. students are required to undertake a final project.
Prerequisite: NONE
CSI 599
MS Thesis
Credit given upon successful completion of a thesis approved for the master's degree. Note: open only to the computer science graduate student secures the permision of the chair of the student's thesis committee and the department.
Prerequisite: NONE
CSI 518
Data Analytics: Profiling Techniques
This course introduces the fundamental concepts in the logic of hypothesis and statistical tests, explores, visualize, and differentiates between the different types of errors. It teaches the student what profile are and how they can be used to create profiling groups. It then teaches the student how to analyze the results obtained. This course also covers the basics of sampling data and using it to reach plausible facts.
Prerequisite: NONE
CSI 524
Machine Learning
This course introduces the student to the world of Machine Learning and the different algorithms used in it. It introduces algorithms such as Decision Trees, Bayesian Networks, Support Vector Machines, Nearest Neighbor Algorithm, and Neural Networks. It shows how to use them in order to build predictive models. It presents, as well, the main concepts related to gathering, analyzing and processing data to be used by the predictive models. It then shows the student to evaluate and fine tune the results obtained.
Prerequisite: NONE
CSI 536
Forecasting Methodologies
This course introduces the student to the different methods used in forecasting. Topics covered include: linear, polynomial, exponential, power and logarithmic forecasting models. It also introduces exponential smoothing and how to work with time series.
Prerequisite: NONE
CSI 548
Statistical Quality Control
This course introduces the student to the different measurement techniques used in statistical quality control. Topics covered include: process performance and capability, measurement precision, sampling plans, and evaluation of all the factors that affect a process output.
Prerequisite: NONE
CSI 501
Security Policy and Ethical Issues in Information Technology
This course incorporates issues of information security management within an enterprise, such as suitable organizational policy, plans, and implementation strategies. Current legal issues in information technology are addressed, including elements of contracting, payment systems and digital signatures, privacy concerns, intellectual property, business torts, and criminal liability including hacking, computer trespass, and fraud. Examination of ethical issues, including privacy, system abuse, and ethical practices in information technology so as to enable students to make sound ethical choices and resolve legal and moral issues that arise in information technology.
Prerequisite: NONE
CSI 509
UNIX and Network Administration
Introduction to the UNIX kernel, filesystem, and network services. Topics include a review of shell scripting, process manipulation, filters and regular expression, and application security. Administration topics include the design, deployment, and troubleshooting of a Solaris and/or LINUX based network with GateD, NIS, LDAP, NFS, DNS, MAIL, WEB, and database services. Emphasis on shareware such as gcc, mysql, apache, openldap, and zebra.
Prerequisite: NONE
CSI 532
Cybersecurity and Intrusion Detection and Prevention
This course focuses on the theory and implementation of intrusion detection and intrusion prevention systems. The students will learn to design and manage key business information security functions, including incident response and incidence response teams disaster recovery plans. Topics include: network-based, host-based, and hybrid intrusion detection, intrusion prevention, attack pattern identification, deployment, response, surveillance, damage assessment, data forensics, data mining, attack tracing, system recovery, and continuity of operation.
Prerequisite: NONE
CSI 576
Security in the Internet of Things
This course introduces the students to the fundamentals of Internet of Things (IoT) network architecture and topologies along with the IoT protocol stack.  It helps them become familiar with some of the foundational problems in this realm. It focuses on examining the security and ethical issues of the vast implementation of smart things by tackling IoT vulnerabilities, attacks, and mitigation controls. Topics include: IEEE 802.15.4, 6LowPan, LPWAN, NFC, Cellular IoT, ZigBee, BLE, NFC, RFID, IPv6, RPL, DTLS, CoAP, along with their security aspects. It is a research oriented class that leads the students to complete and present publishable research papers.
Prerequisite: NONE
CSI 516
Distributed Systems
This course provides students with an understanding of the principles, techniques, and practice in the design and implementation of distributed systems, with a particular focus on infrastructure software. Covered topics include: Introduction to Erlang, System Architecture, Communication, Replication & Consistency, Distributed Shared Memory, Distributed Objects and Middleware, Synchronisation & Coordination, Mid-session Recess, Fault Tolerance, Security, Naming, Peer-to peer, Distributed File Systems, Parallel Programming, and Clusters and Grid.
Prerequisite: NONE
CSI 531
Human Computer Interaction
This course explains the theories and challenges of classical and mobile user interface design. Topics include: User interface design, implementation and evaluation, user-centered design methodologies, windowing systems, I/O devices and techniques, event-loop programming, user studies, and programming projects.
Prerequisite: NONE
CSI 549
Compiler Design and Construction
This course introduces the major aspects and interfaces used to modularize a modern compiler, with an emphasis on implementation techniques. Topics include: lexical analyzer (Scanner) LEX, top-down parsing, LL(1) parsers, bottom-up parsing, YACC, LR parsers, syntax directed translation, type checking; run-time storage, symbol table management, intermediate code generation, and code optimizations. Advanced material will also be included where time allows, such as garbage collection.
Prerequisite: NONE
CSI 563
Embedded Systems
This course aims at providing the student with an overview of embedded systems applications and design procedures. It covers the fundamental requirements of embedded systems and the interaction between hardware and software in such systems. This course exposes the student to the basic design issues that are adopted to this end. The course discusses issues related to real-time operating systems, real-time programming, low power consumption and portability. Formal specification models and languages and mapping these to hardware and software components along with decisions on design tradeoffs and hardware software partitioning are also going to be covered in this course. The course also covers the difference between the architecture of embedded systems and traditional systems.
Prerequisite: NONE

FACULTY OF ARTS AND SCIENCES
Dean's Message
Vision and Mission
Non-Degree Programs
Academic and Research Collaboration
Facilities
Profile
Official AUST Website
All rights reserved. © 2019