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. Software life cycle models, requirements analysis, software design, implementation technologies, verification, validation and software modeling.

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. Data science consists of machine learning algorithms and mathematical models (Supervised vs. unsupervised learning, decision tree pruning, training and testing datasets), big data tools to convert unstructured data into a structured form, and business intelligence to support decision-making.

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

Students are expected to conduct and present (written and orally) an independent project theoretically and/or experimentally during a semester under the supervision of a faculty member.

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

This course will provide a foundation in the area of data science based on data curation and statistical analysis. It investigates data concepts, metadata creation and interpretation, general linear method, cluster analysis, and basics of information visualization. The course will cover fundamentals about data and data standards and methods for organizing, curating, and preserving data for reuse, inferential statistics: drawing conclusions and making decisions from data, data analysis tools, and diverse issues around data including technologies, behaviors, organizations, policies, and society.

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

Relational theory and extensions, such as relational calculus, relational algebra, higher order normal forms; advanced DBMS concepts, such as integrity, recovery, concurrency, security, query optimization; object-oriented databases; distributed databases, related techniques and protocols, such as data replication, data fragmentation, synchronization, load balancing; parallel databases; deductive databases; federated databases and homogeneity/heterogeneity.

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

The course introduces the fundamentals of software systems development with a focus on analysis and design phases. Data modeling and design principles such as data abstraction, information hiding, modularity, and coupling are viewed in the context of object-oriented paradigm. For object-oriented modeling Unified Modeling Language (UML) is introduced and used throughout the course. A unified process is taken as the basis for development efforts. Issues relating to making the transition from other software development methodologies are examined and risks involved in object-oriented process are discussed.

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 project and enable them to apply their newly learned skills in a practical context. Students will be grouped into teams to undertake a software project with the tools, techniques and skills acquired during their previous course work. Each team will work as a software 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 software system. Teams will meet on predetermined milestones with their faculty and quality assurance groups to discuss and 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

Software architectures, architectural styles, patterns, and special architectural solutions. Components and frameworks. Architecture evaluation and selection. Fundamental architecture-driven software qualities. Achieving reusability, interoperability, and change resilience. Architecture description languages. Elements of middleware.

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

Fundamental theory and practice of the design, implementation, and evaluation of human-computer interfaces. Topics include: life cycles for user interface development; principles of design; design techniques; methods for evaluating interfaces; and techniques for prototyping and implementing graphical user interfaces. Students will perform the analysis, design and evaluation of a user interface of a software system as class project.

Week Topics
1 Introduction to human computer interaction
2 Affordance, usability, usability principles.
3 Computer Side of Human-Computer Interaction
4 Architectural Design Pattern – Model View Controller
5 User interface design samples, user interface design rules
6 Interactive design process, design languages
7 User modeling and the user profile, adaptive interfaces
8 Midterm
9 Usability measurements, predictive and interpretive Evaluation
10 3D user interfaces, augmented reality
11 Speech recognition and conversational interfaces
12 Multimodal interfaces, perceptual interfaces
13 Ubiquitous computing
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 is designed to introduce the students to the software management concepts. Topics will include quality managements concepts and project management concepts. Quality management concepts will include process improvement, capability maturity models and statistical process control. Project management concepts will include scope and time management as well as size measurement and effort estimation models. The course also includes the use of related software.

Week Topics
1 Concepts of Quality Improvement
2 Quality Control to Quality Assurance to Quality Management
3 Adding Value through Quality Management
4 Software Subcultures
5 Maturity Models
6 Agile Maturity Models
7 Changing Patterns
8 Process Modelling Notations
9 Process Modelling
10 Measurement Theory
11 Measuring Quality
12 Software Size Measurement and Prediction
13 Barriers to Organizational Change
14 Knowledge Based Organizations, Learning Organizations
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

The principles of Object-Oriented concepts, such as abstraction, abstract data types, encapsulation, inheritance, polymorphism, aggregation are explained along with the key points of Object-Oriented analysis and design. Unified Modeling Language (UML) is utilized to express the artifacts of Object-Oriented analysis and design. Creational, structural, and behavioral Object-Oriented design patterns are examined and used to solve real-world problems. Resultant Object-Oriented designs are implemented in Java.

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

‘Software Architectures’ are one of the most significant areas of the software engineering discipline. This course focus on the state of the art event based software architectures. Today’s modern era permeates with phenomenal growth and advancement across a wide range of areas: from science and technology, to medicine and art, as well the social sciences. Amongst all, the notion of “services” plays a critical role to abstract and make available snippets of innovation, that can thereby be used cross-disciplinary to create bigger, better and more interesting innovations. This course arms students with the knowledge and expertise to “design” and “engineer” services using modern technology.

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

Linear programming, nonlinear programming, iterative methods and dynamic programming are presented, especially as they relate to optimal control problems. Discrete and continuous optimal regulators are derived from dynamic programming approach which also leads to the Hamilton-Jakobi-Bellman Equation and the Minimum Principle. Linear quadratic regulators, linear tracking problems and output regulators are treated. Linear observer and the separation theorem are developed for controller implementation.

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

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

This course covers the image processing techniques and approaches for image content analysis. The course content includes memory representation of images, image processing techniques, keypoint extraction and description, image matching and fundamentals of camera geometry.

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

This course covers advanced topics in machine learning. Possible topics include active learning, reinforcement learning, online learning, non-parametric learning, inductive learning, statistical relational learning, dimensionality reduction, ensemble methods, transfer learning, outlier detection, specific application areas of machine learning, and other relevant and/or emerging topics.

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 fundamental platforms, such as Hadoop, Spark, and other tools, e.g., Linked Big Data, several data storage methods that include HDFS, HBase, KV stores, document database, and graph database, different ways of handling analytics algorithms on different platforms, visualization issues and mobile issues on Big Data Analytics It will discuss large-scale machine learning methods that are foundations for artificial intelligence and cognitive networks and several methods to optimize the analytics based on different hardware platforms, such as Intel & Power chips, GPU, FPGA, etc.

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 neural networks, their fundamental working principles and image classification and object detection and recognition in images using convolutional neural networks.

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 investigates principles of different kinds of distributed information systems including design and architecture, security, integrity, query processing and optimization, transaction management, concurrency control, and fault tolerance.

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

This course investigates the methods used for data and knowledge hiding in order to provide privacy of the individuals and organizations. Privacy protection approaches in the data management. Survey on different classes of privacy preserving data mining methods that belong to the knowledge hiding thread in case of data sharing.

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.

Topics
Distributed Database Design
Distributed Query Processing
Distributed Transaction Processing
Parallel Architectures and Data Placement
Parallel Query Processing
Infrastructure and Schema Mapping
Querying and Replica Consistency
Blockchain
Distributed Storage Systems
MapReduce and its Ecosystem
Spark and Data Flows and DataLakes
Key-Value Stores and Document Stores
Wide-Column Stores and Graph DBMSs
Hybrid Data Stores and Polystores
SEDS 561 Fundamentals of Software Engineering

The course introduces the fundamentals of software engineering from management and software system models perspectives with an emphasis on software development process models, project management techniques and contemporary modeling notations.

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

The basic programming paradigms will be discussed with emphasis on object oriented programming. The principles will be conveyed using a modern programming language i.e. Java. The background will be used in practice to implement data structures and efficient algorithm development.

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

Listening to conferences given by invited speakers; gaining knowledge about today’s most current issues and problems, preparing and presenting a seminar on a topic being studied at the end of the semester, and teaching research ethics on related topics. Improving students’ presentation techniques. Understanding how the presentation format and content should be. Developing public speaking skills, teaching ethical issues in research.

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