MSCIS Courses

 

 

Functional Analysis (CS302)

Credits:3

The course gives an introduction to functional analysis, which is a branch of mathematics in which one develops analysis in infinite dimensional vector spaces. The main areas to be covered are normed spaces with an emphasis on Banach and Hilbert spaces. Students will be introduced to fundamental theorems related to Banach spaces: The Hahn-Banach, Fixed point, Uniform Boundedness Principle, Open Mapping and Closed Graph theorems. This course will provide also an overview of Spectral theory for compact operators with applications in integral and differential equations. Instructor-led class time including discussions and problem sets; assessment by exams and problem sets.

 

Theory of Computing (CS310)

Credits:3

Theory of computation comprises the fundamental mathematical properties of computer hardware, software, and applications. This theory deals with computational models (or abstract machines) and investigates computational power of these models. The finite automata, pushdown automata and Turing machines are the computational models that are widely used in applications and theoretical research. This course aims to provide students with a foundation for using these models both for practical and theoretical needs.

 

Theory of Algorithms (CS311)

Credits:3

Review of main abstract data types. Sorting algorithms: correctness, space and time complexity. Graph algorithms. Algorithmic Paradigms: divide-and-conquer, greedy, dynamic programming. NP-completeness and approximation algorithms. The course aims at providing students with the tools and techniques for designing efficient algorithms.

 

Object-Oriented Analysis and Design (CS312)

Credits:3

The UP (Unified Process) and the principle of iterative and incremental software development, UP artifacts, usage of UML (Unified Modeling Language) notation for representation results of analysis and design, studying and applying of design patterns, usage of CASE (ComputerAssisted Software Engineering) tools to aid in analysis and design.

 

Advanced Topics in Algorithms (CS313)

Credits:3

This course will review basic paradigms of algorithm design such as divide-and-conquer, dynamic programming, greedy algorithms, graph algorithms; and then explore some of the more advance topics such as Network Flow and Bipartite Matchings, NP-completeness, Approximation Algorithms, and other selected topics. Instructor-led discussions and problem sets.

 

Theory of Communication Networks (CS314)

Credits:3

The course investigates several communication problems in networks; one-to- all, all-to- all, one-to- many. Specific communication models are considered by placing constraints on the sets of messages, senders, and receivers, on the network’s topology, on the rules that govern message transmissions, and on the amount of information about the network known to individual network members. One goal is to design network structures which are inexpensive to construct yet allow fast communication. The second major goal is to design efficient communication algorithms for commonly used networks under different communication models. These require knowledge of graph theory, combinatorics, and design and analysis of algorithms. Instructor-led discussions and problem sets.

 

Cryptography (CS315)

Credits:3

Introduction of basic principles and methods of modern applied cryptography. Demonstration how cryptography can help to solve information security problems and our focus will be basically internet security. Students will learn to understand and evaluate real life security problems that cryptography can solve. They will also discuss various open problems in applied cryptography. Finally, students will implement cryptographic primitives used in common real applications. Three hours of instructor-led class time per week including discussions and problem sets.

 

Advanced Cryptography (CS316)

Credits:3

This course will introduce alternative, more efficient, and non- traditional public-key cryptosystems. Students will get acquainted with white box cryptography essentials. Other topics to be covered: a) cryptographic primitives related to cloud computing, in particular a secure search over encrypted data; b) homomorphic encryption methods; c) identity based encryption; and d) secure multi-party computation protocols. Instructor-led discussions and problem sets.

 

Computer Graphics (CS317)

Credits:3

The course provides students with theoretical and applied tools in graphics development. The course examines topics including: geometric concepts, such as tangent plane, normal vector; pixel-related operations; interactive methods, such as mouse and keyboard callback functions; representation of graphics primitives; general introduction to Open GL as a State Machine; various shading algorithms to illustrate the rendering process; color calculations; texturing. Coursework will include such assignments as critical review of current trends in the field, implementations of theories, or group projects. Instructor-led discussion, along with reading, written, and practical assignments.

 

