40000

CSC 41200 Computer Networks

Layer approach to understanding networks using the ISO model: physical layer, data link layer, network layer, and, as time permits, the transport, session, presentation, and application layers.

Credits

3

Prerequisites

CSC 33200.

Contact Hours

3 hr./wk.

CSC 42000 Compiler Construction

Formal description of programming languages and techniques used in their compilation. Study of syntax, semantics, ambiguities, procedures replication, iteration, and recursion in these languages. Syntactic decomposition and the theory of compilers that are syntax-directed or recursively controlled.

Credits

3

Prerequisites

CSC 30400.

Contact Hours

3 hr./wk.

CSC 42200 Computability

Shepherdson-Sturgis machines. Elements of recursive function theory. The equivalence of the class of computable and recursive functions. Church's thesis; other models of computation: Post machines, Turing machines, semi-Thue systems, etc. Unsolvable problems and introduction to their classification. Subrecursive formalism.

Credits

3

Prerequisites

CSC 22000, CSC 30400, and (CSC 21700 or EE 31100).

Contact Hours

3 hr./wk.

CSC 42300 Introduction to Distributed Algorithms

Model of distributed computing. Various network traversal algorithms and their corresponding spanning trees. Building a logical ring. Distributed shortest path algorithms. Knot and cycle detection. Mobile objects navigating a network.

Credits

3

Prerequisites

CSC 22000

Contact Hours

3 hr./wk.

CSC 42800 Formal Languages and Automata

Classes of languages; their description in terms of grammars and their recognition by automata. The Chomsky hierarchy; regular, context-free, context-sensitive and recursively enumerable languages. Application to parsing and compiler construction.

Credits

3

Prerequisites

CSC 30400.

Contact Hours

3 hr./wk.

CSC 43000 Distributed Computing

Basic model of distributed computing. Asynchronous and synchronous message passing. Algorithms for distributed termination detection and their correctness proofs. The correctness requirements of safety, liveness, and fairness in distributed computations. Synchronization algorithms. Communicating Sequential Processes. Higher level language constructs for synchronization algorithms. Verification methods. Several seemingly correct but actually incorrect algorithms will be shown for the above problems to appreciate the subtle correctness problems in distributed algorithms.

Credits

3

Prerequisites

CSC 33200.

Contact Hours

3 hr./wk.

CSC 43500 Concurrency in Operating Systems

Mutual exclusion-software and hardware approaches. The correctness requirements of safety, liveness, and fairness. Semaphores, monitors and other concurrent programming constructs. Classical synchronization problems. Axiomatic verification of concurrent algorithms. Models of distributed computation. Distributed termination detection. Time clocks, and ordering of events. Distributed Mutual Exclusion. Deadlocks in distributed systems.

Credits

3

Prerequisites

CSC 33200.

Contact Hours

3 hr./wk.

CSC 43800 Real-Time Computing Systems

Operating systems and architectural concepts of real-time systems. Review of I/O programming and basic machine language programming. Interrupt processes. Coding of specific device drivers using absolute addressing status registers, command signals, buffering. Timing considerations and applications. Concurrent processes, wait-send phenomena, and the use of semaphores.

Credits

3

Prerequisites

CSC 34200 and CSC 34300.

Contact Hours

3 hr./wk.

CSC 44000 Computational Methods in Numerical Analysis

Introduction to numerical algorithms for scientific computation. Basic concepts of numerical error. Interpolation, quadrature, solution of linear systems of equations, non-linear equations, ordinary differential equations. Some discussion of partial differential equations and numerical methods of solving them. Computer implementation aspects.

Credits

3

Prerequisites

CSC 30100.

Contact Hours

3 hr./wk.

CSC 44200 Systems Simulation

Simulation of dynamic stochastic systems using models involving numerical and logical processes. Modeling concepts, description in terms of entities, attributes, and activities, time flow mechanisms, queues, event-oriented vs. particle-oriented models. Generation of stochastic variates, collection and evaluation of statistics. Simulation languages. Computer projects using a general purpose language (e.g. Fortran or Matlab) and at least one simulation language (e.g. GPSS) will be assigned.

Credits

3

Prerequisites

CSC 30100.

Contact Hours

3 hr./wk.

CSC 44500 Big Data Management and Analysis

