COSC 602 Software Engineering (3-0-3)
Prerequisite: Undergraduate course in Software Engineering (or equivalent).
This course is an advanced course on software engineering, which deals with the advanced topics in quality requirements for mission-critical systems, large-scale software architecture, and data mining of software engineering repositories and artifacts. Topics include mission critical non-functional requirements safety, security, privacy, and trust; large-scale software architecture patterns and re-structuring; data mining error logs, and other selected topics.
COSC 603 Multi-Agent Systems (3-0-3)
Prerequisite: Undergraduate course in artificial intelligence (or equivalent).
This course is an advanced course on multi-agent systems, which deals with the analysis and design of distributed entities that interact with each other in both cooperative and non-cooperative domains. Topics include: cooperative and non-cooperative game theory, social choice, mechanism design, auctions, repeated games, distributed optimization, multi-agent learning and teaching, and other selected topics.
COSC 604 Artificial Intelligence (3-0-3)
Prerequisite: Undergraduate course in artificial intelligence.
This course is a graduate-level introduction to the field of artificial intelligence (AI). It aims to give students a solid understanding of the main abstractions and reasoning techniques used in AI. Topics include: representation and inference in first-order logic; modern deterministic and decision-theoretic planning techniques; Bayesian network inference and (Deep) Reinforcement Learning.
COSC 605 Strategic Requirements Engineering (3-0-3)
Prerequisite: Undergraduate course in software engineering (or equivalent).
This is an interdisciplinary graduate-level course on requirements engineering and the application of requirements engineering principles and techniques to the development of complex socio-technological systems. The course puts particular emphasis on the integration of economic, strategic, social, and technological requirements, and the analysis of their impact on the future evolution of the system.
COSC 606 Machine Learning (3-0-3)
Prerequisite: Undergraduate course in machine learning (or equivalent).
This course will cover graduate-level materials on machine learning in both theory and practice by building upon the undergraduate-level course on “Introduction to Machine Learning”. The topics include statistical learning theory, ensemble learning, probabilistic learning, dimension reduction, recommender systems, advanced clustering, semi-supervised learning, transfer learning, etc.
COSC 607 Algorithm Design Techniques (3-0-3)
Prerequisite: Undergraduate course in design and analysis of algorithms (or equivalent).
Algorithms constitute the core of Computer Science and algorithm design is crucial for the performance of real-world software systems. This is an advanced algorithms course, focusing on techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include average case analysis of search trees and hashing; amortized analysis; competitive analysis; parallel algorithms; approximation algorithms for hard optimization problems, algorithms for problems arising in computational geometry and number theoretic algorithms.
COSC 608 Distributed Systems and Cloud Computing (3-0-3)
Prerequisite: Undergraduate courses in computer networks and parallel and distributed computing (or equivalent).
This course teaches in-demand technologies for distributed and parallel computation as well as storing and processing large amounts of data using cloud computing technologies. While underlying network and architecture issues are discussed to the extent that enables a basic understanding, particular focus is on the data science aspects of Cloud computing and cloud applications complementary to other Computer Science courses related to the realm of Data Science and Artificial Intelligence. It introduces general concepts and deploys the state-of-the-art systems from public cloud systems, but also instructs how to use locally available clouds.
COSC 620 Algorithms in Bioinformatics / Cross-Listed with BMED 634 (3-0-3)
Prerequisite: Undergraduate course in bioinformatics and genomic data science (or equivalent).
This course focusses on algorithms to explore the many types of data produced in the life sciences, while combining theory and practice. The course teaches the students how to deal with DNA and protein sequence data algorithmically. We will develop software to find disease causing mutations in cancer etc., to understand what genes do and to elucidate human ancestry. Towards those goals, we deal with functional gene annotation, biological databases, comparative genomics, phylogenetics, forensics and structural bioinformatics.
COSC 621 Data Science (3-0-3)
Prerequisite: Undergraduate course in data analytics (or equivalent).
This graduate-level course on data science builds upon the undergraduate course on “Data Analytics”. It covers the topics of big data methods, decision theory, data streams and online learning, time-series forecasting, and data science in different domains like string/sequence, text, image/video, and graph/network.
COSC 631 Blockchain Fundamentals and Applications / Cross-Listed with ECCE 631 (3-0-3)
Prerequisite: Undergraduate knowledge of Computer Networks or Communications Networks (or equivalent).
Introduction to cryptocurrencies, wallets, and Blockchain; Blockchain key features, benefits, and popular use cases; Blockchain fundamentals, protocols, algorithms, and underlying infrastructure Building Ethereum and Hyberledger blockchains; Decentralized applications (DApps); Smart contracts; Trusted Oracles; Decentralized storage; Designing and architecting blockchain-enabled systems and solutions for applications in IoT, AI, Supply Chain Management and Logistics, Healthcare, Smart Grids, 5G networks, Telecommunication, etc. Cost and Security Analysis; Limitations and open research challenges in Blockchain.
COSC 632 Advanced Operating Systems / Cross-Listed with ECCE 632 (3-0-3)
Prerequisite: Undergraduate course in operating systems.
The course presents the main concepts of advanced operating systems (parallel processing systems, distributed systems, real time systems, network operating systems, and open source operating systems), including the hardware and software features that support these systems.
COSC 635 Deep Learning Systems Design / Cross-Listed with ECCE 635 (3-0-3)
Prerequisite: Undergraduate knowledge of artificial intelligence (or equivalent).
High level introduction to deep learning concepts and essential contexts, deep learning computational framework, system implementation practicalities, machine learning workflow, practical classification problems for different data modalities, state of the art deep learning models.
COSC 636 Human Computer Interaction / Cross-Listed with ECCE 636 (3-0-3)
Prerequisite: Undergraduate knowledge of software engineering.
This course covers the principles of human-computer interaction, the design and evaluation of user interfaces. Topics include an overview of users’ needs and how cognitive aspects affect the design of user interfaces; the principles and guidelines for designing usable user interfaces, with emphasis on the different and novel interactions and trends in HCI; the interaction evaluation methodologies and techniques that can be used to measure the usability of software. Other topics may include World Wide Web design principles and tools, crowdsening/sourcing, speech and natural language interfaces, and virtual reality interfaces.
COSC 637 Parallel Programming / Cross-Listed with ECCE 637 (3-0-3)
Prerequisite: Undergraduate knowledge of programming in C, C++, Java or similar, data structures and algorithms, and basic computer architecture.
This course is a hands-on introduction to parallel computing for MSc students with emphasis on the most common and accessible parallel architecture, namely, the Graphics Processing Unit (GPU). The course will introduce students to modern GPU architectures and the fundamental concepts of parallel computing, including data parallelism, scalable execution, memory and data locality, multithreading, and synchronization. The course will also cover some of the most common parallel patterns such as convolution, prefix sum, graph search, and sparse matrix multiplications, along with their GPU implementations. The case study of deep convolutional neural networks will be covered in detail. NVIDIA’s CUDA programming environment will be used throughout the course for homework assignments and the course project.
COSC 638 Artificial Intelligence Techniques for Cyber Security / Cross-Listed with CSEC 638 (3-0-3)
Prerequisite: Undergraduate course in artificial intelligence.
This course provides student with a basic understanding of cybersecurity techniques incorporating Artificial Intelligence (AI) and Machine Learning (ML) technologies. Also, it outlines security and privacy issues of those systems.
COSC 694 Selected Topics in Computer Science (3-0-3)
Prerequisite: Will be specified according to the particular topics offered under this course number.
This course covers selected contemporary topics in Computer Science. The topics will vary from semester to semester depending on faculty availability and student interests. Proposed course descriptions are considered by the Department of Electrical and Computer Science on an ad hoc basis and the course will be offered according to demand. The proposed course content will need to be approved by the Graduate Studies Committee. The Course may be repeated once with change of contents to earn a maximum of 6 credit hours.
COSC 699 Master’s Thesis (minimum 12 credit hours)
Corequisite: ENGR 695 Seminar in Research Methods, approval of the Department Chair and the Associate Dean for Graduate Studies.
In the Master’s Thesis, the student is required to independently conduct original research-oriented work related to important computer science problems under the direct supervision of a main advisor, who must be a full-time faculty in the Electrical Engineering and Computer Science Department, and at least one other full-time faculty who acts as co-advisor. The outcome of the research should demonstrate the synthesis of information into knowledge in a form that may be used by others and lead to publications in suitable reputable journals/conferences. The student’s research findings must be documented in a formal thesis and defended through a viva voce examination. The student must register for a minimum of 12 credit hours of Master’s Thesis.