This course studies the implementation of abstract data structures and the efficiency analysis of algorithms. There will be required programming projects. Topics will include algorithm analysis, recursion, sorting, randomization, graph algorithms, hash tables, and the implementation of abstract data structures (lists, stacks, queues and trees). This course is not applicable to the Computer Science Master's program. Prerequisite: CSC 506.
Cross-listed with CSC 302 01.
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 people in classrooms is limited by social distancing requirements, and 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 with proper social distancing 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 course focuses on intermediate to advanced programming techniques and fundamental data structures. Students will solve problems by breaking them down using object-oriented techniques and the programming language features that support them. Fundamental data structures including arrays, vectors, lists, stacks, queues, trees, and graphs, are studied and analyzed from the standpoints of a generic and efficient implementation, and proper usage. Significant programming is required. Some students may be required to take CSC 522 as a prerequisite, pending transcript review. This course is not applicable to the Computer Science Master's program.
Cross-listed with CSC 252 01.
This course focuses on intermediate to advanced programming techniques and fundamental data structures. Students will solve problems by breaking them down using object-oriented techniques and the programming language features that support them. Fundamental data structures including arrays, vectors, lists, stacks, queues, trees, and graphs, are studied and analyzed from the standpoints of a generic and efficient implementation, and proper usage. Significant programming is required. Some students may be required to take CSC 522 as a prerequisite, pending transcript review. This course is not applicable to the Computer Science Master's program.
FLEX. Cross-listed with CSC 252 01.
This course focuses on intermediate to advanced programming techniques and fundamental data structures. Students will solve problems by breaking them down using object-oriented techniques and the programming language features that support them. Fundamental data structures including arrays, vectors, lists, stacks, queues, trees, and graphs, are studied and analyzed from the standpoints of a generic and efficient implementation, and proper usage. Significant programming is required. Some students may be required to take CSC 522 as a prerequisite, pending transcript review. This course is not applicable to the Computer Science Master's program.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 252 01.
Software engineering is a dynamic and expanding field. This course aims to give students practical experience and theoretical foundations in the following areas: software design, information systems and software quality, managing the software development process and human computer interaction. There is a strong emphasis on object orientation and the use of Unified Modeling Language for analysis and design. Prerequisites: Database experience, CSC 501 and CSC 505, or permission of the instructor.
Cross-listed with CSC 434 E1.
Software engineering is a dynamic and expanding field. This course aims to give students practical experience and theoretical foundations in the following areas: software design, information systems and software quality, managing the software development process and human computer interaction. There is a strong emphasis on object orientation and the use of Unified Modeling Language for analysis and design. Prerequisites: Database experience, CSC 501 and CSC 505, or permission of the instructor.
FLEX. Cross-listed with CSC 434 E1.
Software engineering is a dynamic and expanding field. This course aims to give students practical experience and theoretical foundations in the following areas: software design, information systems and software quality, managing the software development process and human computer interaction. There is a strong emphasis on object orientation and the use of Unified Modeling Language for analysis and design. Prerequisites: Database experience, CSC 501 and CSC 505, or permission of the instructor.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 434 E1.
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 01.
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.
FLEX. Cross-listed with CSC 431 01.
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.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 431 01.
The focus of this course is on client-side programming using HTML and JavaScript, dynamic HTML, style sheets, design standard for web pages, server-side programming using either PHP or Perl, and AJAX. A significant programming project will be assigned. Fall.
Cross-listed with CSC 355 01.
The focus of this course is on client-side programming using HTML and JavaScript, dynamic HTML, style sheets, design standard for web pages, server-side programming using either PHP or Perl, and AJAX. A significant programming project will be assigned. Fall.
FLEX. Cross-listed with CSC 355 01.
The focus of this course is on client-side programming using HTML and JavaScript, dynamic HTML, style sheets, design standard for web pages, server-side programming using either PHP or Perl, and AJAX. A significant programming project will be assigned. Fall.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 355 01.
This course is designed to provide the necessary skills required to understand the key information security threats within an organization. These threats are becoming more sophisticated and therefore extremely hard to defend against without the proper protections in place. To effectively deter these threats an overall Cybersecurity process must encompass the development of security procedures and processes throughout the entire enterprise. This includes developing both defensive and offensive strategies. This course provides an in-depth look at techniques used to protest an enterprise against cybersecurity breaches. This includes understanding current frameworks including both the NIST Cybersecurity Framework & the Cyber Kill-Chain model. Prerequisite: CSC 202 or CSC 522.
Cross-listed with CSC 318 E1.
This course is designed to provide the necessary skills required to understand the key information security threats within an organization. These threats are becoming more sophisticated and therefore extremely hard to defend against without the proper protections in place. To effectively deter these threats an overall Cybersecurity process must encompass the development of security procedures and processes throughout the entire enterprise. This includes developing both defensive and offensive strategies. This course provides an in-depth look at techniques used to protest an enterprise against cybersecurity breaches. This includes understanding current frameworks including both the NIST Cybersecurity Framework & the Cyber Kill-Chain model. Prerequisite: CSC 202 or CSC 522.
FLEX. Cross-listed with CSC 318 E1.
This course is designed to provide the necessary skills required to understand the key information security threats within an organization. These threats are becoming more sophisticated and therefore extremely hard to defend against without the proper protections in place. To effectively deter these threats an overall Cybersecurity process must encompass the development of security procedures and processes throughout the entire enterprise. This includes developing both defensive and offensive strategies. This course provides an in-depth look at techniques used to protest an enterprise against cybersecurity breaches. This includes understanding current frameworks including both the NIST Cybersecurity Framework & the Cyber Kill-Chain model. Prerequisite: CSC 202 or CSC 522.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 318 E1.
This is an introduction to database management systems for MBA students. There will be a strong emphasis on the design and development of relational database systems using realistic business models. There will be a special focus on developing problem-solving skills. The class will build querying skills using SQL. Students will learn how to use state-of-the-art database management systems programs. Other topics will include database administration and data security issues. There is no prerequisite for this class. This course cannot be applied to the IT or CS Master's degrees.
Cross-listed with CSC 321 E1 and MBA 540 E1.
This is an introduction to database management systems for MBA students. There will be a strong emphasis on the design and development of relational database systems using realistic business models. There will be a special focus on developing problem-solving skills. The class will build querying skills using SQL. Students will learn how to use state-of-the-art database management systems programs. Other topics will include database administration and data security issues. There is no prerequisite for this class. This course cannot be applied to the IT or CS Master's degrees.
FLEX. Cross-listed with CSC 321 EX1 and MBA 540 EX1.
This is an introduction to database management systems for MBA students. There will be a strong emphasis on the design and development of relational database systems using realistic business models. There will be a special focus on developing problem-solving skills. The class will build querying skills using SQL. Students will learn how to use state-of-the-art database management systems programs. Other topics will include database administration and data security issues. There is no prerequisite for this class. This course cannot be applied to the IT or CS Master's degrees.
FLEX. Cross-listed with CSC 321 E1 and MBA 540 E1.
This is an introduction to database management systems for MBA students. There will be a strong emphasis on the design and development of relational database systems using realistic business models. There will be a special focus on developing problem-solving skills. The class will build querying skills using SQL. Students will learn how to use state-of-the-art database management systems programs. Other topics will include database administration and data security issues. There is no prerequisite for this class. This course cannot be applied to the IT or CS Master's degrees.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 321 E1 and MBA 540 E1.
This course is an introduction to object-oriented programming. Students will gain familiarity with the basic building blocks of all computer programs. Important concepts will include variables, data types, input and output, math operations, programming sequences, decisions, iteration, file input and output, and functional decomposition. Time allowing, an introduction to classes or arrays may also be covered. This course will emphasize solution development through the use of pseudocode/flowcharts and will be taught using Java, a contemporary object-oriented language in wide use. This course is intended for students who have no/limited programming background and thus cannot be applied to the IT or CS Master's degrees.
Cross-listed with CSC 202 01 and MBA 542 01.
This course is an introduction to object-oriented programming. Students will gain familiarity with the basic building blocks of all computer programs. Important concepts will include variables, data types, input and output, math operations, programming sequences, decisions, iteration, file input and output, and functional decomposition. Time allowing, an introduction to classes or arrays may also be covered. This course will emphasize solution development through the use of pseudocode/flowcharts and will be taught using Java, a contemporary object-oriented language in wide use. This course is intended for students who have no/limited programming background and thus cannot be applied to the IT or CS Master's degrees.
FLEX. Cross-listed with CSC 202 01 and MBA 542 01.
This course is an introduction to object-oriented programming. Students will gain familiarity with the basic building blocks of all computer programs. Important concepts will include variables, data types, input and output, math operations, programming sequences, decisions, iteration, file input and output, and functional decomposition. Time allowing, an introduction to classes or arrays may also be covered. This course will emphasize solution development through the use of pseudocode/flowcharts and will be taught using Java, a contemporary object-oriented language in wide use. This course is intended for students who have no/limited programming background and thus cannot be applied to the IT or CS Master's degrees.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 202 01 and MBA 542 01.
This course will provide students with a comprehensive study of the major protocols in the TCP/IP suite. Each layer of the 5 network layers will be covered in detail. These include Application, Transport, Network, Data Link, and Physical layers. Additionally, students will learn about subnetting, supernetting, and routing protocols. This course should provide you with the theoretical fundamentals required for positions in the field of computer networks. Prerequisite: CSC 302 or CSC 501 or matriculation in Computer Science Master's program.
Cross-listed with CSC 344 E1.
This course will provide students with a comprehensive study of the major protocols in the TCP/IP suite. Each layer of the 5 network layers will be covered in detail. These include Application, Transport, Network, Data Link, and Physical layers. Additionally, students will learn about subnetting, supernetting, and routing protocols. This course should provide you with the theoretical fundamentals required for positions in the field of computer networks. Prerequisite: CSC 302 or CSC 501 or matriculation in Computer Science Master's program.
FLEX. Cross-listed with CSC 344 E1.
This course will provide students with a comprehensive study of the major protocols in the TCP/IP suite. Each layer of the 5 network layers will be covered in detail. These include Application, Transport, Network, Data Link, and Physical layers. Additionally, students will learn about subnetting, supernetting, and routing protocols. This course should provide you with the theoretical fundamentals required for positions in the field of computer networks. Prerequisite: CSC 302 or CSC 501 or matriculation in Computer Science Master's program.
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 344 E1.
A study of programming languages. This course explores fundamental constructs underlying programming languages and their use. Concepts are illustrated using a procedural language such as C, a functional language such as Scheme, a hybrid language such as Python, and a logic programming language such as Prolog. Advanced topics in object-oriented programming are also explored. Topics covered include language design, scoping rules, binding, parameter passing, as well as an exploration of interpreters and compilers. Prerequisite: CSC 501
Cross-listed with CSC 433 E1.
A study of programming languages. This course explores fundamental constructs underlying programming languages and their use. Concepts are illustrated using a procedural language such as C, a functional language such as Scheme, a hybrid language such as Python, and a logic programming language such as Prolog. Advanced topics in object-oriented programming are also explored. Topics covered include language design, scoping rules, binding, parameter passing, as well as an exploration of interpreters and compilers. Prerequisite: CSC 501
FLEX. Cross-listed with CSC 433 E1.
A study of programming languages. This course explores fundamental constructs underlying programming languages and their use. Concepts are illustrated using a procedural language such as C, a functional language such as Scheme, a hybrid language such as Python, and a logic programming language such as Prolog. Advanced topics in object-oriented programming are also explored. Topics covered include language design, scoping rules, binding, parameter passing, as well as an exploration of interpreters and compilers. Prerequisite: CSC 501
Completely ONLINE. ASYNCHRONOUS ONLINE. Cross-listed with CSC 433 E1.
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 E1.
A Master’s Research Seminar will be arranged by a faculty member when it is determined that a sufficiently large group of students are interested in pursuing research in the faculty member’s area of expertise. Prerequisite: permission of faculty supervisor.
PASS/FAIL ONLY. Instructor Approval/Signature Required.
A supervised internship in organizations in the private and public sectors. This course provides students with the opportunity to apply their knowledge in the workplace. This course is graded on a pass/fail basis. Prerequisite: departmental permission.
PASS/FAIL ONLY. Instructor Approval/Signature Required.
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 Research Master’s Project offers a student to pursue a more significant research project under faculty supervision. This option is open only to students who have earned a grade-point average of 3.5 or higher. The project could focus on a topic beyond those covered in an elective course or could pursue a research interest outside of elective offerings. A Research Master’s Project culminates in a research paper suitable for submission for publication (though an actual submission or acceptance is not required) and a more substantial formal presentation. One or more additional faculty members will serve as readers for the research paper, and their approval, in addition to that of the faculty advisor, is required for successful completion. Students considering further graduate study at the Ph.D. level are especially encouraged to pursue the Research Master’s Project option. 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.
PASS/FAIL ONLY. Instructor Approval/Signature Required.
Independent Study Application Required.