Advanced Topics in the Theory of Computation (CS318)

Credits:3

Course Description tailored to course content when offered.

 

Computer Vision (CS319)

Credits:3

This course offers an introduction to Computer Vision, an emerging interdisciplinary field that includes methods for acquiring, processing, analyzing of digital images and videos and extracting useful information from them. Students will learn basic methods that include exploring known models in image representations, depth recovery from stereo, camera calibration, image stabilization, automated alignment, tracking, edge detection, and pattern recognition. They will also develop statistical models for image classification, clustering, and dimensionality reduction. Instructor-led discussions and problem sets.

 

Software Engineering (CS322)

Credits:3

Software life cycle processes including analysis, design, modifying and documenting large software systems. Topics include software development paradigms, system engineering, function-based analysis and design, and object-oriented analysis and design. Students will implement a working software system in a team environment.

 

Advanced Object-Oriented Programming (CS323)

Credits:3

Basic principles of object oriented analysis and design utilizing UML, advanced object oriented programming principles, design patterns, frameworks and toolkits; Agile software design processes. Development of a mid-size programming project working in teams..

 

Development of Geo-Collaborative Applications (CS325)

Credits:2

The students acquire basic knowledge for developing web-based geo-collaborative application for supporting decision making processes. Students learn the basic concepts of cartography and the most common client and server side programming resources which are used for web-based geo-collaborative application development. Students have to solve small tasks during classes as well as develop a mid-size programming project working in teams. They learn to integrate the most common free maps resources (Google Maps and Open Layers) and geographic data sources (Open Street Maps) in their application as well as free available geographic database (PostGis). Instructor-led discussions and problem sets.

 

Database Systems (CS326)

Credits:3

Introduction to databases, the Entity-Relationship (ER) Model and conceptual database design, the relational model and relational algebra (RA), SQL. Topics include data storage, indexing, and hashing; cost evaluating RA operators, query evaluation as well as transaction management, concurrency control and recovery; relational schema refinement, functional dependencies, and normalization; physical database design, database tuning; security and authorization of parallel and distributed database systems; data warehousing and decision support, views. In addition, introduction to Data Mining and various applications will be covered. Three hours of instructor-led class time per week including discussions and problem sets.

 

Parallel and High-Performance Computing (Parallel HPC) (CS327)

Credits:3

The course examines topics including: parallel hardware architectures, distributed computing paradigms, parallelization strategies and basic parallel algorithmic techniques, parallel programming with OpenMP and MPI, HPC numerical libraries. Students should be able to demonstrate advanced knowledge related to contemporary methods in parallel and HP Computing. Students are required to draw upon investigative techniques related to this field in order to critically analyze and solve problems using advanced knowledge. Coursework will require students to develop faster codes that are highly optimized for modern multi-core processors and clusters. Three hours of instructor-led class time per week including discussions, lab work and problem sets.

 

Human Computer Interaction (CS328)

Credits:3

The topics include: concepts of human computer interaction, techniques for user interface design; user-centered design, interface development techniques, usability evaluation; overview of interface devices and metaphors; visual development environments, other development tools. Students should be able to demonstrate advanced knowledge of software and hardware systems related to computational sciences. Students should also be able to formulate and critically assess problems and sub-tasks including identification of sources and investigative techniques related to the field. Students are required to complete group projects in which they formulate, critically assess, and investigate problems relating to software and hardware systems. Masters students will complete formal presentations commensurate with their knowledge level in order to develop experience communicating to audiences both within and outside the discipline. Three hours of instructor-led class time per week including discussions and problem sets.

 

Data Warehousing (CS329)

Credits:3

An advanced hands-on course in Data Warehousing which will build upon knowledge gained in an introductory course in Databases. Topics covered include Data Warehouse architectures, multidimensional data representation and manipulation, Data Warehouse design practices and methodologies, creation of Extract-Transformation-Load (ETL) workflows, with emphasis on data governance practices, business intelligence concepts and platform capabilities, and visualization tools. Instructor-led hands-on laboratory class time with assessment based on discussions, problem sets, projects, and significant in-laboratory applications.

 

