SEDS MS Courses

Course Code Course Name Description Prerequisite(s)
SEDS 481 Software Engineering and Data Science Primer I

An introduction to the basic concepts of software engineering. Requirements analysis, software architecture, software design, implementation technologies, verification, validation and software modelling and prerequisites in relation with these concepts are studied based on the needs of the individual students.

Week Topics
1-2 Software Engineering Context and Concepts
3-5 Software Processes
6-8 Software Modelling
9-11 Software Engineering Tools
12-14 Software Management Concepts
SEDS 482 Software Engineering and Data Science Primer II

An introduction to the basic concepts of data science. Statistics, visualization, machine learning, information retrieval, database, optimization, and data management will be covered based on the needs of individual students.

Week Topics
1-2 Data Science Fundamentals
3-4 Statistics
5-7 Data Science Process
8-10 Descriptive and Predictive Modeling
11-12 Data Science Tools
13-14 Data Management
SEDS 500 Graduation Project

Conduct and present (written and orally) an independent research investigation theoretically and/or experimentally during a semester under the guidance of a supervisor.

Week Topics
1-14 Studies Towards Solving the Problem for the Graduation Project; Meeting with the Supervisor
SEDS 501 Introduction to Data Science

It is a core course of the Software Engineering and Data Science Master of Science Program. The focus in the treatment of topics will be on breadth, rather than depth, and emphasis will be placed on integration and synthesis of concepts and their application to solving problems.

Week Topics
1 Introduction: What is Data Science?
2 Statistical Inference
3 Exploratory Data Analysis and the Data Science Process
4 Basic Machine Learning Algorithms
5 One More Machine Learning Algorithm and Usage in Applications
6 Feature Generation and Feature Selection
7 Feature Learning
8 Recommendation Systems
9 Mining Social-Network Graphs
10 Link Analysis
11 Data Visualization
12 Natural Language Processing
13 Image Processing
14 Data Science and Ethical Issues
SEDS 502 Contemporary Database Management Systems

This course focuses on advanced topics in database management systems. Primary topics includes query processing and query optimization strategies for relational database systems, advanced indexing methods, parallel and distributed database systems, big data, NoSQL, data warehousing and data mining. In addition to learning advanced topics in databases, this course also gives graduate students an opportunity to practice important research skills such as gaining experience reading and critically evaluating original research papers and communicating complex technical material, both orally and in written form.

Week Topics
1 Relational Model
2 Query Processing
3-4 Query Optimization
5 Indexing
6-7 Locking and Concurrency
8 Parallel Databases
9 Distributed Databases
10 Big Data
11 Web Search
12 NoSQL
13 Data Warehousing
14 Data Mining
SEDS 504 Software Construction

This course covers the necessary background for software construction. Object-Oriented Programming, Classes and Methods, Inheritance, Polymorphism, Abstract Classes and Interfaces, Exception Handling, Collections, Generics, Object-Oriented Analysis and Design, UML Diagrams.

Week Topics
1 Introduction to Object-Oriented Programming
2 Flow of Control
3 Defining Classes I
4 Defining Classes II
5 Linear Data Structures in Object-Oriented Programming
6 Recursive Data Structures in Object-Oriented Programming
7 Inheritance
8 Polymorphism
9 Abstract Classes and Interfaces
10 Exception Handling
11 Collections
12 Generics
13 Object-Oriented Analysis and Design
14 UML Diagrams
SEDS 505 Team Project

The course is designed for students to gain an understanding of issues of a real-world software and data science project and enable them to apply their newly learned skills in a practical context. Students will be grouped into teams to undertake a software and data science project with the tools, techniques and skills acquired during their previous course work. Each team will work as a development group and assume the role of a quality assurance team for another group. The team will be assigned to a client and will interact with that client to engineer requirements, agree upon a design and achieve a successful acceptance test of a system. Teams will meet on predetermined milestones with their faculty and quality assurance groups to discuss review results and progress.

Week Topics
I. Analysis
1 Analysis Methods and Tools
2 SRS Standard
3 SRS Walkthrough
4 SRS Formal Review
II. Project Management
5 Project Management Methods and Tools and Standards
6 PMP Walkthrough
7 PMP Formal Review
III. Design
8 Design Methods and Tools
9 SDD Standard
10 SDD Walkthrough
11 SDD Formal Review
IV. Implementation
12 Implementation and Testing Methods and Tools
13 Implementation Walkthrough
14 Project Demonstration
SEDS 512 Software Architectures

