SEDS MS Courses

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

Basic computer knowledge, history of computing, terms and definitions, system components and processes, computer architecture, data storage, computer networks and internet, software engineering, software engineering practices, unified modelling language, unit testing, problem solving and algorithm design, data structures, application fields of computers.

Course Objectives:

1. Developing a common understanding about computer science,

2. Gaining ability to describe, analyze and solve the problems,

3. Teaching the algorithmic thinking and design in a higher level,

4. Gaining basic knowledge about computer architecture, programming languages, data storage, software engineering and computer networks,

5. Teaching the application fields of computers.

Recommended or Required Reading:

J. G. Brookshear. Computer Science An Overview. 7th Ed. 2002. Addison-Wesley.

Volker Gruhn, Rüdiger Striemer, The Essence of Software Engineering. Springer Cham, doi.org/10.1007/978-3-319-73897-0, ISBN: 978-3-319-73896-3. Published: 04 July 2018

Learning Outcomes:
1. To learn about the history of computing
2. To learn design of algorithms
3. To have principle knowledge about programming languages and familiarity of different programming languages
4. To learn the principles of computer networks
5. To have basic knowledge about different data analytics methods
6. To have general knowledge about software engineering concepts and practices
7. To have principle knowledge about the software architecture
8. To learn the application fields of the computers
Topics
Introduction to software engineering
Algorithms
Data abstraction
Operating systems
Computer Networks and Internet
Programming languages
Programming languages cont.
Data structures
OOP fundamentals and design
Software engineering and design
UML
Software architecture
Unit Testing
General evaluation

Grading:

Homework Assignments: 20%

Literature Review and Reading Assignments: 30%

Final Exam: 50%

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

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

 Reference book(s):

  • Reference books and articles containing information related to the subject being studied.

 Course Objectives: To enable the student to show that he / she can carry out an independent piece of research on a theme in a scientifically sound manner. To demonstrate his/her ability to address a specific problem in a scientifically sound, ethical, thorough and precise manner in the course of a given period of time. To help the student to report his or her findings.

Week Topics
1-14 Studies Towards Solving the Problem for the Graduation Project; Meeting with the Supervisor

 

Grading:

      Project  %100

Course Learning Outcomes:

CO1      To be able to inspect and apply proper theoretical and practical methods in an area of study

CO2      To be able to recognize ethical guidelines to follow in a research

CO3      To be able to evaluate a specific problem in a scientifically sound, thorough and precise manner in the course of a given period of time

CO4      To be able to understand how to deal with data sets or information gathered to reach a solution for the problem being tackled and to be able to present the thoughts and findings in a  convincing way

Contribution of Program Learning Outcomes:

                 P01      P02       P03       P04      P05       P06       P07

C01            1           1                          1             1                      1

C02                                        1          1                         1          1

C03            1          1               1          1             1                      1

C04            1          1                           1             1          1          1

Justification of the course:
It is a compulsory course of the Software Engineering and Data Science Master of Science Program as required for all graduate programs without thesis.

Overlapping with or complementing topics in courses:

None.

SEDS 501 Introduction to Data Science

This course covers the necessary background for data collection and integration, exploratory data analysis, predictive modeling, descriptive modeling, data product creation, evaluation, and effective communication.

Reference book(s):
• Christopher Bishop, Pattern Recognition and Machine Learning. Springer, 2006.
• Jure Leskovek, Anand Rajaraman and Jeffrey Ullman. Mining of Massive Datasets. v2.1, Cambridge University Press. 2014.
• Foster Provost and Tom Fawcett. Data Science for Business: What You Need to Know about Data Mining and Data-analytic Thinking.
• Avrim Blum, John Hopcroft and Ravindran Kannan. Foundations of Data Science.
• Mohammed J. Zaki and Wagner Miera Jr. Data Mining and Analysis: Fundamental Concepts and Algorithms. Cambridge University Press. 2014.

Course Objectives: To introduce the fundamentals of data science.

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

Grading:
Final Exam %40
Midterm Exam %30
Practice Assignments %30