The course aims to provide a broad understanding of big data and state-of-the-art technologies to manage and process them.General topics of this course include: big data ecosystems,parallel and streaming programming model, spatial data management, Map Reduce, Hadoop,Spark, Hive, and Pig Hands-on labs and exercises in the context of data science will be offered throughout the class to bolster the knowledge learned in each module.

Credits

3

Prerequisites

CSC 22000, CSC 22100, Knowledge of Python programming language

Contact Hours

3 hr./wk.

CSC 44600 Mathematical Optimization Techniques

Maximization and minimization of functions of several variables, with and without constraints. Convex sets and functions, linear and dynamic programming, network flows.

Credits

3

Prerequisites

CSC 30100.

Contact Hours

3 hr./wk.

CSC 44700 Introduction to Machine Learning

This course will provide a theoretical and hands‐on introduction to the basics of machine learning and its application to various real‐world problems. The course focuses on supervised learning problems including classification and regression. The course also discusses reinforcement learning. Unsupervised learning techniques such for dimension reduction and clustering will also be discussed. A wide range of different machine algorithms will be surveyed such as k-nearest-neighbors, polynomial curve fitting, logistic regression, support vector machines, decision trees, ensemble methods, and artificial neural networks. The course will also discuss ethical considerations in the application of machine learning. The course will be a feature a final project demonstrating mastery of the material..

Credits

3

Prerequisites

CSC 22000, CSC 22100, MATH 21300 or MATH 20300 (min. C grade), and MATH 34600 (min. C grade).

Contact Hours

3 hr./wk.

CSC 44800 Artificial Intelligence

State-space and problem-induction representations of problems. Heuristic methods. Mechanical theorem proving. Application of these techniques to artificial intelligence problems.

Credits

3

Prerequisites

CSC 30400.

Contact Hours

3 hr./wk.

CSC 45000 Combinatorics and Graph Theory

An introduction to combinatorial analysis and graph theory. Sample topics: principle of inclusion and exclusion, recurrence relations, zero-one matrices, partitions, Polya's Theorem, directed graphs,

Credits

3

Prerequisites

CSC 22000 and (CSC 21700 or EE 31100).

Contact Hours

3 hr./wk.

CSC 45400 Topics in Computer Architecture

Current developments in computer architecture chosen from: superscalar parallel/pipelined architectures: speculative execution; branch prediction; register renaming techniques. Students develop software for superscalar processors, both real and simulated.

Credits

3

Prerequisites

CSC 34200 and CSC 34300.

Contact Hours

3 hr./wk.

CSC 45600 Topics in Modern Software Engineering

In this course students are introduced to modern software engineering tools, processes, and practices leveraged to develop software products in today’s top technology companies. Students will learn about the origins, theoretical underpinnings, and practical applications of these tools, processes, and practices in industry from empirical research. Additionally, students will apply these tools, processes, and practices by working in teams with their classmates to implement a student selected software application during the semester.

Credits

3

Prerequisites

CSC 22000 and CSC 22100

Contact Hours

3 hr./wk.

CSC 46000 Introduction to Data Science

This course consists of a survey of analytical tools and concepts in data science, with goal of equipping students with an understanding of the best practices used by professional data scientists and analysts in top companies in technology, finance, and media. The course begins with an overview of fundamentals in data handling and exploratory data analysis, followed by an introduction to core concepts in statistical modeling and machine learning, and concludes with a brief introduction advanced concepts in data science. Students will work with a wide variety of real-world data sets throughout the course in order to gain hands on experience. Emphasis will be placed on frequent practice through writing and reviewing code each week. In addition, students will be assigned and expected to discuss short reading assignments ranging from academic reviews of popular topics in analytics as well as data science and engineering blog posts from companies such as Airbnb, Spotify, and Facebook. Tasks and readings will aim to demystify the work of data teams in the real world, and familiarize students with the concepts and resources needed to secure and succeed in analytical roles.
 

Credits

3

Prerequisites

CSC 22000 and CSC 22100

Contact Hours

3 hr./wk.

CSC 47000 Image Processing

An intensive introduction to digital image processing. Image enhancement, digital filtering theory. Fourier transforms, image reconstruction, resampling, antialiasing, geometric transformations, scanline algorithms, warping, and morphing. Emphasis is on computational techniques. Substantial programming assignments.