Operating Systems (CS331)

Credits:3

The organization and structure of modern operating systems. System level programming in Windows and Unix Operating Systems.

 

System Administration (CS332)

Credits:3

User administration. Operating system installation, tuning and control. Network administration. Security management. Performance tuning and management.

 

Network Programming (CS333)

Credits:3

Students will acquire skills for developing distributed applications running over TCP/IP networks. Students learn the basic concepts of networking client-server programming as well as advanced topics such as concurrent serving, state vs. non-state servers, multicasting, peer-to- peer architectures. Instructor led in-class projects, and development of a mid-size programming team project.

 

Performance Analysis and Queueing Theory (CS334)

Credits:3

The course reviews basics of probability theory, stochastic processes, especially Markov chains, and Laplace and z-transforms before proceeding with the analysis of queueing systems. After introducing basic laws of queueing theory, such as Little’s result, the analysis of single- and multi-server quueing systems is dicsussed. Also product-form open and closed queueing network models and efficient methods for their analysis: the convolution algorithm and mean-value analysis. Principles of descrete simulation methods are discussed to deal with systems not lending themselves to queueing analysis. The emphasis of the course is gaining insight into the behavior of systems with various workloads.

 

Introduction to EDA (CS335)

Credits:3

Structure of modern VLSI chips. Basic understanding of VLSI device manufacturing process. Overview VLSI chip design flow, including the System-Level design and interaction with SW and FW development process and teams. Understanding of modern SoC architectures: FW, SW, HW levels. Specifics for Analog-mixed-signal, CPU/RAM and other HW fabrics, and ASIC. Overview of digital circuits, standard cells. Digital design, standard-cell design. Overview of the Front-end and back-end. Detailed review of the back-end design phases. Introduction to EDA tools SW architecture: data layer, user-interface, algorithmic layer. Introduction to basic design patterns and architectures for DB and UI design for EDA tools. Overview of algorithms and data structures used in EDA. Detailed overview of back-end problems, and their corresponding mathematical problem formulations from combinatorial optimization, computational geometry, mathematical programming. Detailed study on concrete examples. Overview of simulation and analysis techniques. Detailed study of concrete examples.

 

Compiler Design (CS336)

Credits:3

An introduction to the basic phases of modern compilers and their design principles. Topics covered include CPU instruction, finite state machines, lexical scanning, parsing schemes, code generation and translation, comparison of modern programming languages, and an analysis of the relationship between compilers and operating systems. As part of the course, students build a working compiler for an object-oriented language. Three hours of instructor-led class time per week including discussions and problem sets.

 

Cybersecurity (CS337)

Credits:3

This course covers various security risks in Cyberspace from both offensive and defensive points of view, including subfields such as Web/Mobile Security, Network Security, and Cryptography. Students will develop skills of usage of various tools to be able to test the security of systems as well as build defense for those. Students will lead a team project in one of the following subfields (eg Web Security, Mobile Security, IoT security, Digital Forensics). Instructor-led discussion, along with reading, written, and practical assignments. Assessment via exams projects and hometasks.

 

Distributed Systems (CS338)

Credits:3

Distributed systems help programmers aggregate the resources of many networked computers to construct highly available and scalable services. The course covers general introductory concepts in the design and implementation of distributed systems, covering all the major branches such as Cluster Computing, Grid Computing and Cloud Computing. The main principles underlying distributed systems will be investigated: processes, communication, naming, synchronization, consistency, fault tolerance, and security. The course gives some hands-on experience as well as some theoretical background. Moreover the course will go in deep of several technical issues in cloud systems, such as Amazon EC2/S3, and Hadoop (MapReduce framework). Three hours of instructor-led class time per week including discussions and problem sets.

 