Course Learning Outcomes:
CO1 Describe what Data Science is and the skill sets needed to be a data scientist.
CO2 Carry out exploratory data analysis.
CO3 Apply the Data Science Process in a case study.
CO4 Apply basic machine learning algorithms for predictive modeling.
CO5 Reason around ethical and privacy issues in data science conduct and apply ethical practices.

Contribution of Program Learning Outcomes:

 

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1 1
CO2 1 1
CO3 1 1 1
CO4 1 1 1
CO5 1 1

Justification of the course: 
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.

Overlapping with or complementing topics in courses:
This course includes overlapping content with the Data Science elective courses. As mentioned above, the treatment of topics will be on breadth rather than depth.

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.

Course Objectives:

To provide information about the current trends in database systems.

Recommended or Required Reading:

Neelamkavil, F. (1987) Computer Simulation and Modelling. John Wiley and Sons. ,Law, A.M. and Kelton, W.D. (1991) Simulation Modelling and Analysis. 2nd Ed. McGraw-Hill

Course Outcomes:

1. Gaining the concepts of system and model

2. Use of simulation technique in problem solving

3. Learning the foundations of simulation studies and gaining the ability of implementing simulation techniques

4. Learning how to estimate using simulation

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading:

Midterm: 30%
Research Presentation: 30%
Final : 40%

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.

Reference book(s):
• Absolute Java, Global Edition, 6/E, Walter Savitch, Kenrick Mock, Pearson, 2016
• Starting Out with Java: From Control Structures through Objects, Global Edition, 6/E, Tony Gaddis, Pearson, 2016

Course Objectives: To introduce the fundamentals of software construction.

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

Grading:

Final Exam                                                       %40

Midterm Exam                                                 %30

Project                                                               %30

Course Learning Outcomes:

CO1       To be able to formulate and solve engineering problems with software construction

CO2       To be able to use and design classes

CO3       To be able to implement object-oriented design

CO4       To be able to design object-oriented software

 

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1 1 1 1
CO2 1 1 1 1
CO3 1 1 1 1
CO4 1 1 1 1

Justification of the course:
It is a core course of the Software Engineering and Data Science Master of Science Program and it is one of the important Software Engineering core courses. It provides the necessary background for software construction to be used in software engineering.

Overlapping with or complementing topics in courses:

This course is fundamental to all Software Engineering courses. This course follows Programming and Data Structures course.

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.

Reference book(s):

  • IEEE Std 830, IEEE Recommended Practice for Software Requirements Specifications
  • ISO/IEC/IEEE Std 16326, ISO/IEC/IEEE International Standard Systems and Software Engineering–Life Cycle Processes–Project Management
  • IEEE Std 1016, IEEE Recommended Practice for Software Design Descriptions

Course Objectives: To enable students to integrate concepts learned in prior courses by means of a real-world word hands on system development and management experience.

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

Grading:

Final Exam                                        %40

Term Project                                     %50

Assignments + participation            %10

Course Learning Outcomes:

CO1: The students would be able to perform software requirements specification, design, project management and implementation tasks in real-world projects.

CO2: The students would be able to use their software engineering and data science knowledge and skills in system construction.

CO3: By the end of the course the students would be able to cooperate and communicate in an software and data science development project involving several stakeholders (e.g. peer team members, customers, quality teams).

CO4: By the end of the course the students would be able to demonstrate their groupwork skills in real-world projects.

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 x x x x
CO2 x x
CO3 x
CO4 x x

Justification of the course: It is a core course of the Software Engineering and Data Science Master of Science Program. Real world experience and the usage of standards is crucial for overall success of software systems development projects. This course provides a thorough experince in software engineering and data science projects from team work, quality and management perspectives and establishes the skills needed to construct innovative systems. It is the course to integrate all other courses within the program.

Overlapping with or complementing topics in courses:

SEDS 501 Introduction to Data Science, SEDS 502 Contemporary Database Management Systems, SEDS 503 Software Management, SEDS 504 Software Construction courses provides the crucial background to be successful in the course. SEDS 502 and SEDS 504 are prerequisite courses while SEDS 503 and SEDS 501 are recommended.

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.

