This course studies the organization and architecture of modern computers. The course will present the fundamentals of computer organization and investigate the role of performance-driven computer design. Assembly language and programming will be studied. Specific processors will serve as concrete examples for the general concepts addressed in class. Prerequisite: CSC 506
Completely ONLINE. ASYNCHRONOUS ONLINE.
Graduate Courses
Course Delivery DEFINITIONS:
- Online Courses: In online teaching, 100% of instruction takes place online via Canvas and with supplemental platforms like Zoom. There are two types of online courses: asynchronous and synchronous.
- Asynchronous online: Course is fully online, with lessons, assignments, and activities posted in Canvas with due dates. Students complete coursework, engage in discussions, etc., based upon their own schedules, but are required to meet posted deadlines.
- Synchronous online: Online course that includes real-time class meetings using technology (e.g. Zoom). The number of required meetings varies based upon the particular class, but meetings take place during the scheduled class times. Faculty will inform students of the schedule for real-time meetings in their courses.
- Hybrid Courses: Hybrid courses combine both in-person, on-campus meetings with online instruction. All face-to-face activities take place during the regularly-scheduled meeting times in the rooms assigned on the course listing. The number of in-person meetings varies by course. Faculty will notify students of the exact meeting schedule for their courses.
If your class is not listed as online or hybrid, it will meet fully face-to-face following the noted class schedule.
This course studies the technology, architecture, applications and management of data communication systems. Topics will include data transmission and encoding, the ISO reference model, TCP/IP, packet-switched and circuit-switched networks, local area networks, Intranet and Internet, multiplexing, wireless and cellular wireless technologies, the mathematical foundations of data communications (including queuing theory and performance modeling), and network security issues.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 380 OL1.
This is a course on design and analysis of algorithms. Examples from all major algorithm design techniques are studies, including exhaustive search, divide-and-conquer, dynamic programming, greedy algorithms, and backtracking. The mathematical analysis of algorithm complexity is emphasized throughout the course. Advanced data structures are also introduced. Prerequisite: CSC 302 or CSC 501 or admission to the Computer Science Master's degree program.
Cross-listed with CSC 431 OL1. Completely ONLINE. ASYNCHRONOUS ONLINE.
This course will provide students with a detailed examination of the theory of computing. This includes automata and language theory, computability theory, and complexity theory. Students will laern about finite automata, regular expressions, Turing machines, decidability and the halting problem. Additionally, time and space measures, complexity classes, i.e., P, NP, L, NL, etc., and P versus NP will also be covered. Prerequisite: CSC 302 and CSC 295; CSC 501 and CSC 502; or being matriculated in the Computer Science Master's program.
Completely ONLINE. ASYNCHRONOUS ONLINE.
This course examines the concepts of modern and historical operating systems as a resource manager. Topics include multithreading, process management, CPU scheduling, process synchronization, deadlock, memory management, persistent storage management, and security. Significant programming projects using C in a Unix environment are required. Prerequisite: CSC 501 or permission of instructor.
Cross-listed with CSC 432 OL1. Completely ONLINE. ASYNCHRONOUS ONLINE.
This course will provide an in-depth overview of virutalization technologies which is the primary technology used in cloud computing. Virtualization allows multiple machine instances called Virutal Machines (VMs) to be run on a single server simultaneously. Each VM instance can be used to isolate contained applications from other VM instances providing a mechanism to partition servers into multiple logical machines. Key areas of study will include review of virtualization concepts, portability, VM migration, and hands-on VM creation and management. Various virtualization software will be used including one or more of the following: VMWare, ESXi, VirtualBox, and Docker.
Cross-listed with CSC 468 OL1. Completely ONLINE. ASYNCHRONOUS ONLINE.
The era of big data has brought new challenges for programmers to tackle. This course begins with a survey of techniques used by data scientists to handle the volume, speed, variety and uncertain nature of data to be processed in a big data environment. Then, using the language python, students will have the opportunity of building a project to summarize real data streams. No prior experience in programming in python is required because python will be covered during the course.
Completely ONLINE. ASYNCHRONOUS ONLINE.
A Project-Based Internship is an internship that includes a sufficiently large project, as determined in consultation among the student, the faculty internship coordinator, and the internship supervisor at the organization where the internship will be completed. Prerequisite: permission of faculty supervisor.
PASS/FAIL ONLY. Instructor Approval/Signature Required.
A culminating experience for the Master's program, this course requires completion of a large-scale software development project, completed under direct supervision of a faculty member. This project must represent a full three-credit course worth of work, and must demonstrate an understanding of the topic well beyond that covered in any course. Prerequisite: permission of faculty supervisor.
Instructor Approval/Signature Required.
Independent Study Application Required.