Course Description

CSC-6310 Computer Architecture (3 Credits)
This course introduces von Neumann architecture, its role in defining imperative languages that exist today, and its limitations. The memory hierarchy will be reviewed and more completely discussed in modern systems. It also covers parallel computer structures and concurrent computation. Pipelining in computers will be discussed. Multi-processor architectures and some programming paradigms will be explored. Projects and programming assignments will be given to provide the student with a mastery of the topics listed above.
CSC-6320 Machine Learning (3 Credits)
This course introduces machine learning in everyday life and many of its applications. We will start with probability theory, model selection, discussing dimensionality and decision theory. We will delve into probability distributions and linear models for regression and classification. We will thoroughly cover neural networks. Graphical models including Bayesian networks and Markov random fields will be discussed. Mixture and expectation models will be covered. For many of the topics discussed, everyday applications will be presented to relate the topic back to what is currently in use.
CSC-6341 Database Systems (3 Credits)
The course focuses on relational database. Topics include relational model, SQL database language, database design principles using the Entity-Relationship model and Extended Entity-Relationship modeling, and mapping algorithms to actual relational tables. File and index structures will also be covered in the course. Functional dependencies, database normalization and database security will also be addressed. Students will have opportunity to create a database driven web application as their term project.
CSC-6351 Computer Graphics (3 Credits)
This graduate level computer graphics course will describe the rendering pipeline for rendering 2- and 3-dimensional primitives. This will include utilizing transformations applied to the camera placement and objects in the scene. We will implement basic transformation tools and utilize them from existing libraries applied to graphics. We will discuss ray tracing and rasterization, meshes, light models, materials, shaders, and motion. Visibility and Spatial data structures will be use to improve graphics performance.
CSC-6360 Foundations of Algorithms (3 Credits)
The course introduces formal techniques for the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include computational complexity analysis, sorting and searching, divide-conquer techniques, greedy methods, and dynamic programming, graph algorithms, minimum spanning trees, and shortest distance and path problems.
CSC-6361 Computer Networks (3 Credits)
This course focuses on administration of operating systems in a client-server technology (Windows on virtual machine), installation and maintenance. It prepares students for installation of Windows Server, NTFS file system and folder permissions, Domain Name System, Active Directory, local and domain Group Policy, Windows Terminal Services, Internet Security and Acceleration Server, Internet Information Services, communications and networking.
CSC-6362 Computer System Security (3 Credits)
This course provides an overview of security challenges and strategies of Countermeasure in the information systems environment. Topics include definition of terms, concepts, elements, and goals incorporating industry standards and practices with a focus on availability, vulnerability, integrity, and confidentiality aspects of information systems.
CSC-6363 Distributed Systems (3 Credits)
The course introduces techniques and mechanisms in distributed system design including logical clocks, distributed consensus, distributed mutual exclusion, consistency models, ubiquitous computing and its applications such as the Internet of Things (IoT), security in distributed systems, and content delivery networks. Contemporary distributed system case studies and open challenges.
CSC-6383 Princ of Software Engineering (3 Credits)
The course focuses on software development life cycle. Topics include problem identification and definition, requirements analysis, modeling systems and design, implementation, testing, verification, maintenance, project management, and project cost estimation. Students learn to follow proper software engineering steps to complete and deliver a software project while working on their communication skills and better peer relationship.
CSC-6391 Operating Systems (3 Credits)
This graduate-level introductory course to operating systems will cover important concepts and techniques for many modern operating systems will be studied in depth. This course teaches basic operating system abstractions and their implementations. The core of the course focuses on OS support for concurrency (threads) and synchronization, resource management (CPU, memory, I/O), and distributed services. The practical component of the course teaches multithread programming, inter-process communication, and distributed interactions.