Reference book(s):

  • Principles of Information Security. Michael E. Whitman, Herbert J. Mattord, 5th 2014.
  • John R. Vacca, Computer and Information Security Handbook, Second Edition,Elsevier, 2013.
  • Gutman, ‘Cryptographic Security Architecture’, Springer, 2004
  • R. Stinson, ‘Cryptography, Theory and Practice’, Chapman & Hall/CRC Press, 2002
  • Schneider, ‘Applied Cryptography, Protocols, Algorithms, and Source Code in C’, John Wiley & Sons, 1996

Course Objectives: To teach the open security problems of information technologies, their risks and related solution tools. Teaching the designing, building and managing of a secure information system.

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

Grading:

  • Final Exam %40
  • Practice Assignments %30
  • Reading Assignments + participation %10

Course Learning Outcomes:

CO1      To have the capability to analyze vulnerabilities, threats and security risks.

CO2      Selection, implementation and testing of cryptographic tools for essential security functions.

CO3      To have needed background information and methodology to design and manage the secure information system.

Contribution of Program Learning Outcomes:

              P01      P02       P03       P04      P05       P06       P07

C01            x                                  x

C02                        x                      x

C03                                                           x

Justification of the course: It is an elective course of the Software Engineering and Data Science Master of Science Program. The course introduces the fundamentals of secure information system design, development and implementations.

SEDS 518 Development of Real-Time Software

Real-time operating systems, real-time task scheduling algorithms, formal methods used in software specifications, modeling and verification using timed automata, software design, programming languages, testing, performance analysis and optimization, documentation, software reuse, and fault tolerance.

 Reference book(s):

  • Real-Time Systems Design and Analysis. Phillip A. Laplante. A John Wiley & Sons,
  • Software Engineering for Real-Time Systems”, J.E. Cooling, Addison Wesley

 Course Objectives: To give the students the latest research issues on the software development, programming, design, test and documentation for real-time systems.

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

 

Grading:

  • Final Exam                              %40
  • Practice Assignments                    %30
  • Reading Assignments + participation     %10

Course Learning Outcomes:

CO1      To have knowledge of real-time systems fundamentals

CO2      To understand the state-of-the-art of safety critical and fault-tolerant systems

CO3      Ability to design real-time software

Contribution of Program Learning Outcomes:

                 P01      P02       P03       P04      P05       P06       P07

C01            x                                       x

C02                        x                          x

C03                                                                   x

Justification of the course: It is an elective course of the Software Engineering and Data Science Master of Science Program. The course introduces the fundamentals of real-time software development for safety critical systems.

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 development of a mid-size programming project working in teams.

Reference book(s):

  • Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1995.
  • Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003.
  • Enterprise Integration Patterns, Gregor Hohpe, Bobby Wolf, Addison-Wesley, 2011.
  • Patterns, Principles, and Practices of Domain-Driven Design, Scott Millett, Nick Tune, John Wiley & Sons, 2015. 

Course Objectives: To advance students on the current trends in software design patterns.

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

Grading:

Final Exam                                                       %40

Midterm Exam                                                 %30

Project                                                               %30

Course Learning Outcomes:

CO1 – To be able to identify and explain design principles and patterns in software

CO2 – To be able to apply design principles and patterns when developing software in teams

CO3 – To be able to critically evaluate and report consequences of design patterns with respect to desired software qualities

CO4 – To be able to analyze and report the relationship between design principles, design patterns, and programming language design, application frameworks, or application domains

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1
CO2 1 1 1 1
CO3 1 1 1 1 1
CO4 1 1 1 1

Justification of the course:
It is an elective course of the Software Engineering and Data Science Master of Science Program and it is one of the important Software Engineering elective courses. It provides the necessary background for state-of-the-art software development to be used in software engineering.

Overlapping with or complementing topics in courses:

This course follows Software Construction course.

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).

Course Objectives:

This course will help students acquire the fundamental skills that will enable them to learn and understand the complicated statistical analysis that can be directly applied to different types of data, encountered in real-life situations.

Recommended or Required Reading:

Steel, R.G.D. and Torrie, J.H. (1960) Principles and Procedures of Statistics. Mc. Graw Hill ,Milton, J.S. and Arnold, J. C. (2003). Introduction to Probability and Statistics. 4th Ed. New York: McGraw-Hill. ,Allen B. Downey, Think Stats: Probability and Statistics for Programmers. 2e

