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