This course covers the necessary background for software architectures. Software architecture concepts, architectural requirements analysis, techniques for designing software architectures, architectural patterns, evaluation of architecture design methods, component-based software architecture design, software product-line architectures, domain engineering and application engineering, software architecture implementation.

Week Topics
1 Introduction to Software Architecture
2 Architectural Requirements Analysis
3 Software Architecture Design and Modelling
4 Architecture Design Method Classification
5 Component-based Architecture Design
6 Architectural Views I
7 Architectural Views II
8 Architectural Patterns I
9 Architectural Patterns II
10 Architectural Evaluations
11 Software Product Line Engineering
12 Domain Engineering and Application Engineering
13 Software Architecture Implementation
14 Term Project Presentations and Discussions
SEDS 513 Principles of Human Computer Interaction

This course gives an overview of next-generation user interfaces and underlying methodologies. Main topics include a review of HCI concepts and history, input devices and interaction techniques, information appliances, user interface design paradigms, 3D user interfaces, adaptive interfaces, user modeling, conversational interfaces, wearable computers and multimodal interfaces.

Week Topics
1 Introduction, History of HCI
2 Affordance, Usability. Usability Principles
3 Aspects of Human Computer Interaction
4 User Interface Design Paradigms
5 User Interface Design Rules
6 User Modeling and Adaptive Interfaces
7 Evaluation
8 Augmented and Virtual Reality
9 Conversational Interfaces
10 Multimodal Interfaces
11 Ubiquitous Computing
12-14 Project Presentations
SEDS 514 Software Testing

The relationship of software testing to quality is examined with an emphasis on testing techniques. Topics include module and unit testing, integration and acceptance testing, statistical testing methods, defining test plans and strategies that map to system requirements. Testing principles, formal models of testing and software testing standards are also examined.

Week Topics
1 Introduction to Software Verification and Validation
2 Software Testing Overview and Classifications
3-4 Functional (Black Box) Testing
5-6 Structural (White Box) Testing
7 Mutation Testing
8 Model-Based Testing
9 Integration Testing
10 Regression Testing
11 Overview of Test Case Generation
12 Overview of Test Processes
13 Testing Tools and Test Automation
14 Software Reliability Modeling
SEDS 515 Software Management

This course focuses on two advanced aspects of software management; process improvement and software project management. Primary topics include software process improvement frameworks, agile maturity models, software process modeling languages, software measurement a prediction model. Students participate in a modelling and organizational assessment project to as well as gain hands on experience on measurement and prediction for software projects.

Week Topics
I. Fundamentals of Software Quality Management
1 Concepts of Quality Improvement
II. Elements of a Quality Management Program
2 Quality Control to Quality Assurance to Quality Management
3 Adding Value through Quality Management
III. Maturity and Development Patterns
4 Software Subcultures
5 Maturity Models
6 Agile Maturity Models
7 Changing Patterns
IV.  Process Modelling
8 Process Modelling Notations
9-10 Process Modelling
V. Software Measurement
11 Measurement Theory
12 Measuring Quality
13-14 Software Size Measurement and Prediction
SEDS 517 Information Security

The security of information and communication technologies, fundamental security functions and related cryptographic tools, network security and related problems, protection mechanisms and tools will be evaluated. Then current hot topic security problems will be analyzed for “cloud computing”, “web applications and services”, “wireless networks”, etc. and at last security management of information systems will be discussed.

Week Topics
1 Introduction to Information and Communication Security
2-4 Main Security Functions and Cryptographic Tools
5-7 Network Security – Detection, Prevention and Protection
8 Security for Cloud Computing
9 Software Development Security
10 Operating Systems Security
11 Internet Security
12-13 Security of Wireless Networks
14 Management of Information Security
SEDS 518 Development of Real-Time Software

Nature of embedded systems, their role in computer engineering; special and general-purpose microprocessor design, embedded microcontrollers, embedded software; real time systems, problems of timing and scheduling; testing and performance issues, reliability; design methodologies, software tool support for development of such systems; problems of maintenance and upgrade; introduction to Application Specific Integrated Circuit (ASIC) Design, VHDL.

Week Topics
1 Introduction to Real-Time Systems
2 Basics of Developing Software for Real-Time Systems
3-4 Real-Time Operating Systems
5 Software Requirements
6-7 Model Checking
8-9 Software Design
10 Programming Languages
11 Testing
12 Performance Analysis and Optimization
13 Safety-Critical Systems and Fault-Tolerance
14 Documentation, Software Re-Use and Continuous Improvement
SEDS 519 Software Design Patterns