Course Outcomes:

1. To be able to summarize experimental data

2. To be able to understand probability, random variables and probability distributions

3. To be able to apply estimation of parameters, to understand concept and philosophy of testing scientific hypotheses

4. To be able to understand experimentation concept and to be able to design and analyze experiments

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading:

Midterm: 30%

Homework: 10%

Research Presentation: 30%

Final: 30%

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.

Course Objectives

The challenges of modeling and reasoning under uncertainty is defined and solution approaches based on probabilistic reasoning are discussed in this course.

Recommended or Required Reading

Learning Bayesian Networks; Richard E. Neapolitan, Prentice Hall, 2003. ,Bayesian Artificial Intelligence; Kevin B. Korb, Ann E. Nicholson; Chapman & Hall/CRC, 2004. ,Probabilistic Reasoning in Intelligent Systems (2nd Edition); Judea Pearl; Morgan Kaufmann Publishers Inc., 1988.

Learning Outcomes

1. Teaching the concept of uncertainty
2. To teach graphical probabilistic models
3. Being able to understand reasoning and learning in Bayesian networks
4. Being able to design Bayesian network applications

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading

Midterm: 40%

Homework: 10%

Final: 50%

SEDS 534 Optimization Methods

Vector spaces and matrices, elements of calculus, Unconstrained optimization, one-dimensional search method, golden section, Fibonacci, Newton s method, gradient search methods, Steepest-descent, Newton s method, conjugate-gradient, Least squares analysis, linear programming, heuristic optimization methods, simulated annealing

Course Objectives

To introduce the fundamentals of various optimization methods and latest research.

Recommended or Required Reading

E. K. P. Chong and S. H. Zak, An Introduction to Optimization, Third Edition, New York, NY: John Wiley & Sons, Inc. (Wiley-Interscience Series), 2008

Learning Outcomes

1. To demonstrate the ability to formulate and solve engineering problems

2. To classify the various optimization methods

3. To be able to create a technique for a specific problem

4. To be able to use optimization tools

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading

Midterm 30%

Research Presentation 30%

Final 40%

SEDS 535 Knowledge Discovery

Computer applications in medicine and biology, medical imaging technics, disease diagnosis with medical image processing, hospital information systems, patient tracking systems, mathematical modelling of medical information, networking in medical information systems.

Course Objectives

1. To teach the use of computer Networks in medical informatics,

2. To examine mathematical modelling of medical information,

3. To examine medical information systems,

4. To teach the application areas of processes and differential equations in medical informatics,

5. To examine the principles of hospital information systems.

Recommended or Required Reading

Introduction to medical informatics, Lecture notes, N. Baykal, E. Musluoğlu, Sas Bilişim, 2000.

Learning Outcomes

1. Gain knowledge about computer applications in medicine and biology

2. Understand application fields of the computer networks in medicine and biology

3. Understand the usage of mathematical modelling in medicine and biology

4. Learn medical imaging techniques

5. Learn mathematical modelling of the raw data which is provided by the medical imaging methods

6. Understand application fields of medical imaging

7. Understand processes and differential equations in medicine and biology

8. Understand hospital information systems

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

 

 

 

 

 

 

Grading

Midterm 25%

Homework 25%

Research Presentation 20%

Final 30%

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.

Course Objectives

The main aim of the course is to familiarize the students with image processing and image content analysis. The course’s target audience is advanced undergraduate and beginning graduate students. The course will play a preparatory role for the graduate courses covering topics such as digital image processing and 3D photography.

Recommended or Required Reading

Computer Vision: Algorithms and Applications, R. Szeliski, 2010 ,Multiple View Geometry in Computer VIsion, R. Hartley and A. Zisserman, 2nd Ed., 2004

Learning Outcomes

1. Apply image analysis techniques to industrial problems

2. Compare different kinds of image content analysis algorithms for a given problem

3. Use the basic image processing algorithms in problem solutions

4. List the basic image processing algorithms and their properties

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading

Midterm 30%

Homework 30%