Quantum Computing (CS339)

Credits:3

The course starts with a simple introduction to the fundamental principles of quantum mechanics using the concepts of qubits (or quantum bits) and quantum gates. After developing the basics, this course delves into various implementation aspects of quantum computing and quantum information processing including the quantum fourier transform, period finding, Shor’s quantum algorithm for factoring integers, as well as the prospects for quantum algorithms for NP-complete problems. Instructor-led discussion, along with reading, written, and practical assignments. Assessment via problem sets, projects and exams.

 

Machine Learning (CS340)

Credits:3

Machine learning links together computers and statistics by teaching machines to act without human interaction. It compiles those methods of data science that automate model building process for computer realization by applying algorithms that iteratively learn from data allowing computers to find hidden insights in data without explicit programming. This course will provide the basic ideas and methods of machine learning. Topics include – supervised learning, unsupervised learning, best practices in machine learning with many examples from real-world applications. It also includes explanations on how to use the well-known R software for application of the learned techniques to practical problems. Three hours of instructor-led class time per week including discussions and problem sets.

 

Data Science (CS342)

Credits:3

This course aims to introduce students to the world of data science. Students will gain the skills that are transforming entire industries from healthcare to internet marketing and beyond. In this course, students will gain a hands-on introduction to using R programming language for reproducible data analysis. Students will define the data science process, including data acquisition, data munging, exploratory data analysis, visualization and modeling real world data. The course will include using R and R packages tools for analysis of both structured and unstructured data sources, as well as writing reproducible data analysis reports with R Markdown and creating personalized interactive graphics applications. Coursework will include such assignments as critical review of current trends in the field, implementations of theories, or group projects. Instructor-led discussion, along with reading, written, and practical assignments.

 

Data Visualisation (CS343)

Credits:3

Visualization is increasingly important in this era where the use of big data is growing in many different fields. This course is designed to introduce methodologies and tools for transforming the data into interesting and insightful visual representations, including interactive web visualizations. Students will learn basic visualization design and evaluation tools and techniques, and learn how to acquire, parse, and analyze large datasets. Students will also learn techniques for visualizing multivariate, temporal, text-based, geospatial, hierarchical, and network/graph-based data. Additionally, students will utilize tools such as R and ggplot2 to prototype many of these techniques on existing datasets. Instructor-led discussions and problem sets.

 

Bioinformatics (CS345)

Credits:3

The course starts with a brief introduction to molecular biology. The course then investigates the main algorithms used in Bioinformatics. After a brief description of commonly used tools, algorithms, and databases in Bioinformatics, the course describes specific tasks that can be completed using combinations of the tools and Databases. The course then focuses on the algorithms behind the most successful tools, such as the local and global sequence alignment packages: BLAST, SmithWaterman, and the underlying methods used in fragment assembly packages.

 

Artificial Intelligence and Decision Support (CS346)

Credits:3

This course provides an introduction to decision support techniques in the context of artificial intelligence. The main areas to be covered are knowledge-based agents, planning, reasoning under uncertainty and decision theory. Students will learn the principles of intelligent agent-based systems and implement agent programs that show rational behavior. Students will also learn logic programming. Instructor-led discussions and problem sets.

 

Knowledge Representation (CS347)

Credits:3

Knowledge representation (KR) is the study of how knowledge about the world can be represented in a computer system and what kinds of reasoning can be done with that knowledge. _x000D_ Challenges of KR and reasoning are representation of commonsense knowledge, the ability of a knowledge-based system to tradeoff computational efficiency for accuracy of inferences, and its ability to represent and manipulate uncertain knowledge and information._x000D_ This course will provide an overview of existing representational frameworks developed within AI, their key concepts and inference methods._x000D_ It will also discuss some non-classical logical frameworks, such as non-monotonic logics._x000D_ One of the objectives of the course is to help students understand how the theoretical material covered in the course is currently being applied in practice._x000D_ Instructor-led class time including problem sets and discussions.

 