This course focuses on advanced software design patterns. Primary topics include advanced object-oriented programming principles, object-oriented design patterns, patterns of enterprise application architecture, enterprise integration patterns, and patterns related to domain-driven design. Students will learn concepts of modern software development with design patterns and participate in the development of a mid-size programming project working in teams.

Week Topics
1 Introduction to Object-Oriented Analysis and Design
2 Inheritance and Polymorphism with Abstract Classes and Interfaces
3 Object-Oriented Programming Principles
4 Architectural Design Pattern – Model View Controller
5 Observer Design Pattern
6 Creational Design Patterns
7 Structural Design Patterns
8 Behavioral Design Patterns
9 Introduction to Patterns of Enterprise Application Architecture
10 Object-Relational Design Patterns
11 Introduction to Enterprise Integration Patterns
12 Messaging Design Patterns
13 Introduction to Domain-Driven Design
14 Microservice Design Patterns
SEDS 520 Analysis and Design of Microservice Based Systems

This course arms students with the knowledge and expertise to “design” and “engineer” services using state of the art technology. Students will learn the Service Oriented Architecture (SOA) as a way to design an enterprise environment that features cross-platform compatibility, agility and cost-efficiency. In particular, microservices based architectures, reactive systems and event-oriented modelling will be taught and serverless computing will be introduced.

Week Topics
1 Service Orientation
2 Service Oriented Architecture
3 Service Design Principles, and SOA Benefits
4 Evolution of the Web Service
5 Programmable Web
6 Resource Oriented Architecture
7 Evolution of Services
8-9 Domain Driven Design
10 Event Oriented Modeling
11 Event Oriented Analysis Methodology
12-13 Reactive Systems
14 Design Patterns for Microservice Based Systems
SEDS 531 Introduction to Statistical Data Processing

Organization and application of computers and statistical techniques to data processing. Data handling in terms of coding, preparation, acquisition (with and without computers), screening and reduction; summarization, tabulation and analysis; random variables, statistical estimation, and hypothesis testing, enumerated data analysis, linear models (regression, correlation, analysis of variance).

Week Topics
1 Data; Classification, Summarization and Tabulation of Data; Descriptive Statistics and Coding
2 Introduction to Probability
3 Conditional Probability, Random Variables, Expected Values
4 Discrete Distributions, Binomial, Negative Binomial and Poisson Distributions
5 Continuous uniform, Normal, Gamma, Exponential and Weibull Distributions
6 Midterm
7 Introduction to Statistical Inference, Point Estimation, Interval Estimation
8 Tests of Hypotheses, Large Sample Tests
9 Tests of Hypotheses, Single Sample Tests, Two Sample Tests
10 Tests of Hypotheses, Small Sample Tests
11 Analysis of Categorical Data (Chi-Square Tests)
12 Simple Linear Regression and Correlation
13 Introduction to Multiple Linear Regression
14 Introduction to Experimentation, Analysis of Variance
SEDS 533 Probabilistic Reasoning

Graphical Probability Models. Bayesian Reasoning. Bayesian Networks. Learning in Bayesian Networks. Knowledge Engineering. Temporal Models. Inference in Dynamic Bayesian Networks. Markov Decision Processes.

Week Topics
1 Introduction
2 Graphical Probability Models
3 Representing Knowledge in an Uncertain World
4 Bayesian Reasoning
5 Inference in Bayesian Networks
6 Midterm
7 Learning in Bayesian Networks
8 Knowledge Engineering
9 Bayesian Network Applications
10 Temporal Models
11 Inference in Dynamic Bayesian Networks
12 Markov Decision Processes
13 Partially Observable Markov Decision Processes
14 Project Presentations
SEDS 534 Optimization Methods

This course covers the necessary background for optimization methods and the theory and practice of the related approaches to discrete and continuous optimization problems. Vector spaces and matrices, elements of calculus, Unconstrained optimization, one-dimensional search method, golden section, Fibonacci, Newton’s method, gradient search methods, Steepest-descent, Conjugate-gradient, Least squares analysis, linear programming, heuristic optimization methods, simulated annealing.