Final 40%

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.

Reference book(s):
• Ethem Alpaydın, Introduction to Machine Learning (2nd Edition). MIT Press, 2010.
• Christopher Bishop, Pattern Recognition and Machine Learning. Springer, 2006.
• Richard Duda, Peter Hart, David Stork, Pattern Classification, 2nd Ed. John Wiley & Sons, 2001.

Course Objectives: To advance students on the current trends in machine 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

Grading:

Final Exam                                                       %40

Midterm Exam                                                 %30

Practice Assignments                                      %30

Course Learning Outcomes:

CO1       To be able to describe the fundamental concepts in machine learning

CO2       To be able to analyze the machine learning problems and identify appropriate solution techniques

CO3       To be able to apply proper algorithms using proper tools to solve the encountered machine learning problems

CO4       To be able to interpret the output of the implementations from algorithmic point of view

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1 1
CO2 1 1
CO3 1 1 1
CO4 1 1 1

Justification of the course:
It is an elective course of the Software Engineering and Data Science Master of Science Program and it is one of the important data science electives. The course introduces the fundamentals of machine learning along with giving the opportunity to apply proper algorithms and tools to solve the encountered machine learning problems. Main topics are supervised and unsupervised learning techniques, model selection, dimensionality reduction, clustering, neural networks and reinforcement learning. Together with practical exercises students will be able to analyze the machine learning problems and identify appropriate solution techniques.

Overlapping with or complementing topics in courses:
Since this is a fundamental course on machine learning, it serves as foundation for further courses like SEDS 538 Big Data Analytics and SEDS 539 Deep Learning, but there is not a significant amount of overlap with those courses.

SEDS 538 Big Data Analytics

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

Course Objectives

Discussing the latest issues on advanced embedded system design

Recommended or Required Reading

“Real-Time Systems Design and Analysis”. Phillip A. Laplante. A John Wiley & Sons, Inc., Publication ,“Software Engineering for Real-Time Systems”, J.E. Cooling, Addison Wesley. ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002 ,“Modeling and Verification of Real-Time Systems Using Timed Automata: Theory and Practice”. Paul Pettersson. PhD. Thesis. Uppsala University.

Learning Outcomes

1. To have knowledge of embedded systems fundamentals

2. To be able to design real-time systems

3. To know the state-of-the-art of embedded systems

4. To know the state-of-the-art of fault-tolerant systems

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading

Midterm 30%

Research Presentation 30%

Final 40%

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.

Reference book(s):
• Michael A. Nielsen, “Neural Networks and Deep Learning”, Determination Press, 2015
• Ian Goodfellow, Yoshua Bengio and Aaron Courville, “Deep Learning”, MIT Press, 2016

Course Objectives:

To teach students the basics of deep neural networks and enable them to apply deep learning solutions on real problems.

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

Grading:

Final Exam                                                       %40

Midterm Exam                                                 %30

Practice Assignments                                      %30

 

Course Learning Outcomes:

CO1 Ability to comment about historical evolution of biometric recognition

CO2 Ability to list the basic working principles of artificial neural networks

CO3 Ability to apply the learned fundamental principles to train artificial neural networks

CO4 Ability to classify images using convolutional neural networks

CO5 Ability to apply the acquired knowledge in practice using artificial neural network coding frameworks such as torch, TensorFlow.

 

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1
CO2 1
CO3 1 1 1
CO4 1 1 1
CO5 1 1 1 1

 

Justification of the course:
It is an elective course of the Software Engineering and Data Science Master of Science Program and it is one of the important data science electives. The course introduces the fundamentals of deep learning by giving insight on how the deep neural networks are trained. The case study on image classification gives means to understand the mechanisms of training algorithms and the impact of learning parameters on the classification accuracies. With practical exercises, the students obtain hands-on experience with most popular deep learning libraries.

Overlapping with or complementing topics in courses:

This course requires a background knowledge in machine learning. So, its topics do not overlap with SEDS 537 Machine Learning but builds on top of it.

SEDS 540 Distributed Information Management