Software Project Management (CS350)

Credits:3

Methods and procedures for managing a software development project. Includes notions of project planning, time, cost and resource estimation, project organizational types, staffing (team assembly) and training considerations, leading and motivating computer personnel, and methods for monitoring and controlling the progress of a project. Quality management and risk assessment are considered. Case Studies of successes and failures will be studied.

 

Entrepreneurship (CS355)

Credits:3

Seminar exploring the complexities of creating and sustaining an entrepreneurial venture. We concentrate on the impact of innovative behavior and its implication to decision making. The primary focus of the course is on the behaviors involved in forming new enterprises: recognizing and evaluating opportunities, developing a network of support, building an organization, acquiring resources, identifying customers, estimating demand, selling, writing and presenting a business plan, and exploring the ethical issues entrepreneurs face. The course consists of case studies and discussion, inclass exercises, readings, guest speakers, and an outside project.

 

Computational Methods (CS360)

Credits:3

The course will cover topics including: matrix norms and iterative methods for linear systems and eigenvalue problems, numerical solutions of nonlinear equations and systems, numerical optimization methods, interpolation and approximation of functions, numerical quadrature rules, numerical methods for ODE’s. Instructor-led discussions and problem sets.

 

Advanced Statistical Modeling (CS361)

Credits:3

The course will cover the fundamentals of advanced statistical modeling. Topics include: linear and nonlinear regression, goodness of fit tests, generalized linear models, Bayesian inference and hypothesis testing, nonparametric inference and bootstrap. Instructor-led discussions and problem sets.

 

Time Series Analysis (CS362)

Credits:3

This course will provide a systematic account of linear time series models and their application to the modelling and prediction of data collected sequentially in time. The topics covered include: difference equations, lag operators, stationary ARMA processes, forecasting, maximum likelihood estimation, spectral analysis, linear regression models, Kalman filter, and Fourier transform methods. Students will apply these methods to solve practical problems in signal processing, statistics, and economics. Three hours of instructor-led class per week including discussions and problem sets.

 

Stochastic Models (CS363)

Credits:3

The course will cover topics including: Conditional Probability and Conditional Expectation, Markov chains, Hidden Markov Models, Markov Chain Monte Carlo methods, introduction to Poisson Processes and Queueing Models. Instructor-led discussions and problem sets.

 

Game Theory (CS364)

Credits:3

The course introduces the major concepts and paradigms of game theory, a domain which explores strategic interactions among several players which determine the outcome of the game. Students will explore how to achieve favorable outcomes arising from the modeling, analysis and prediction of player behavior, with a strong focus on the mathematical models of the game dynamics. Game Theory has numerous applications in Economics, Political Science, Social Science, Evolutionary Biology, Computer Science, Engineering, and everyday life situations. Instructor led lecture and discussions; assessment may include problem sets, software implementation, exams, and projects.

 

Programming Paradigms (CS370)

Credits:3

The course will cover key principles and structures related to programming. Topics include design patterns, generic programming, an overview of the C++ Standard Template Library, functional programming, logic programming, with examples and implementation using different programming languages to illustrate uses and functionality of different paradigms which are explored. Instructor led lecture and discussions; assessment may include problem sets, programming design projects and software implementation, and examinations.

 

Image Processing (CS371)

Credits:3

This course is an introduction to digital image processing. The course covers topics including: image analysis, Image representation and storage, image de-noising and restoration, compression techniques, two-dimensional discrete Fourier transform, spatial and frequency domain, linear and nonlinear image filtering, edge detection, image segmentation, and basics of digital video_x000D_ processing. Graduate students are expected to complete an individual or group project during the semester. Three hours of instructor-led class time per week including discussions and problem_x000D_ sets.

 

Information Visualizations (CS375)

Credits:3