Week Topics
1 Introduction to optimization
2 Mathematical Review I: Vectors and Matrices
3 Mathematical Review II: Calculus
4 Unconstrained optimization
5 Golden Section, Fibonacci, Newton’s method
6 Gradient Search Methods and Least Squares
7 Constrained Optimization
8 Linear Programming
9 Evaluation and Review
10 Heuristic Optimization Methods
11 Neural Networks, Simulated Annealing
12-14 Term Project Presentations and Discussions
SEDS 535 Knowledge Discovery

This course covers the necessary background for knowledge discovery and data mining, data warehousing, data preparation and data mining primitives, concept description, mining association rules in large databases, classification and prediction, cluster analysis, web mining, applications in data mining.

Week Topics
1 Introduction
2 Measurement and Data, Visualizing and Exploring Data
3 A Systematic Overview of Data Mining Algorithms
4 Models and Patterns
5 Score Functions for Data Mining Algorithms
6 Dimensionality Reduction
7 Descriptive Modeling I
8 Search and Optimization Methods
9 Descriptive Modeling II
10 Predictive Modeling for Classification I
11 Predictive Modeling for Classification II
12 Association Analysis I
13 Association Analysis II
14 Link Analysis
SEDS 536 Image Understanding

The main aim of the course is to familiarize the students with image processing and image content analysis. The course’s target audience is beginning graduate students. The course will play a preparatory role for the graduate courses covering topics such as Deep Learning and Artificial Intelligence.

Week Topics
1 Introduction
2 Image Representation
3 Basic Image Processing
4 Advanced Image Processing
5 Keypoint Detection and Matching
6 Planar Projective Geometry
7 3D Projective Geometry
8 Basic Camera Geometry
9 Epipolar Geometry
10 Optimization Techniques
11 Multiview Geometry
12 Dense Image Features
13 Object Category Detection
14 Object Category Detection
SEDS 537 Machine Learning

To provide graduate students the foundations of machine learning. This course will begin with an introduction to the machine learning with examples in different application areas. Bayesian decision theory. Supervised learning techniques. Model selection. Dimensionality reduction. Clustering. Support vector machines. Graphical models. Introduction to neural networks. Reinforcement learning.

Week Topics
1 Introduction, Definitions of Machine Learning
2 Bayesian Decision Theory
3 Supervised Learning Fundamentals
4 Model Selection Procedures, Tuning Model Complexity
5 Multivariate Classification, Multivariate Regression
6 Dimensionality Reduction and Principal Component Analysis
7-8 Unsupervised Learning
9 Linear Discriminant Functions
10 Supervised Learning: Non-parametric approaches
11 Decision Trees
12-13 Artificial Neural Networks
14 Reinforcement Learning
SEDS 538 Big Data Analytics

This course covers the characteristics and challenges of the Big Data, state-of-the-art computing platforms (e.g., MapReduce), big data programming tools (e.g., Hadoop and MongoDB), big data extraction and integration, big data storage, scalable indexing for big data, big graph processing, big data stream techniques and algorithms, big probabilistic data management, big data privacy, big data visualizations, and big data applications (e.g., spatial, finance, multimedia, medical, health, and social data).

Week Topics
1 Overview of Big Data
2 State-of-the-art computing paradigms/platforms
3 Big data programming tools (e.g., Hadoop, MongoDB, Spark, etc.)
4 Big data extraction and integration
5 Big data storage
6 Scalable big data indexing
7 Large-scale graph processing techniques
8 Big data stream techniques and algorithms
9 Big data privacy
10 Big data visualizations
11 Problems in real applications of big spatial-temporal data (e.g., geographical databases)
12 Problems in real applications of big financial data (e.g., time-series data)
13 Problems in real applications of big multimedia data (e.g., audios/videos)
14 Problems in real applications of big medical/health data
SEDS 539 Deep Learning

This course covers methods for designing and training deep neural networks. The course content includes the historical evolution of deep neural networks, their fundamental working principles and image classification and object detection and recognition in images using convolutional neural networks.

The fundamental aim of this course is for students to gain basic knowledge on deep neural networks and deep learning. By teaching the important aspects of convolutional neural networks, specifically, for the image classification task and making them into project assignments, the given theoretical knowledge is aimed to be applied in practice. The course’s target audience is graduate students with a background in machine learning.