Introduction to Distributed Database Management, Revisiting Relational Database Management Systems, Distributed Database Architectures, Distributed Database Design – Horizontal Partitioning, Distributed Database Design – Vertical Partitioning, Distributed Query Processing, Distributed Query Optimization, Distributed Concurrency Control, Data Replication, Distributed Object Database Management

Course Objectives

To advance students on distributed database systems.

Recommended or Required Reading

Research papers from IEEE International Conference on Dependable Systems and Networks (DSN), IEEE Trans. Dependable and Secure Computing, IEEE Trans. Reliability ,Israel Koren, C. Mani Krishna, Fault-Tolerant Systems, Morgan Kaufmann, 2007.

Learning Outcomes

1. To be able to understand faults and testing

2. To be able to design and evaluate hardware and software fault tolerance techniques

3. To demonstrate the experience to apply the reliability techniques on safety-critical systems

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading

Midterm %30

Research Presentation %30

Final %40

SEDS 541 Privacy Preserving Data Sharing and Management

The specific topics include advanced concurrency control techniques, query processing and optimization strategies for relational database systems, advanced indexing methods, parallel and distributed database systems, next-generation data models, data mining on large databases, data on the web, and topics in data security and privacy.

Course Objectives

1.Learn advanced topics of database field (1)

2.Gain ability to capture research articles (2, 3, 4),

3.Gain ability to make a survey, propose solution and develop a project (4, 5).

Recommended or Required Reading

E.F. CODD. A Relational Model of Data for Large Shared Data Banks, Coomunication of the ACM, vol 15, June 1970 ,P.G. SELLINGER, M.M. ASTRAHAN, D.D. CHAMBERLIN, R.A. LORIE and T.G. PRICE, Access Path Selection in a Reletional Database System, ACM, 1979 ,S.CHAUDHURI, An Overview of Query Optimization in Relational Systems, PODS 1998 ,A. GUTTMAN. R-TREES. A Dynamic Index Structure for Spatial Searching, ACM 1984 ,J. NIEVERGELT and H. HINTERBERGER. The Grid File: An Adaptable, Symmetric Multikey File Structure, ACM 1984 ,D.J. DeWITT and J. GRAY.Parallel Database Systems: The Future of High Performance Database Processing, Communications of the ACM, Vol. 36, No. 6, June 1992 ,P.O’NEAL and D. QUASS. Improved Query Performance with Variant Indexes, ACM 1997 ,M. STONEBRAKER, P. M. AOKI, W. LITWIN, A. PFEFFER, A. SAH, J. SIDELL, C. STAELIN, A. YU. Mariposa: a wide-area distributed database system, The VLDBJournal, Springer-Verlag 1996 ,R. SNODGRASSF and I. AHN. A Taxonomy of Time in Databases, ACM, 1985 ,R. AGRAWAL and R. SRIKANT. Fast Algorithms for Mining Association Rules, Proceedings of the 20th VLDB ConferenceSantiago, Chile, 1994 ,J. GRAY, S. CHAUDHURI, A. BOSWORTH, A. LAYMAN, D. REICHART and M. VENKATRAO. Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals, Data Mining and Knowledge Discovery 1, 29–53 (1997) ,S. BRIN and L. PAGE The Anatomy of a Large-Scale Hypertextual Web Search Engine, Proceeding of 7th International Conference on World Wide Web, 1998 ,C.J. Date, An Introduction to Database Systems, Addison-Wesley, Seventh Edition, 2010

Learning Outcomes

1.Learn the history and development of aproaches and methods behind the functions of database management system (PO1, PO3),

2.Gain ability to read, abstract and discuss the important articles of the feld (PO1, PO3),

3.Analyze one of the open problems of database field (PO2),

4.Propose a solution to the open problem analyzed (PO2),

5.Present the project covering his reserach and proposal orally and written (PO6)

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

Grading

Midterm 30%

Research Presentation 30%

Final 40%

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.

Course Objectives

To introduce students to the current trends in large-scale data management covering concepts, architectures, algorithms and system issues.

Recommended or Required Reading

T. Öszu, P. Valduriez. Principles of Distributed Database Systems. Springer, 4th ed., 2020 ,H. Garcia-Molina, J. D. Ullman, J. Widom. Database Systems: The Complete Book. Prentice Hall, 2nd ed., 2008 ,L. Wiese. Advanced Data Management: For SQL, NoSQL, Cloud and Distributed Databases. De Gruyter, 2015

