Computer Science (CSC)
Computer Science (CSC)
COMPUTER SCIENCE (CSC) CSC 131 Web Design for All (3 credits)
This course will attempt to give you experience in designing Internet
applications. A student finishing this course should be able to design,
CSC 110 Building Virtual Worlds (3 credits) implement, and maintain a website using HTML, CSS, JavaScript, etc.
A gentle introduction to programming with user-friendly software (Alice). Attributes: Undergraduate
Students will use 3D animated interactive virtual worlds to develop an
CSC 132 Artificial Intellig for All (3 credits)
understanding of basic programming constructs. Open to all students.
This course will cover the fundamental concepts in artificial intelligence,
Computer science majors may take this course to prepare for CSC 120.
machine learning and robotics. Learn about deep learning systems that
This course presupposes no previous programming experience.
mimic biological or societal models to learn and perform challenging
Attributes: Undergraduate
tasks.
CSC 115 Intro to Computer Science (3 credits) Attributes: Undergraduate
A gentle introduction to computer science. Students will be introduced to
CSC 133 Python Programming for All (3 credits)
basic programming constructs in a language such as Python. Open to all
Programming fundamentals using the Python programming language:
students. Computer science majors may take this course to prepare for
data, variables, selection, loops, arrays, input/output, basic graphics,
CSC 120. This course presupposes no previous programming experience.
functions and data visualization.
Attributes: Undergraduate
Attributes: Undergraduate
CSC 116 Comp’l Thinking & Data Sci (3 credits)
CSC 134 Databases for All (3 credits)
The course aims to provide students with an understanding of the
Learn about data, organizing data into databases. Learn how to create
role computation can play in solving problems and to help students,
Entity Relationship diagrams, create databases and use SQL to find what
regardless of their major, feel justifiably confident of their ability to write
you want. Learn about Big data and unstructured data.
small programs that allow them to accomplish useful goals. The class
Attributes: Undergraduate
uses the Python programming language.
Prerequisites: CSC 115 CSC 135 Cybersecurity for All (3 credits)
Attributes: Undergraduate This course introduces students with no computer science background
to the basic concepts and techniques associated with cybersecurity.
CSC 120 Computer Science I (4 credits)
Specifically, the course will cover information security, network security,
Computer programming for beginners. Very little prior knowledge
data privacy, smartphone security, and legal and political issues.
regarding how computers work is assumed. Learn how to write
Attributes: Undergraduate
understandable computer programs in a programming language widely
used on the Internet. Go beyond the routine skills of a computer user and CSC 136 eSports Game Design (3 credits)
learn the programming fundamentals: data, variables, selection, loops, This course will cover the tools and techniques for designing interactive
arrays, input/output, methods and parameter passing, object and classes, games and virtual reality simulations.
abstraction. Take what is learned and write programs for use on the Attributes: Undergraduate
Internet. One hour per week of the course is a required laboratory. CSC 150 First Year Seminar (3 credits)
Attributes: Undergraduate This First Year Seminar course for majors and non-majors will introduce
CSC 121 Computer Science II (4 credits) the basics of computer programming using Python (Joy of Computing)
The course covers intermediate programming techniques emphasizing or Alice (Computational Thinking Through 3D Animation). Through
advanced object oriented techniques including inheritance, programming practice the students will gain an appreciation of computer
polymorphism, and interfaces. Other topics include recursion, exception programs and algorithm development that can be applied in many fields.
handling, design patterns, simple GUI programming, and dynamic Attributes: First-Year Seminar, Undergraduate
containers such as linked lists, stacks, queues, and trees. CSC 170 Special Topics (3 credits)
Prerequisites: CSC 120 Topics will vary according to the semester in which the class is offered.
Attributes: Undergraduate Attributes: Undergraduate
CSC 125 CSC I:Programming Fundamentals (3 credits) CSC 196 Computer Science Elective (3 credits)
Computer programming for beginners. Very little prior knowledge
CSC 201 Data Structures (4 credits)
regarding how computers work is assumed. Learn how to write
The course covers fundamental data structures, algorithms for
understandable computer programs in a programming language widely
manipulating and retrieving information from these data structures, and
used on the Internet. Go beyond the routine skills of a computer user and
techniques for analyzing their efficiency in terms of space and time. The
learn the programming fundamentals: data, variables, selection, loops,
distinction between an Abstract Data Type and its implementation is
arrays, input/output, methods and parameter passing, object and classes,
emphasized. Topics include lists, vectors, trees (general trees, binary
abstraction. Take what is learned and write programs for use on the
search trees, and balanced trees), priority queues, hashing, graphs, and
Internet. One hour per week of the course is a required laboratory.
various searching and sorting algorithms.
Attributes: Undergraduate
Prerequisites: CSC 121
CSC 126 CSC II:Intermed Prog Technique (3 credits) Attributes: Undergraduate
The course covers intermediate programming techniques emphasizing
advanced object oriented techniques including inheritance,
polymorphism, and interfaces. Other topics include recursion, exception
handling, design patterns, simple GUI programming, and dynamic
containers such as linked lists, stacks, queues, and trees.
Attributes: Undergraduate
2 Computer Science (CSC)
CSC 202 Computer Architecture (3 credits) CSC 315 Software Engineering (3 credits)
Overview of computer system organization, hardware, and Principles of designing large programs, including issues of specification,
communications. Introduction to combinational and sequential logic, documentation, design strategies, coding, testing and maintenance.
arithmetic, CPU, memory, microprocessors, and interfaces. CISC vs. RISC Students work in small groups to design and implement a major software
processors. Assembly language programming, microarchitecture, and project.
microprogramming on a variety of processors. Prerequisites: CSC 201
Prerequisites: CSC 121 Attributes: Undergraduate
Attributes: Undergraduate CSC 341 Introduction to Graphics (3 credits)
CSC 240 Discrete Structures (3 credits) Principles of designing large programs, including issues of specification,
Topics include finite probability space, conditional probability, Bayes' documentation, design strategies, coding, testing and maintenance.
theorem, permutations and combinations, statistics and sampling Students work in small groups to design and implement a major software
distributions, the Central Limit Theorem, hypothesis testing, correlation, project.
regression analysis, data encoding, channel capacity, the Shannon coding Prerequisites: CSC 201
theorem. Data analysis projects using an appropriate statistical package Attributes: Undergraduate
will be assigned. CSC 342 Computer Vision (3 credits)
Prerequisites: CSC 121 Computer vision is the science of analyzing images and videos in order
Restrictions: Graduate level students may not enroll. to recognize or model 3D objects, persons, and environments. Topics
Attributes: Undergraduate include the underlying image formation principles, extracting simple
CSC 261 Principles of Programming Lang (3 credits) features like prominent points or lines in images, projecting a scene to
The general principles underlying programming languages, including a picture, tracking features and areas in images and make a mosaic,
such topics as syntax and its specification, data types, data control, flow making an image-based positioning system, obtaining 3D models from
control, storage management and support for design patterns. Examples two or more images, and techniques to recognize simple patterns and
drawn from a variety of programming languages, including functional, objects. The class includes programming exercises and hands-on work
logical and procedural languages, will be presented. with digital cameras and laser scanners.
Prerequisites: CSC 201 Prerequisites: CSC 281
Attributes: Undergraduate Attributes: Undergraduate
CSC 270 Special Topics (3 credits) CSC 343 Interactive 3D Game Developmt (3 credits)
Topics will vary according to the semester in which the class is offered. This course will cover the tools and techniques for programming
interactive games and virtual reality simulations. The focus is primarily
CSC 281 Design & Analysis Algorithms (3 credits)
on programming aspects, including event loops and execution threads,
This course presents fundamental techniques for designing efficient
rendering and animation in 3D, terrain/background representation,
computer algorithms and analyzing their running times. Topics include
polygonal models, texturing, collision detection and physically-based
asymptotics, solving summations and recurrences, sorting and selection,
modeling, game AI, and multi-user games and networking. Although this
graph algorithms (depth-first and breadth-first search, minimum spanning
course has a significant programming focus, other topics briefly covered
trees, and shortest paths), algorithm design techniques (divide-and-
will include the history of computer/video game technology, game genres
conquer, dynamic programming, and greedy algorithms), and introduction
and design principles, and the social impact of games.
to NP- completeness.
Prerequisites: CSC 201
Prerequisites: CSC 201
Attributes: Undergraduate
Attributes: Undergraduate
CSC 344 Human Computer Interaction (3 credits)
CSC 290 Career Prep Seminar (1 credit)
User models: conceptual, semantic and syntactic considerations;
What can you do with a degree in Mathematics, Computer Science,
cognitive and social issues for computer systems; evaluating the
Information Technology, or Actuarial Science? Do you know how to
interface; direct manipulation; architectures for Interaction; Students will
search for an internship or a job? And, are you ready to apply for a
design and implement a GUI based application.
position should the opportunity arise? Have you practiced your elevator
Prerequisites: CSC 201
pitch? This professional development seminar will enhance students'
Attributes: Undergraduate
knowledge about internships and careers within their major and
help them build practical skills through a series of steps and events CSC 345 Image Data Science (3 credits)
throughout the semester. This one-credit course meets once a week Image Data Science is the science of analyzing images including video
through the semester to provide practical instruction and skills in areas in order to recognize or model 3D objects, persons, and environments.
that include internship search and application, resume/cover letter prep, Topics include the underlying image formation principles, extracting
professional communication, and networking/interviewing. simple features like prominent points or lines in images, projecting a
Attributes: Undergraduate scene to a picture, tracking features and areas in images to make a
mosaic, making an image-based positioning system, obtaining 3D models
CSC 310 Computer Systems (3 credits)
from two or more images, and techniques to recognize simple patterns
An overview of operating systems and the software required to integrate
and objects. The class includes programming exercises and hands-
computer hardware into a functional system. Topics include operating
on work with C#, Python, and Google's Tensorflow machine learning
systems structure, interrupt driven systems, concurrency, memory
framework.
management, file systems and security, and system calls.
Prerequisites: CSC 281
Prerequisites: CSC 201
Attributes: Undergraduate
Attributes: Undergraduate
Computer Science (CSC) 3
CSC 346 Introduction to Data Science (3 credits) CSC 354 Web Technologies (3 credits)
This course will introduce students to the various aspects of data science Topics include organization of Meta-Markup languages, Document
such as data collection and integration, exploratory data analysis, Type Definitions (DTD), document validity and well-formedness, style
predictive modeling, descriptive modeling, data product creation, languages, namespaces, Transformations, XML parsers, and XQuery.
evaluation, and effective communication. The focus in the treatment of Course includes programming projects.
these topics will be on breadth, rather than depth, and emphasis will be Prerequisites: CSC 201
placed on integration and synthesis of concepts and their application to Attributes: Undergraduate
solving problems. To make the learning contextual, real datasets from a CSC 355 Cryptography & Netwrk Security (3 credits)
variety of disciplines will be used. Course includes programming projects Topics include classical cryptosystems, public and symmetric
in a Python and/or R. cryptography, key management, digital signatures, cipher techniques,
Prerequisites: CSC 201 authentication and federated identity management. Course also covers
Attributes: Undergraduate concepts relating to crypto-virology, malware, viruses, Trojan horses,
CSC 347 Advanced Data Science (3 credits) worms and other types of infectors as they relate to network security.
The course introduces most recent tools for performing predictive Course includes programming projects.
analytics, data visualization, data wrangling, statistical inference, deep Prerequisites: CSC 201
machine learning, and software engineering. The main focus of the Attributes: Undergraduate
course is to introduce students to most important aspects of data CSC 356 Mobile App Design (3 credits)
science by reinforcing writing efficient code, testing, and debugging This course is designed for students who wish to start developing mobile
while working with large software systems. The course includes several applications on Android platforms, and through the process understand
programming projects. the concepts relating to Computer Science on a mobile platform. The
Prerequisites: CSC 346 course will include the basics of mobile and wireless technology with
Attributes: Undergraduate Android programming and will cover the most recent version of Android.
CSC 348 Advanced Machine Learning (3 credits) Students will learn how to develop feature-rich Android applications using
The course will present machine learning algorithms for supervised and various development platforms and learn the basic concepts in Computer
unsupervised learning with an emphasis on recent advances in deep Science such as algorithmic thinking, abstractions, logic, flow control,
learning with neural networks, decision trees, and various stochastic and data representation, storage and manipulation. The primary language
models. Application areas in data science, computer vision, natural used in the course will be Java.
language understanding, and engineering optimization will reinforce the Prerequisites: CSC 201
covered topics. The course includes several programming projects. Attributes: Undergraduate
Prerequisites: CSC 201 CSC 357 Internet of Things (3 credits)
Attributes: Undergraduate By 2020, the number of smartphones, tablets, and PCs in use will reach
CSC 351 Database Management Systems (3 credits) about 7.3 billion units. In contrast, the IoT (Internet of Things) will have
The course will cover the concepts and structures necessary to design expanded at a much faster rate, resulting in a population of about 26
and implement a relational database system. Topics to be covered: billion units at that time. The IoT is the network of physical objects that
entity-relationship and relational data models, relational algebra, SQL, contains embedded technology to communicate and sense or interact
normalization, file organization, indexing, hashing, and enterprise-wide with their internal states or the external environment. In this course,
web-based applications. students will use two of the most popular IoT platforms (Arduino and
Prerequisites: CSC 201 Raspberry Pi) to develop their own "things."
Attributes: Undergraduate Prerequisites: CSC 201
Attributes: Undergraduate
CSC 352 Data Communication & Networks (3 credits)
Topics include mathematical foundations of data communications, CSC 358 Big Data and Web Intlgce (3 credits)
logical and physical organization of computer networks, the ISo and TCP/ The course explores the concepts of big data, the use of Artificial
IP models, communication protocols, circuit and packet switching, the Intelligence data exploration techniques, map-reduce parallel computing
Internet, LAN/WAN, client/server communications via sockets, routing paradigm, distributed file systems, NoSQL databases, and stream
protocols, data encryption/decryption and network security issues. computing engines. The course includes programming projects on a
Prerequisites: CSC 201 cluster of Hadoop servers.
Attributes: Undergraduate Prerequisites: CSC 201
Attributes: Undergraduate
CSC 353 Internet Application Develpmnt (3 credits)
This course will attempt to give you experience in designing Internet CSC 359 Security in Mobile App Design (3 credits)
applications. A student finishing this course should be able to design, The course introduces students on how to implement and enforce
implement, and maintain a large community or e-commerce web site. access and data protection measures for mobile applications using
They should leave the course with an understanding of a variety of data encryption standards, VPN policies, and authentication. The focus
Internet protocols and markup languages, a knowledge of at least of the course is on the integration between the mobile application and
one common scripting tool, an understanding of how to implement a remote authentication services. The course include Android programming
database back-end into a large-scale site, and the ability to critically projects using security specific SDK's
assess the usability of both their design and the design others. Prerequisites: CSC 201
Prerequisites: CSC 201 Attributes: Undergraduate
Attributes: Undergraduate
4 Computer Science (CSC)
CSC 360 Intro to Cloud Computing (3 credits) CSC 366 Intro to Ethical Hacking (3 credits)
Cloud Computing is concerned with the use and architecture of this This course introduces students to the basic principles and techniques
model of computation. This course covers the services provided by used in penetration testing, also known as Ethical Hacking. The course
clouds, their internal structure, and their possibilities and limitations. covers the methods used in penetration testing process and the
Topics include Infrastructure as a Service, Middleware (Platform) as corresponding remedial techniques while emphasizing the key factors
a Service, Software as a Service, Service-oriented architectures, Web that differentiate a malicious attacker from an ethical hacker, stressing
Services and standards, cloud security, reliability, governance, and the importance of being within legal confines. Students will develop a
wireless clouds. broad understanding of current cybersecurity problems by completing
Prerequisites: CSC 201 and CSC 310 projects on the topic of Ethical Hacking.
Attributes: Undergraduate Prerequisites: CSC 201
Attributes: Undergraduate
CSC 361 Forml Lang & Compilr Constrctn (3 credits)
Introduction to formal languages and abstract machines: finite automata CSC 367 Intro Soc Net Anyls & Modlng (3 credits)
and regular sets, context free grammars and pushdown automata. Syntax The Analysis and Modeling of Social Networks is a very hot topic in
trees and decorated trees. Application of these ideas to the construction Computer Science. Considering that mobile devices, as smartphones and
of compilers and other language translation software. The course will laptops, are physically carried by human beings, the data generated by
include programming projects that will illustrate the major features of these devices actually possesses certain social features. By analyzing
compiler construction. the social features and modeling social networks, we are able to design
Prerequisites: CSC 201 better applications, in terms of the functionality and efficiency. This
Attributes: Undergraduate course will include methods for analyzing and modeling the following
aspects of social networks: the small-world network models, social
CSC 362 Artificial Intelligence (3 credits)
network search algorithms, power-laws and preferential attachment,
The course covers fundamental concepts such as role of logic in
diffusion and information propagation in social networks, community
reasoning, deductive proofs, and blind and informed search techniques.
detection in social networks, models of network cascades, models of
Additional topics may include inductive learning, genetic algorithms,
evolving social networks, links and attributes prediction. In addition, the
decision trees, planning, natural language processing, game trees and
course will introduce a set of tools for visually presenting and studying
perceptron learning.
different social networks and their unique features.
Prerequisites: CSC 201
Prerequisites: CSC 201
Attributes: Undergraduate
Attributes: Undergraduate
CSC 363 Theoretical Foundations (3 credits)
CSC 370 Topics in Computer Science (3 credits)
Introduction to formal models of languages and computation. Topics
The course introduces students to recent theoretical or practical topics
covered include finite automata, regular languages, context-free
of interest in computer science. Content and structure of the course are
languages, pushdown automata, Turing machines, computability, and NP-
determined by the course supervisor. The special topic(s) for a given
completeness.
semester will be announced prior to registration.
Prerequisites: CSC 201
Prerequisites: CSC 201
Attributes: Undergraduate
Attributes: Undergraduate
CSC 364 Network Forensics (3 credits)
CSC 470 Special Topics (3 credits)
This course is a broad introduction to the field of Digital Forensics.
Topics will vary according to the semester in which the class is offered.
It covers various fundamental topics necessary for digital forensics
Attributes: Undergraduate
investigation, and a variety of hardware and software tools that are
commonly used during the investigation. The course begins with CSC 490 Internship (3 credits)
foundations of electronic evidence including cybercrime laws, the 4th The course goals are: to gain first-hand experience of the daily activities
Amendment, compliance and requirements, collection and handling, of professionals in computer science and related fields, to verify an
analysis, and reporting. The course also covers fundamentals of file interest in a particular area of computer science, to develop and hone
systems with specific details pertaining to Microsoft FAT file systems. skills required for computer science professions, to establish contacts
Students will learn two important forensics techniques -file recovery outside the academic community who will facilitate a career in computer
and file carving-among other things. In addition, basic techniques used science. An internship journal and a report are also required.
in Network-based digital forensics will also be covered. Finally, Anti- Prerequisites: CSC 201
forensics will also be discussed. Hands-on lab activities familiarize Attributes: Undergraduate
students with several relevant investigation techniques. CSC 492 Honors Research, Non-Thesis (3 credits)
Prerequisites: CSC 201 Supervised independent research mentored by a faculty member.
Attributes: Undergraduate Students must complete the application form for independent study
CSC 365 Intro to Security (3 credits) (available in the Dean’s Office) and have the approval of the department
Topics include fundamental concepts in confidentiality, integrity, and chair, Associate Dean, and Honors Program Director to register.
availability, access control methods, cryptographic concepts, physical Prerequisites: CSC 315
security, malware, computer viruses, privacy-invasive software, malware
detection, network security, web security, security models, software
vulnerability assessment.
Prerequisites: CSC 201
Attributes: Undergraduate
Computer Science (CSC) 5
CSC 493 Independent Study (3 credits) CSC 501 Computer Science I (3 credits)
A one- or two-semester, independent research project on a topic selected This is an intensive, one-semester, two-course sequence intended to
by the student and a faculty research advisor, and approved by the provide students with the necessary background in programming for
department. The student may undertake the two-semester option to the graduate program. The use of the computer to solve problems.
graduate with departmental honors, in which case he/she must notify the Students will learn general principles of program design, at first by using
department by spring of his/her junior year. Students need to complete libraries of predefined program units, and later, by constructing complete
the application form for independent study (available in the Dean's programs. Emphasis is on developing techniques for program design
Office), meet the GPA and other requirements, and have the approval of that lead to correct, readable and maintainable programs. Intermediate
the Computer Science Department chair and Associate Dean in order to programming techniques including the use of recursion. An introduction
register. to encapsulated data structures. Lists and list sorting will be used to
Prerequisites: CSC 281 introduce a discussion of algorithm efficiency.
Attributes: Undergraduate Restrictions: Enrollment is limited to Graduate level students.
CSC 494 Independent Study (3 credits) CSC 502 Computer Science II (3 credits)
A one- or two-semester, independent research project on a topic selected This is an intensive, one-semester, two-course sequence intended to
by the student and a faculty research advisor, and approved by the provide students with the necessary background in programming for
department. The student may undertake the two-semester option to the graduate program. The use of the computer to solve problems.
graduate with departmental honors, in which case he/she must notify the Students will learn general principles of program design, at first by using
department by spring of his/her junior year. Students need to complete libraries of predefined program units, and later, by constructing complete
the application form for independent study (available in the Dean's programs. Emphasis is on developing techniques for program design
Office), meet the GPA and other requirements, and have the approval of that lead to correct, readable and maintainable programs. Intermediate
the Computer Science Department chair and Associate Dean in order to programming techniques including the use of recursion. An introduction
register. to encapsulated data structures. Lists and list sorting will be used to
Prerequisites: CSC 281 introduce a discussion of algorithm efficiency.
Attributes: Undergraduate Prerequisites: CSC 501 (may be taken concurrently)
Restrictions: Enrollment is limited to Graduate level students.
CSC 495 Computer Science Project (3 credits)
Students will work on a substantial application based upon their prior CSC 503 Java Programming (3 credits)
knowledge. This course provides students with the necessary background in
Prerequisites: CSC 201 programming for the graduate program. Students will learn general
Attributes: Undergraduate principles of program design at first by using libraries of predefined
program units, and later by constructing complete programs.
CSC 496 Honors Thesis I (3 credits)
Intermediate programming techniques including the use of recursion are
Students need to complete the application form for independent study
covered. An introduction to encapsulated data structures and algorithm
(available in the Dean's Office) and have the approval of the Department
efficiency.
Chair, Associate Dean and the Honors Program Director in order to
Restrictions: Graduate level students may not enroll.
register.
Prerequisites: CSC 315 CSC 549 Computing Essentials (3 credits)
Attributes: Undergraduate This course provides students, who have minimal or no prior knowledge
of computational environments, with an understanding of modern
CSC 497 Honors Thesis II (3 credits)
computers and operating systems. Students will also learn general
Students need to complete the application form for independent study
(available in the Dean's Office) and have the approval of the Department principles of programming design in an appropriate computational
environment such as Python. Emphasis is on developing techniques for
Chair, Associate Dean and the Honors Program Director in order to
program design that lead to correct and secure programs.
register.
Restrictions: Enrollment is limited to Graduate level students.
Prerequisites: CSC 315
Attributes: Undergraduate CSC 550 Objct Orint Dsgn & Data Struct (3 credits)
The course combines a strong emphasis on Object-Oriented Design
CSC 500 Discrete Structures (3 credits)
principles and design patterns with the study of data structures.
Mathematics needed for Computer Science. Topics covered include:
Fundamental Abstract Data Types, their implementations and techniques
functions, relations, propositional and first order predicate logic,
for analyzing their efficiency will be covered. Students will design, build,
set theory, proofs and their construction, counting and elementary
test, debug and analyze medium-size software systems and learn to use
probability. The course will use a declarative language as a tool to
relevant tools.
support concrete implementations of the mathematical ideas.
Prerequisites: CSC 502
Restrictions: Enrollment is limited to Graduate level students.
Restrictions: Enrollment is limited to Graduate level students.
CSC 551 Design and Analysis (3 credits)
Concepts of program complexity; basic approaches to complexity
reduction: data structures and techniques; worst cases and expected
complexity. Topics to be covered may include sorting, set manipulation,
graph algorithms, matrix multiplication, and finite Fourier transforms,
polynomial arithmetic, and pattern matching.
Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students.
6 Computer Science (CSC)
CSC 552 Computer Architecture (3 credits) CSC 618 Semantic Web (3 credits)
Overview of computer system organization, hardware components, This course covers a range of semantic web technologies, including RDF
and communications. Introduction to Boolean algebra, combinational (Resource Description Framework - a model for data interchange), OWL
and sequential logic, arithmetic, the CPU, memory, microprocessors, (Web Ontology Language) and SPARQL Query Language. Students will
and interfaces. CISC vs. RISC processors. Practical assembly language apply course concepts to an in-depth project (using Semantic Tools)
programming will be the emphasis with an introduction to micro in an area of personal or professional interest. The course will allow
architecture and microprogramming on a variety of processors. students to build a substantial body of work and an industry-ready Graph
Prerequisites: CSC 501 Knowledge Engineer/Ontology Engineer portfolio.
Restrictions: Enrollment is limited to Graduate level students. Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students.
CSC 553 Computer Systems (3 credits)
An overview of the software required to integrate computer hardware CSC 619 Advanced Programming Tech (3 credits)
into a functional system. The following topics are covered. Operating This course thoroughly examines many of the sophisticated features
systems as resource managers and as virtual machines. System calls, of Object Oriented Programming (using Java), including interfaces,
in particular those required for process and file management; interrupt advanced graphics, string manipulation, exception handling, some data
driven systems; concurrency; memory management; file systems and structures, file I/O techniques, multithreading, generics, string formatters
security. and wrappers. Students demonstrate their mastery of the material
Prerequisites: CSC 550 through a series of graded projects and assignments that challenge at an
Restrictions: Enrollment is limited to Graduate level students. extremely high level.
Prerequisites: CSC 550
CSC 554 Theory of Computation (3 credits)
Restrictions: Enrollment is limited to Graduate level students.
Formal languages, formal grammars, abstract machines; models of
computation (e.g. Turing machines); computational complexity (NP CSC 620 Internet App. Development (3 credits)
completeness); undecideability and uncomputability. This course will attempt to give you experience in designing Internet
Prerequisites: CSC 500 applications. A student finishing this course should be able to design,
Restrictions: Enrollment is limited to Graduate level students. implement, and maintain a large community or e-commerce web site.
They should leave the course with an understanding of a variety of
CSC 610 Software Engineering (3 credits)
Internet protocols and markup languages, a knowledge of at least
The purpose of this class is to teach the process of developing software.
one common scripting tool, an understanding of how to implement a
It combines a study of methods, tools, and techniques for creating and
database back-end into a large-scale site, and the ability to critically
evolving software products, with the practical skills needed to deliver
assess the usability of both their design and the design others.
high- quality software products on schedule. The methods that are
Prerequisites: CSC 502
studied include requirements, specification, design, implementation,
Restrictions: Enrollment is limited to Graduate level students.
testing, and maintenance. The course includes a substantial group
project. CSC 621 Database Systems (3 credits)
Prerequisites: CSC 550 This course covers the concepts and structures necessary to design and
Restrictions: Enrollment is limited to Graduate level students. implement a database management system. Topics to be covered: data
models (entity-relationship and relational), SQL, normalization, storage
CSC 611 Human Computer Interaction (3 credits)
structures, enterprise applications and database integrity.
User models: conceptual, semantic and syntactic considerations;
Prerequisites: CSC 550
cognitive and social issues for computer systems; evaluating HCI;
Restrictions: Enrollment is limited to Graduate level students.
direct manipulation; the model view controller architecture; widgets and
toolkits. Students will design a GUI based application. CSC 622 Advanced Database Concepts (3 credits)
Prerequisites: CSC 550 Topics include stored procedures, triggers, query processing and
Restrictions: Enrollment is limited to Graduate level students. optimization, web-based enterprise data applications, transaction
management, concurrency control, distributed databases, data mining
CSC 612 Program Verification (3 credits)
and web mining. The course includes programming projects involving
Symbolic logic and mechanized deduction; program specification; loop
SQL.
invariants; the proof methods of Floyd and Hoare; parallel computations;
Prerequisites: CSC 621
program semantics.
Restrictions: Enrollment is limited to Graduate level students.
Prerequisites: CSC 551
Restrictions: Enrollment is limited to Graduate level students. CSC 623 Data Comm and Networking (3 credits)
Topics include mathematical foundations of data communications,
CSC 613 Software testing (3 credits)
logical and physical organization of computer networks, the ISO and TCP/
A systematic approach to software testing, in context of the software
IP models, communication protocols, circuit and packet switching, the
life cycle and as a branch of software engineering, building on students'
Internet, LAN/WAN, client/server communications via sockets, routing
prior knowledge of software engineering. Through both the breadth and
protocols, data encryption/decryption and network security issues.
depth of its coverage, the course prepares students to make an effective
Prerequisites: CSC 550
contribution to software testing as professional software engineers.
Restrictions: Enrollment is limited to Graduate level students.
Prerequisites: CSC 500
Restrictions: Enrollment is limited to Graduate level students.
Computer Science (CSC) 7
CSC 626 Web Technologies (3 credits) CSC 632 Interactive 3D Game Developmnt (3 credits)
Topics include organization of Meta-Markup languages, Document This is a technology-based course that uses the latest computer
Type Definitions (DTDs), document validity and well-formedness, style games technology to teach advanced programming, mathematics, and
languages, namespaces, Transformations, XML parsers, Web Services, software development. The course is ideal for students with an interest
and Web Security Specifications. Course includes programming projects. in computer games who plan to seek employment in one of the country's
Prerequisites: CSC 550 more profitable industries, or students looking for a career in new
Restrictions: Enrollment is limited to Graduate level students. technologies or software development. The interactive entertainment
industry in the US and throughout the world is entering a new phase. New
CSC 627 Introduction to Security (3 credits)
technology platforms are forcing existing development firms to diversify.
Topics include fundamental concepts in confidentiality, integrity, and
There are many aspects of game design, development, production,
availability, access control methods, cryptographic concepts, physical
finance, and the distribution process.
security, malware, computer viruses, privacy-invasive software, malware
Prerequisites: CSC 550
detection, network security, web security, security models, software
Restrictions: Enrollment is limited to Graduate level students.
vulnerability assessment.
Restrictions: Enrollment is limited to Graduate level students. CSC 633 Advanced Graphics (3 credits)
The goal of this course is to expose students to advanced techniques
CSC 628 Advanced Security (3 credits)
in modeling and rendering in computer graphics and visualization.
Topics include classical cryptosystems, public and symmetric
Topics include parametric curves and surfaces, mesh representation,
cryptography, key management, digital signatures, cipher techniques,
multiresolution modeling, mesh simplification, ray-tracing, radiosity
authentication and federated identity management. Course also covers
and volume rendering (iso-rendering and direct volume rendering), anti-
concepts relating to cryptovirology, malware, viruses, Trojan horses,
aliasing and animation.
worms and other types of infectors as they relate to network security.
Prerequisites: CSC 630
Course includes programming projects.
Restrictions: Enrollment is limited to Graduate level students.
Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students. CSC 634 Computational Geometry (3 credits)
The course covers design, implementation and analysis of data
CSC 629 Mobile App Design (3 credits)
structures and algorithms for solving geometric problems concerning
This course is designed for students who wish to start developing mobile
objects like points, lines, polygons in 2-dimensional space and in higher
applications on Android platforms, and through the process understand
dimensions. The course emphasizes the applications of computational
the concepts relating to Computer Science on a mobile platform. The
geometry. Topics include overview of geometric concepts, curves
course will include the basics of mobile and wireless technology with
and surfaces, data structures for representing solid models, convex
Android programming and will cover the most recent version of Android.
hulls, line segment intersection, multi-dimensional data structures (kd-
Students will learn how to develop feature-rich Android applications using
trees, quadtrees and BSP trees), and range searching, point location,
various development platforms and learn the basic concepts in Computer
triangulations and Voronoi diagrams.
Science such as algorithmic thinking, abstractions, logic, flow control,
Prerequisites: CSC 551
and data representation, storage and manipulation. The primary language
Restrictions: Enrollment is limited to Graduate level students.
used in the course will be Java.
Prerequisites: CSC 550 CSC 635 Image Data Science (3 credits)
Image Data Science is the science of analyzing images including video
CSC 630 Introduction to Graphics (3 credits)
in order to recognize or model 3D objects, persons, and environments.
The course provides an introduction to the principles of computer
Topics include the underlying image formation principles, extracting
graphics. The emphasis will be placed on understanding how various
elements that underlie computer graphics interact in the design of simple features like prominent points or lines in images, projecting a
scene to a picture, tracking features and areas in images to make a
graphics software systems. Topics include pipeline architecture, graphics
mosaic, making an image-based positioning system, obtaining 3D models
programming, 3D geometry and transformations, modeling, viewing,
from two or more images, and techniques to recognize simple patterns
clipping and projection, lighting, shading and texture mapping and
and objects. The class includes programming exercises and hands-
visibility determination. A standard graphics API will be used to reinforce
on work with C#, Python, and Google's Tensorflow machine learning
concepts and the study of basic graphics algorithms. Students need
framework.
some proficiency in C language and basic concepts from Linear Algebra.
Prerequisites: CSC 551
Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students. CSC 643 Big Data and Web Intelligence (3 credits)
The course explores the concepts of big data, the use of Artificial
CSC 631 Computer Vision (3 credits)
Intelligence data exploration techniques, the map-reduce parallel
Computer vision is the science of analyzing images and videos in order
computing paradigm, distributed file systems, NoSQL databases, and
to recognize or model 3D objects, persons, and environments. Topics
stream computing engines. The course includes programming projects
include the underlying image formation principles, extracting simple
on a cluster of Hadoop servers.
features like prominent points or lines in images, projecting a scene to
Prerequisites: CSC 550
a picture, tracking features and areas in images and make a mosaic,
Restrictions: Enrollment is limited to Graduate level students.
making an image-based positioning system, obtaining 3D models from
two or more images, and techniques to recognize simple patterns and
objects. The class includes programming exercises and hands-on work
with digital cameras and laser scanners.
Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students.
8 Computer Science (CSC)
CSC 644 Security in Mobile App Design (3 credits) CSC 653 Intro to Soc Net Anlys and Mdl (3 credits)
The course introduces students on how to implement and enforce The Analysis and Modeling of Social Networks is a very hot topic
access and data protection measures for mobile applications using in Computer Science. Considering that mobile devices, such as
data encryption standards, VPN policies, and authentication. The focus smartphones and laptops, are physically carried by human beings, the
of the course is on the integration between the mobile application and data generated by these devices actually possesses certain social
remote authentication services. The course include Android programming features. By analyzing the social features and modeling social networks,
projects using security specific SDK's we are able to design better applications, in terms of the functionality and
Prerequisites: CSC 551 efficiency. This course will include methods for analyzing and modeling
the following aspects of social networks: the small-world network
CSC 645 Intro to Ethical Hacking (3 credits)
models, social network search algorithms, power-laws and preferential
This course introduces students to the basic principles and techniques
attachment, diffusion and information propagation in social networks,
used in penetration testing, also known as Ethical Hacking. The course
community detection in social networks, models of network cascades,
covers the methods used in penetration testing process and the
models of evolving social networks, links and attributes prediction. In
corresponding remedial techniques while emphasizing the key factors
addition, the course will introduce a set of tools for visually presenting
that differentiate a malicious attacker from an ethical hacker, stressing
and studying different social networks and their unique features.
the importance of being within legal confines. Students will develop a
Prerequisites: CSC 550
broad understanding of current cybersecurity problems by completing
Restrictions: Enrollment is limited to Graduate level students.
projects on the topic of Ethical Hacking.
Prerequisites: CSC 550 CSC 655 Social Network Security Issues (3 credits)
Restrictions: Enrollment is limited to Graduate level students. Since the arrival of the first generation of social networks in the 2000s,
online social network platforms have expanded exponentially and many
CSC 647 Internet of Things (3 credits)
social network-based applications have been designed. However, the
By 2020, the number of smartphones, tablets, and PCs in use will reach
massive amount of personal information is stored and used by these
about 7.3 billion units. In contrast, the IoT (Internet of Things) will have
platforms and applications, which inevitably causes security and privacy
expanded at a much faster rate, resulting in a population of about 26
concerns. This course systematically studies the unique features of
billion units at that time. The IoT is the network of physical objects that
social networks and their data and applications, discusses the security
contains embedded technology to communicate and sense or interact
problems and privacy leakage issues of social networks, and further
with their internal states or the external environment. In this course,
introduces the cutting-edge techniques to solve those security and
students will use two of the most popular IoT platforms (Arduino and
privacy problems.
Raspberry Pi) to develop their own "things."
Restrictions: Enrollment is limited to Graduate level students.
Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students. CSC 656 Info Security Mgmt Systems (3 credits)
An information security management system (ISMS) is a documented
CSC 648 Distributed Computing (3 credits)
management system that consists of a set of security controls that
With the growth of technological expansion of computer networking,
protect the confidentiality, availability, and integrity of company/business
distributed systems are becoming more and more widespread. A
assets from threats and vulnerabilities. The course covers the importance
distributed computer system consists of multiple autonomous
of an ISMS to any given organization in light of the multiple cybersecurity
computing devices that do not share primary memory but cooperate
threats in the world today. It also explains the components of an ISMS,
by sending messages over a communication network. This course
the methods used to create one, and complete exercises that show the
systematically studies the special problems in distributed systems,
relationship between technical cybersecurity skills; and, what makes
including distributed control such as election and mutual exclusion,
those skills of value to businesses and other organizations.
routing, data management Byzantine agreement, and deadlock handling.
Restrictions: Enrollment is limited to Graduate level students.
The course also introduces several basic parallel/distributed algorithms
and typical applications in distributed shared memory, database, file CSC 657 Incident Response Management (3 credits)
systems, web applications, cloud, and block-chain. This course will explain the core components of creating a successful
Computer Security Incident Response Plan (CSIRP) and maintaining it
CSC 652 Network Forensics (3 credits)
in response to changes at the organization. It will also detail how a well-
This course is a broad introduction to the field of Digital Forensics.
maintained CSIRP can mitigate and offset the losses to an organization
It covers various fundamental topics necessary for digital forensics
and lessen their legal liabilities in the event of a breach. The student
investigation, and a variety of hardware and software tools that are
will learn the hardware and software resources that exist to assist
commonly used during the investigation. The course begins with
organizations in preventing incidents, and that collect data to properly
foundations of electronic evidence including cybercrime laws, the 4th
investigate such incidents. The student will also learn how to properly
Amendment, compliance and requirements, collection and handling,
execute the procedures within a CSIRP, and see how the plan will dictate
analysis, and reporting. The course also covers fundamentals of file
information flow to the critical parties within the organization. Lastly, the
systems with specific details pertaining to Microsoft FAT file systems.
program will connect Incident Response Management to an Information
Students will learn two important forensics techniques -file recovery
Security Management System.
and file carving-among other things. In addition, basic techniques used
Restrictions: Enrollment is limited to Graduate level students.
in Network-based digital forensics will also be covered. Finally, Anti-
forensics will also be discussed. Hands-on lab activities familiarize
students with several relevant investigation techniques.
Prerequisites: CSC 550
Restrictions: Enrollment is limited to Graduate level students.
Computer Science (CSC) 9
CSC 658 Applied Digital Forensics (3 credits) CSC 670 Topics in CS (3 credits)
The course introduces the core terminology and concepts regarding the The course introduces students to recent theoretical or practical topics
proper preservation of digital evidence. It will explain Locard's Exchange of interest in computer science. Content and structure of the course
Principle, the importance of precise chain-of-custody and detailed are determined by the course supervisor. The special topics for a given
documentation during the data collection efforts, the importance of semester will be announced prior to registration. With permission of the
proper metadata preservation and the investigative use of that metadata. Graduate Director the course may be taken more than once.
The course will transition to hands-on work using actual digital forensic Prerequisites: CSC 550
tools. The students will collect pre-created evidence (email and file Restrictions: Enrollment is limited to Graduate level students.
system), document their work with the tools and in their own notes. They CSC 671 Computer Science Education (3 credits)
will perform basic analyses, they will complete chain-of-custody forms, Candidates will learn subject-specific standards for competencies
supply the logs generated by their use of the tools, and then answer based upon the Computer Science Teachers Association (CSTA)
questions on the evidence, their findings, and these processes over the standards. The CSTA academic standards detail a core set of learning
course of the semester. objectives providing the foundation for a rigorous K-12 computer
Restrictions: Enrollment is limited to Graduate level students. science curriculum. The standards introduce the foundation concepts
CSC 659 Intro to Cloud Computing (3 credits) of computer science making them accessible for all learners. Topics will
Cloud Computing is concerned with the use and architecture of this include the following: Algorithms and Programming, Computing Systems,
model of computation. This course covers the services provided by Data and Analysis, Impacts of Computing, Networks and the Internet and
clouds, their internal structure, and their possibilities and limitations. Pedagogy.
Topics include Infrastructure as a Service, Middleware (Platform) as CSC 680 Artificial Intelligence (3 credits)
a Service, Software as a Service, Service-oriented architectures, Web The course covers fundamental concepts such as role of logic in
Services and standards, cloud security, reliability, governance, and reasoning, deductive proofs, and blind and informed search techniques.
wireless clouds. Additional topics may include inductive learning, genetic algorithms,
Prerequisites: CSC 550 and CSC 553 decision trees, planning, natural language processing, game trees and
Restrictions: Enrollment is limited to Graduate level students. perception learning. Course includes programming projects in a suitable
CSC 665 Intro to Cybercrime (3 credits) language.
The course covers the evolution of cybercrimes, and the evolution of the Restrictions: Enrollment is limited to Graduate level students.
laws used to prosecute those who commit them. We will examine the CSC 681 Programming Paradigms (3 credits)
fact-patterns of significant cybercrimes that have occurred in modern An exploration of the relationships between computational paradigms
history, including notable prosecutions in hacking, illegal enterprise, and and the computer languages that support them. The Lambda calculus
child exploitation. We will explore the (current) categories of cybercrimes and functional programming, resolution and logic based languages,
and delve into the crimes that did not exist prior to the proliferation of the machine based models and imperative languages. The impact of the
personal computer. We will explain the role of digital evidence in these computational model on program structure and language design. A mid-
prosecutions and we will also look closely at the laws (both at the federal sized programming project will be used to illustrate the concepts.
and state levels) that are used to hold cybercriminals accountable. Restrictions: Enrollment is limited to Graduate level students.
Restrictions: Enrollment is limited to Graduate level students.
CSC 682 Numerical Algorithms (3 credits)
CSC 667 Info Govern, Risk & Compliance (3 credits) Exposition and analysis of numerical methods for modern computers;
This course discusses Information Governance (IG) and the policies review of basic concepts in linear algebra; direct and interactive
and procedures needed within an organization to avert risk and stay methods for solving linear and nonlinear problems in numerical algebra;
compliant. The objectives of this course are to help students look at basic problems in approximation theory, numerical differentiation
Information Governance in theory, practice, and policy. This is one of and integration; numerical solutions of different equations; forward
the primary drivers behind an organization’s cybersecurity program and and backward error analysis of algorithms; criteria for comparing the
efforts is the goal of proper Information Governance. efficiency and suitability of numerical methods.
Restrictions: Enrollment is limited to Graduate level students. Prerequisites: CSC 550
CSC 668 Cybersecurity Core Domains (3 credits) Restrictions: Enrollment is limited to Graduate level students.
This course is intended to orient the student on the ten core domains CSC 683 Information Theory and Coding (3 credits)
in the practice of cybersecurity. These domains were defined by the Data encoding and transmission; variable length coding; the Kraft
International Information System Security Certification Consortium, inequality for noiseless transmission channels; channel capacity; noise
Inc. for their CISSP certification (Certified Information Systems Security channels and channel capacity; the Shannon coding theorem; algebraic
Professional). The content presented in this course will offer a successful coding schemes.
student the dual-benefit of being prepared for further study and possible Prerequisites: CSC 500
certification as a CISSP, and also will provide them broad background Restrictions: Enrollment is limited to Graduate level students.
knowledge on the technical and business needs that drive the practice of
cybersecurity. CSC 684 Complexity of Computation (3 credits)
Prerequisites: CSC 656 P and NP problems; NP-complete classes; concrete complexity and the
Restrictions: Enrollment is limited to Graduate level students. P class of combinatorial problems; complexity reduction on graph and
string problems; complexity of algebraic computations.
Prerequisites: CSC 551
Restrictions: Enrollment is limited to Graduate level students.
10 Computer Science (CSC)