Week Topics
1 History of artificial neural networks and introduction
2-3 Image classification with linear methods
4 Backpropagation
5 Training artificial neural networks I: data preprocessing, weight initialization and regularization, batch normalization and loss functions
6 Training artificial neural networks II: gradient checking, babysitting the training process, update methods, hyper-parameter optimization
7-8 Convolutional neural networks
9 Spatial localization and object detection with convolutional neural networks
10 Visualization and understanding of convolutional neural networks
11 Recurrent neural networks
12 Training convolutional networks in practice: data augmentation, transfer learning
13 Deep neural network coding frameworks
SEDS 540 Distributed Information Management

This course covers the principles of distributed databases in terms of design, architecture, query processing, query optimization and concurrency.

Week Topics
1 Introduction to Distributed Database Management
2 Revisiting Relational Database Management Systems
3 Distributed Database Architectures
4 Distributed Database Design – Horizontal Partitioning
5 Distributed Database Design – Vertical Partitioning
6-7 Distributed Query Processing
8-9 Distributed Query Optimization
10-11 Distributed Concurrency Control
12-13 Data Replication
14 Distributed Object Database Management
SEDS 541 Privacy Preserving Data Sharing and Management

Privacy preserving data sharing and management is an active research area that investigates the side-effects of the existing data mining and sharing technologies that originate from the penetration into the privacy of individuals and organizations. This course provides an extensive survey on a specific class of privacy preserving data mining and sharing methods that belong to the knowledge hiding thread and are collectively known as association rule hiding methods and also with cryptographic solutions.

Week Topics
1 Introduction to Privacy Preserving Data Mining and Association Rule Hiding
2 Background (Terminology and Preliminaries)
3 Classes of Association Rule Hiding Methodologies
4 Other Knowledge Hiding Methodologies
5 Heuristic Approaches
6 Border Based Approaches
7 Max–Min Algorithms (BBA Algorithm)
8 Max–Min Algorithms (Other)
9 Exact Hiding Approaches (Menon’s Algorithm)
10 Exact Hiding Approaches (Inline Algorithm)
11 Exact Hiding Approaches (Two–Phase Iterative Algorithm)
12 Exact Hiding Approaches (Hybrid Algorithm)
13 Exact Hiding Approaches (Parallelization Framework)
14 Quantifying the Privacy of Exact Hiding Algorithms
SEDS 542 Large-Scale Data Management

This course introduces the fundamental concepts and computational paradigms of large-scale data management. This includes major methods for storing, updating and querying large datasets as well as for data-intensive computing. The course covers concepts, algorithms, and system issues on the topics of parallel and distributed databases, peer-to-peer data management, MapReduce and its ecosystem, Spark and dataflows, datalakes and NoSQL databases.

SEDS 561 Foundations of Software Engineering

To provide graduate students the ability to evaluate the software engineering problem solving techniques and approaches. To present the contemporary software engineering practices and provide insight about the historical progress. To establish high level understanding of the life cycle processes and their relations.

This course will begin by explaining the concept of software engineering. Afterwards, the software engineering paradigms are discussed with historical context. The course will then cover the key modelling techniques in software engineering and the role of software analysis, software design, as well as project management, measurement, research methods and soft skills.

Week Topics
1 The problem and the solution domains
2 What is software?
3 Software Engineering Paradigms
4 Modelling in Software Engineering
5 Software Methods
6-7 Requirements Engineering
8-9 Software Architecture and Design
10 Software Testing
11-12 Software Management
13 Team Organization and People Management
14 Empirical Software Engineering
SEDS 562 Programming and Data Structures

This course covers the necessary background for programming and data structures. Elements of Programming, Selection Structures, Repetition Structures, Functions, Recursive Problem Solving, Searching and Sorting, Data Abstraction, Stacks and Queues, Linked Lists, Trees and Binary Trees, Heaps and Priority Queues, Hash Tables.

Week Topics
1 Problem Solving and Algorithms
2 Elements of Programming
3 Selection Structures and Design
4 Repetition Structures and Design
5 Functions
6 Recursive Problem Solving
7 Searching and Sorting
8 Data Abstraction
9 Stacks and Queues
10 Linked Lists
11 Trees and Binary Trees
12 Heaps and Priority Queues
13 Hash Tables
14 Term Project Presentations and Discussions
SEDS 590 Graduate Seminar and Ethics

Learn the latest updated subjects and problems on the management science during the conferences given by the invited speakers; prepare and present a talk about a subject investigated and studied at the end of the semester, lectures on ethical issues in research are also included.

Week Topics
1 Ethics and Research Methods
2 Ethics and Publication
3-14 Seminars and Meeting with Advisor