Learning Outcomes

1. Learn state-of-the-art research and industry trends in Large Scale Data Management Systems,

2. Understand the fundamental principles that govern all modern DBMSs,

3. Be able to make design decisions in deploying large scale data processing applications as well as to identify the bottlenecks of such applications,

4. Learn how to install and use open source systems and libraries in order to perform meaningful large-scale data management tasks.

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

Grading

Midterm 20%

Homework 20%

Attendance 20%

Final 40%

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.

Course Objectives

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.

Recommended or Required Reading

Aleph One – Smashing the Stack for Fun and Profit: http://www.phrack.org/issues.html?issue=49&id=14#article ,US Security Awareness (.org): http://www.ussecurityawareness.org/highres/index.html ,NSU InfoSec web site (of course): http://infosec.nova.edu/ ,Bruce Schneier – Crypto-gram Newsletter: http://www.schneier.com/crypto-gram.html ,Microsoft Security Guidance Center: http://www.microsoft.com/security/guidance/default.mspx ,B. Matt, Introduction to Computer Security ,Addison-Wesley, Pearson Education, 2005 ,SNORT.ORG: http://www.snort.org/

Learning Outcomes

1. To have knowledge of fundamental software engineering concepts

2. Ability to learn from common software engineering faults

3. Ability to discuss software engineering problems

4. Ability of professional decision making

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

Grading

Midterm 25%

Research Presentation 40%

Final 35%

SEDS 562 Programming and Data Structures

Basic concepts of data, data structures and data types: arrays, strings, linear structures, sequential searching and sorting techniques, stacks, queues, pointers, linked lists. Various forms of m-way search and B-trees.

Course Objectives

To improve the students understanding and abilities related to data structures and algorithms. To improve the students ability to program.

Recommended or Required Reading

Data Structures and Abstractions with Java, F.M. Carrano and T.M. Henry, 4th ed., Pearson, 2016.
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data structures and algorithms in Python. John Wiley & Sons Ltd.

Learning Outcomes

  1. To be able to use and design abstract data types.
  2. To be able to implement array and linked data structures.
  3. To be able to design and analyze recursive data structures and algorithms.
  4.  To be able to implement and use algorithms and data structures for searching.
Week Topics
1 Introduction
2 Data Abstraction
3 Queues and Stacks
4 Analysis of Algorithms
5 Recursive Data Structures: Linked Lists and Trees
6
Elementary Sorts: Selection Sort, Insertion Sort, and Shellsort
7 Mergesort
8 Quicksort
9 Heaps and Priority Queues
10 Symbol Tables and Binary Search
11 Binary Search Trees
12 Balanced Search Trees
13 Hash Tables
14 Graph Representation and Traversal

Grading:

  • Midterm Exam %25
  • Homework %25
  • Final Exam  %40
  • Quiz %10

Submissions: Project, Report

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.

Reference book(s):
• Ethics for the Information Age. Michael J. Quinn, 5th edition (2012)
• Computer Ethics. Deborah G. Johnson, 4th Edition (2009)
• Empirical methods for artificial intelligence. Cohen, Paul R, MIT press, 1995.

Course Objectives: To improve the presentation techniques of students To comprehend how a presentation format and outline should be To improve the ability of students to express themselves in front of audiences,to improve the knowledge of students in ethical issues in research.

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

Grading:
Presentations and Reports %100

Course Learning Outcomes:
CO1 To be able to research and publish ethically
CO2 To be able to use technical English efficiently during speaking and writing
CO3 To be able to express his/her knowledge effectively in front of the audience
CO4 To be able to present and use time effectively

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 3 1
CO2 1 3 1
CO3 1 3 1
CO4 1 3 1

Justification of the course:
It is a compulsory course of the Software Engineering and Data Science Master of Science Program as required for all graduate programs.

Overlapping with or complementing topics in courses:

This course overlaps partially with the SEDS589 Term Project since the ethical issues and knowledge of research methodology applies to both courses.