CSC5055 - Network Security I
This course is a survey on network security technology. All of the basic building blocks of network security, including: access control, intrusion prevention, malicious software, symmetric and asymmetric cryptography, authentication, digital signature, and security protocol will be covered. This is a required course for all IT Majors, MSCS students, and an elective for all others. Prerequisites: CSC 2620 (Object Oriented Programming) with a minimum passing grade of C or consent of the instructor and MTH 1314. Four hours a week.
CSC5120 - Programming Language Principles
This course explores the underlying nature of computer programming languages and how they are processed. Topics include language syntax and semantics, parsing, data types, variable binding and scope, functions and parameter passing, control flow, and recursion. Alternative paradigms of programming, including functional languages and logic languages, will be explored in case studies, labs, and regular programming assignments. Prerequisite: CSC 2820 (Data Structures) with a minimum passing grade of C or consent of the instructor. Four hours a week.
CSC 5155 Cryptography
This course is an introduction to modern cryptography. Topics will include a rigorous treatment of fundamental primitives including: theoretical and applied aspects of symmetric and asymmetric cryptography with associated security models, message authentication codes, stream ciphers, cryptographic hashing, digital signatures, and various advanced primitives. Underlying Security proof techniques will be introduced as needed. Necessary mathematics will be introduced as needed, though a strong background in mathematics is recommended. Prerequisite: CSC 3555 (Theory of Computation) or consent of the instructor. Four hours a week.
CSC5210 - Computer Graphics
This course explores the mathematical tools, data structures, algorithms and hardware associated with the generation of 2D and 3D scenes on the computer. Topics include an OpenGL programming, 3D geometric transformations, cameras, shading, texture mapping, modelling, surfaces, terrain, and viewing and visible surface determination. Advanced topics, such as rendering, shadows, shaders, and simulation are covered as time permits. The course includes several significantly scoped programming projects. Prerequisites: CSC 2620 (Object Oriented Programming) and CSC 2820 (Data Structures) with a minimum passing grade of C or consent of instructor. A strong background in math is expected.
CSC 5925 Data Communications
An introduction to the fundamentals of data communications for the computer scientists. Topics include asynchronous and synchronous transmission, analog and digital transmission of data, modulation and demodulation, multiplexing, transmission median, common carriers, communication devices, error control and recovery, message switching, packet switching, LANS, polling techniques, protocols, distributed data processing, and Internet Security Tools. Prerequisites: CSC 2620 (Object Oriented Programming) with a C or better, or EEN 2270 (Disruptive Technologies), or permission of the instructor. Four hours a week.
CSC 5935 Data Networking
The Internet is the mainstream pathway for data communications today. The major components studied include both the hardware elements: hubs, switches, bridges, and routers and the major software elements: Five layer TCP/IP stack. The student will learn about all of these in detail during class and laboratory assignments. Prerequisite: CSC 2620 (Object Oriented Programming) with a C or better, or EEN 2270 (Disruptive Technologies), or permission of the instructor. Three hours a week of lecture and three hours a week of lab.
CSC 5995 Data Mining
This course is an introduction to Data Mining. The course will discuss data mining primitives, machine learning algorithms and visualization for analyzing very large amounts of data from web, text corpora, biomedical databases and other sources. This course will require significant motivation for project planning, data processing and programming. Four hours a week. Prerequisite: CSC3810, Database Principles or equivalent, with a grade of C or better.
CSC 6010 Theory of Computation II
This continuation of CSC 3555, Theory of Computation I, will explore the ideas of computability and complexity in more detail. The course will cover the topics of Turing Machines and other advanced models of computation (circuit model, oracle machines, alternating machines); complexity classes including: PSPACE, P, NP, coNP, L, #P, RP, BPP, IP, AC, and AC0; and the polynomial hierarchy. Students will be expected to develop thorough proof-writing, reduction, and computational techniques, tested through regular quizzes and homework assignments. Prerequisites: CSC 3555. Four hours a week.
CSC 6020 Advanced Operating Systems
This course is an introduction to Operating Systems at the graduate level. Topics discussed will include in depth discussions of: process management, input/output, memory management, the file system, protection and security, concurrency, distributed systems, and system virtualization. Course will require significant systems programming in the POSIX operating system model. Examples will be drawn from enterprise class operating systems. Prerequisite: CSC 2820 (Data Structures). Four hours a week.
CSC 6030 Analysis of Algorithms II
This course provides an exploration of advanced algorithms in terms of design, efficiency analysis, and implementation. It includes an indepth look at networks and flows, dynamic algorithms, approximation algorithms, amortized analysis, linear and integer programming, computational geometry, and other advanced topics as time allows. Prerequisite: CSC 2710 (Analysis of Algorithms I). Four hours a week.
CSC 6120 Network Security II
This course focuses on the systematic development and analysis of network security protocols. Topics include: advanced study of authentication protocols, advanced key agreement protocols, anonymity protocols, designing security protocols, adversarial modeling, and analysis techniques. Analysis techniques may include: Strand Spaces, BAN Logic, and the Applied π-Calculus. Readings will be drawn from the literature. Prerequisite: CSC 5055 (Network Security I). Four hours a week.