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 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 X1.
This course introduces students to the systems-oriented aspects of database systems design. Topics will include a review of relational databases, functional dependencies, normal forms, data manipulation languages, and query languages. Advanced topics may include object-oriented modeling, database administration, physical database design, semi-structured data, distributed database management, transaction processing, concurrency control, recovery, and logic-based systems.
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 X1.
This course will provide an in-depth analysis of user interface design from a software engineering perspective. Key areas will include learning about HCI or Human and Computer Interaction which involves the study, planning and design of the interaction between computers (or any other compute device) and users (humans). Students will design and build sample interfaces using wire-framing techniques and tools. The course should provide you with a breadth of user interface design approaches in what is now becoming one of the most critical areas of software development project success.
FLEX. Cross-listed with CSC 465 EX1.
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 X1.
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 EX1.
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 X1.
Recent advances in fields such as molecular biology have brought about an enormous mass of data beyond which can be analyzed by traditional or manual methods. Fortunately, we have also seen profound advances in the area of computational power (i.e., processing speed and storage). In this course we will examine computational problems in molecular biology and methods for solving these problems. Topics from the area of computer science will include computationally tractable and intractable problems, artificial neural networks, decision trees, Bayesian belief networks and hidden Markov models. Topics from the area of molecular biology will include DNA fragment assembly, pair-wise and multiple sequence alignment, motif recognition, phylogenetic tree construction, protein structure prediction. The course will survey several of the available software packages, such as FASTA, BLAST, PSI-BLAST, and PHD.
Cross-listed with CSC 414 X1.
FLEX. Cross-listed with CSC 355 X1.
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 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 X1 and MBA 540 X1..
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 X2 and MBA 542 X1.
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 EX1.
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 X1.
We're sorry, but this class is already full!
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 X1.
This class will expand on knowledge of relational database management systems. The course topics include PL/pgSQL basic syntax, variables, data types, cursors, creating and using stored procedures, triggers and debugging. The class will also cover implementation of relational database systems including a class project in which a database system is implemented by students. In addition, we will discuss the algorithmic reasoning that motivates database dseign decisions. Prerequisite: CSC 501, CSC 503.
Cross-listed with CSC 469 EX1.
An introductory course to analyze and process text data. A lot of today's communication is conducted through social media, like Twitter, Facebook, Instagram and WhatsApp, and the majority of this data is in textual form. Due to the unstructured nature of the data, it needs to be processed with Natural Language Processing or Text Mining methods. In this course, students will learn regular expressions and handling text with Python libraries such as Pandas and NLTK. Students will also perform text analysis tasks such as identifying features and classification with Naive Bayes, Support Vector Machines and Long-Short Term Memory Deep Learning Algorithms. This course requires prior knowledge in Python or permission of the instructor.
FLEX. Cross-listed with CSC 476 X1.
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.
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. Permission of instructor 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. Permission of instructor 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.
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. Permission of instructor required.