Transforming data into knowledge is a multi-step process which can include data cleanup, exploring the relationships between datasets, interpretation, and demonstrating the results using graphics, interactive tools and online dashboards. The course will include hands-on sessions using open source software for the rapid crafting of visualization of many different data types. Students will also analyze large datasets to discover patterns and structures and derive insight into large volumes of data. Through the development of visualization techniques and tools, students will be better positioned to comprehend and convey insights. Instructor-led class discussions with assessment based on participation, problem sets, projects, and exams.

 

Capstone Practicum (CS390)

Credits:3

Students will complete an 8-12 hour per week industry work experience in a computer-related_x000D_ position. Students will be supervised by assigned personnel at the field site and/or by a program-based_x000D_ instructor. Hours are arranged by mutual consent of the student and employer. Students are required to report periodically to the course instructor, maintain a log of on-the-job activities, and submit a final report regarding the practicum experience. No additional class time is required.

 

Independent Study (CS391)

Credits:3

Special study of a particular problem under the direction of a faculty member. The student must present a written, detailed report of the work accomplished. Approval of the CIS Program Chair and the instructor is required.

 

Special Topics in Computer Science (CS392)

Credits:3

This course explores topics in applied computer science with emphasis on current technologies, theories, and approaches.The spring 2020 course will investigate the field of distributed algorithms. Students will be_x000D_ introduced to the necessary background on NP-completeness and approximation_x000D_ algorithms. The core of the material will consist of distributed algorithms and_x000D_ impossibility results for different network models. Known classical distributed algorithms_x000D_ will be presented based on the current research papers from prominent conferences in_x000D_ the field. This will include introducing the notion of synchronous/asynchronous_x000D_ algorithms, randomized algorithms, self-stabilization and understanding of these topics_x000D_ under different network constraints. Lectures, readings, and discussions led by instructor with assessment by projects, problems sets, and exams.

 

Special Topics in Computer Science: Cloud Computing (CS392CC)

Credits:3

 

 

Capstone Preparation (CS395)

Credits:3

The course is designed to prepare students to work on their Master’s capstone. Students will learn of prospective research thesis topics, do literature surveys which will become part of their final capstone report, select their supervisor, and submit an approved capstone proposal. Topics covered will include research methodology in computer science, plagiarism and academic integrity, basics on how to write a technical paper, give a technical talk, search for a job, write a CV and cover letter, interview skills. Instructor-led discussions and presentations.

 

Capstone-Thesis Writing (CS396)

Credits:3

Students will complete an individual thesis which serves as part of the capstone requirement for the degree. The thesis proposal is presented as part of the CS395 requirements and must be approved by the supervisory committee. Upon completion, the capstone thesis must be successfully presented to the program in an open forum and be approved by the supervisory committee.

 

Deep Learning (DS330)

Credits:3

This course provides foundational knowledge in Deep Learning, one of the highly demanded skills in AI. Application of Deep Learning algorithms transform fields such as computer vision, speech recognition, natural language processing, medical image analysis, drug design, audio recognition._x000D_ Students will be introduced to various state-of-the-art Neural Network architectures (eg DNNs, CNNs, RNNs, LSTMs, GANs) and techniques (eg Stochastic Gradient Descent, Dropout, Batch norm, Transfer Learning). Students will work on real-life datasets to implement techniques applicable in domains such as image recognition, autonomous driving, gaming, healthcare, fraud detection. Instructor-led discussion, along with reading, written, and practical assignments. Assessment via exams and projects.

 

Translations: Digital Fabrication in Design (EPIC331)

Credits:3

The course aims to partake in the ongoing discourse about the role of fabrication for the production of design and manufacture. More specifically it aspires to draw a connection between the advancement of design ideas and the use of techniques specific to the digital fabrication pipeline, and to posit how this coupling may further inform other areas of disciplinary research. As such, the course aims to be a research laboratory for the analysis, development and localized deployment of strategies for digital fabrication. _x000D_ Topics of study include: design/fabrication typologies, technical performance, sustainable strategies, prefabrication methodology, current and future developments in design/fabrication, among others.