Credits

3

Prerequisites

CSC 22100

Contact Hours

3 hr./wk.

CSC 47100 Computer Vision

An intensive introduction to algorithms that recover information from images, motion sequences, multiple views, and 3D volumes. Topics include edge and region recovery, perspective, texture, object recognition, and 3D shape from shading/stereo/motion. Substantial programming assignments.

Credits

3

Prerequisites

CSC 30100 and CSC 32200.

Contact Hours

3 hr./wk.

CSC 47200 Computer Graphics

An intensive study of computer graphics. Graphics hardware, OpenGL API, raster scan conversion, clipping, geometric transformations, 3D viewing, visible surface determination, illumination, shading, splines, ray tracing and animation. Substantial programming assignments.

Credits

3

Prerequisites

CSC 22100.

Contact Hours

3 hr./wk.

CSC 47300 Web Site Design

The design and implementation of web sites and web applications. Current web technologies will be reviewed as well as principles of user experience design. Students will learn to write a web application in a web framework. There will be an emphasis on testing, working in a small team and software engineering best practices.The design and implementation of web sites from a Human-Computer Interaction viewpoint, with emphasis on user testing. Navigation design. Accessibility by persons with limitations in vision or motor ability is stressed and must be addressed in the final project.

Credits

3

Prerequisites

CSC 22100.

Contact Hours

3 lab hr./wk.

CSC 47400 Visualization

Visualization organizes data in a way that the structure and relationships in the data that may not be so easily understood becomes easily understood and interpreted with the visualization. Visualizations of a data set give the reader a narrative that tells the story of the data. The purpose of data visualization is to convey information contained in data to clearly and efficiently communicate an accurate picture of what the data says through understandable and context appropriate visualizations.

Credits

3

Prerequisites

CSC 22000 and CSC 22100

Contact Hours

3 hr./wk.

CSC 47800 Topics in Multimedia and Image Processing

Topics of current interest in image processing, computer vision, computer graphics, and multimedia.

Credits

3

Prerequisites

CSC 47000.

Contact Hours

3 hr./wk.

CSC 47900 Digital Libraries

An introduction to the principles and practice of digital libraries. Algorithms are drawn from computer vision, pattern recognition, image processing, and document processing. Topics include low-level image processing, texture, color constancy, shape from X, supervised and unsupervised training, and implementation issues regarding content based multimedia database. Programming assignments will be implemented in C++ or Java.

Credits

3

Prerequisites

CSC 32200 and MATH 34600 (min. C grade).

Contact Hours

3 hr./wk.

CSC 48000 Computer Security

An introduction to the principles and practices of computer security in various computing environments. Conventional encryption systems and classical cryptography. Confidentiality using conventional encryption. Public key cryptography and protocols for authentication and digital signatures. Recent cryptanalytic attacks on conventional and public key systems. Intruders, worms, viruses and trusted systems. Firewalls and internetwork security. A survey of applications and problems arising in contemporary computer security.

Credits

3

Prerequisites

CSC 22000, CSC 30400, and (CSC 21700 or EE 31100).

Contact Hours

3 hr./wk.

CSC 48600 Introduction to Computational Complexity

An introduction to the performance and limitations of computer algorithms through a study of selected algorithms. Topics include primality testing and integer factorization, algorithms for integer programming and knapsack problems, reductions and NP-completeness, randomized algorithms, and experimental algorithms arising from new technologies such as molecular, neural, and quantum computing.

Credits

3

Prerequisites

CSC 21700 and CSC 30400.

Contact Hours

3 hr./wk.

CSC 49200 Web Security

This course focuses on teaching students the fundamentals of web application security with the aim of providing a foundational level of knowledge matched with offensive and defensive skills developed through hands-on experience. Students will learn the basics of webapp security and common vulnerabilities and attacks, receiving hands-on practice in both exploitation techniques and strategies for protecting and hardening applications. Developed in partnership with Facebook, the course introduces a wide range of topics via a combination of sessions, videos, projects, and labs, giving students both a thorough grounding in the details of webapp.

Credits

3

Prerequisites

CSC 22000 and CSC 22100.

Contact Hours

3 lect. Hrs/wk.