500

CS 508 Computer Organization and Design

Prerequisites: A minimum grade of B- in both MATH 505 and CSIT 512, or permission of the instructor. A comprehensive introduction to the general organization, architecture, and functional characteristics of computer systems. Topics include machine level representation of data, assembly level machine organization, memory system organization and architecture, alternative architectures and device interfaces.

Credits

3.0

Offered

Fall Semester

CSIT 512 Elements of Computer Programming

No prerequisite. Introduction to programming concepts and techniques used in problem solving using a modern programming language. Students design, implement and test programs to solve problems in IT, business and science. Topics include I/O, expressions, types, variables, branching, loops, web programming, program planning and simple multimedia programming.

Credits

3.0

Offered

Both Semesters

CS 519 Advanced Data Structures

Prerequisite: A minimum grade of "B-" in CSIT 512. Intensive introduction to object-oriented programming and advanced data structures. Topics include heaps, priority queues, hash tables, B+, B* trees and graphs. Emphasizing advantages and disadvantages of design and implementation choices, and the way these choices affect software quality. Instruction will be in the C++ programming language.

Credits

3.0

Offered

Fall Semester

CS 520 Algorithm Analysis

Prerequisites: MATH 505, Calculus and CS 519. Introduction to the analysis and design of algorithms. Topics include: sorting, searching, advanced tree structures, graph algorithms, network flow problems, amortized analysis, divide-and-conquer, greedy algorithms, dynamic programming, combinatorial search algorithms, computational geometry and NP-completeness.

Credits

3.0

Offered

Spring Semester

CSIT 521 Info Assurance & Risk Assessment

Prerequisites: CSIT/CYBR 555 or Permission of Instructor 

Concepts of information assurance and security risk assessment. Protecting the confidentiality, integrity, and availability of data and their delivery systems. Topics include security assessment definitions and nomenclature, approaches for risk assessment, high assurance system design and techniques for quantitative and qualitative risk analysis.

Credits

3.0

Cross Listed Courses

Also offered as CYBR 521

Offered

Spring and/or Summer Semester

CS 522 Data Mining

Prerequisites: MATH 500 and CS 519. Introduces basic principles and methods for data analysis and knowledge discovery to computer science students. Topics include preprocessing, association, classification and anomaly detection. Students develop basic skills for modeling and performance evaluation.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 422

Offered

Fall Semester

CS 524 Principles of Software Engineering

Prerequisite: A minimum of "B-" in CSIT 512, or permission of the instructor. Comprehensive examination of the theory and practice behind software development. Students design, develop, implement and release a significantly sized software product.

Credits

3.0

Offered

Fall Semester

CS 525 Software Testing & Quality Assurance

Prerequisite: A minimum grade of "B-" in CS 524 or permission of the instructor. Comprehensive examination of the theory and practice behind software testing and quality assurance. Topics include: the software testing process, testing methods, test models, test design techniques, integration, regression, measurement, unit testing, slicing, debugging, inspection and software metrics.

Credits

3.0

Offered

Spring Semester (Odd Years)

CS 527 Data Science

Prerequisites: CS 530 or BIFX 530 (concurrent enrollment is permitted); or Permission of the instructor 

This course provides an overview of Data Science, covering a broad selection of challenges and methodologies for working with big data. Topics to be covered include data collection, integration, management, modeling, analysis, visualization, prediction, and informed decision making. Students work on hands-on projects and case studies using real data sets from a variety of domains including science, business, engineering, social sciences, and life sciences.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate level CS 427

Offered

Spring Semester

CS 528 Artificial Intelligence

Prerequisite: A minimum grade of "B-" in CSIT 512, or permission of the instructor. History, fundamental principles, and future directions of A.I. Topics include state-space searching, knowledge representation, logic and deduction, natural language processing, neural networks, learning, vision, robotics, and cognitive science. Topics will be treated at a level of depth and detail appropriate for a first course in AI.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 428

Offered

Fall Semester

CS 530 Introduction to Database Management Systems

Prerequisite: A minimum grade of B- in CSIT 512, or permission of the instructor. Not open to students who have completed IT 530. Design and implementation of databases from a real world applications point of view. The course includes database concepts such as basic architectural issues, the relational model, query processing, logical database design and normalization theory and data protection issues.

Credits

3.0

Offered

Spring Semester

CSIT 532 Computer Forensics

Prerequisites: CSIT/CYBR 555 or permission of the instructor. Theory and practice behind the analysis of computing and networking equipment to determine if systems and networks have been used for illegal, unauthorized or unusual activities.

Credits

3.0

Cross Listed Courses

Also offered as CYBR 532

Offered

Both Semesters

CSIT 534 Network and Internet Security

Prerequisites: CSIT 555 or CYBR 555 and CSIT 548 or CYBR 548 or permission of the instructor. 

Examination of the pervasive security threats related to the Internet, data communications and networking. Real-time or near real-time capture of information and the systematic tracking of transmissions. Topics include network-borne threats, detection, prevention and analysis; authentication; malicious software and firewalls.

Credits

3.0

Cross Listed Courses

Also offered as CYBR 534

Offered

Both Semesters

CSIT 537 Applied Encryption and Cryptology

Prerequisites: A minimum grade of B- in CSIT 555 or permission of the instructor. Introduction to cryptology, the science of making and breaking secret codes. Topics include encryption, cryptanalysis, public and secret key encryption, block ciphers and digital signatures. Classic and modern cryptography and encryption concepts will be introduced as tools and safeguards to be applied, implemented and evaluated in real-world scenarios.

Credits

3.0

Cross Listed Courses

Also offered as CYBR 537

Offered

Spring Semester (Even Years)

CSIT 540 Human-Computer Interaction

Prerequisite: CSIT 512 or IT 514 (MS in IT students) or permission of the instructor. The role of human factors and psychology in usability; interaction and interface design issues; command languages, menus, error messages and response time physical interaction, I/O devices and interaction style and techniques; the design process and user models; interface evaluation; integration of user interfaces with software engineering.

Credits

3.0

Offered

Spring Semester (Odd Years)

CS 543 Machine Learning

Prerequisites: CSIT 512 and CS 528 Introduction to the field of modeling learning with computers. Topics included are explorations of inductive learning, learning decision trees, ensemble learning, computational learning theory, and statistical learning methods.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 443

Offered

Spring Semester (Even Years)

CSIT 548 Telecommunications and Networking

Data communications, computer networks and open systems. In-depth review of basic terminology and concepts in telecommunication protocols, transmission techniques, network architecture alternatives, internetworking, circuit and packet switching and telecommunication solutions.

Credits

3.0

Cross Listed Courses

Also offered as CYBR 548

Offered

Both Semesters

CS 550 Digital Logic and Switching Theory

Prerequisite: A minimum grade of B- in MATH 505, or permission of the instructor. Introduction to combinational and sequential circuit design. Topics include Boolean algebra and simplification techniques, arithmetic circuits, decoders, flip-flops, counters, registers, memory systems, analog-to-digital conversion and VHDL programming.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 450

Offered

Spring Semester (Even Years)

CS 551 Digital Signal Processing

Prerequisite: CS 519 or Permission of Instructor. Digital Signal Processing (DSP) is concerned with the representation, transformation and manipulation of signals using computer technology. This course will introduce the basic concepts and techniques for processing discrete-time signals.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 451

Offered

Spring Semester (Odd Years)

CS 552 Deep Learning

Prerequisite: CS 519 or Permission from Instructor

This course introduces the field of deep neural network-enabled machine learning with applications in computer vision and natural language processing. Deep learning is behind many recent advances in artificial intelligence, including speech recognition and self-driving cars.  Students will work on big data projects using cloud resources from fastest supercomputers in the world.

Credits

3.0

Offered

Offered Annually As Needed

CS 554 Embedded Systems Programming

Prerequisite: CS 519 or Permission of Instructor

Students will examine the concepts and practices of embedded systems, and work hands-on with modern hardware devices to program various applications for controlling electronics. In the process, they will gain experience both in directly programming embedded devices and high-level networked control of multiple embedded devices. Students will also gain familiarity with example hardware and application domains relevant to embedded interfaces.

Credits

3.0

Offered

Offered Annually As Needed

CSIT 555 Information Systems Security

Prerequisites: IT 510 or permission of the instructor.  

Technical, operational and managerial issues of computer systems. Threats to computer security including schemes for breaking security, and techniques for detecting and preventing security violations. Emphasis will be on instituting safeguards, examining types of security systems and applying the appropriate level of security for perceived risks.

Credits

3.0

Cross Listed Courses

Also offered as CYBR 555

Offered

Spring Semester and/or Summer

CS 556 Music and Sound for Embedded Systems

Prerequisite: CS 577 or Permission of Instructor

This is a course in the musical and sonic applications of embedded systems programming. In this course, you will write programs in Python and other languages that generate sound and music using syntax and constructions with which you are already familiar from your core programming courses. The programs you write in this course will be designed to run on system-on-chip boards such as the Raspberry Pi.

Credits

3.0

Offered

Offered Annually As Needed

CS 561 Computer Architecture

Prerequisites: A minimum grade of B- in both CS 508 and CS 519, or permission of the instructor. An in-depth study of architectural concepts and principles including performance-based design tradeoffs. Topics to be covered include: instruction set design, arithmetic algorithms, hardwired and microprogrammed control, memory hierarchy design, input/output, pipelines, RISC, CISC, vector processors, parallel processors and superscalar machines.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 461

Offered

Fall Semester (Even Years)

CS 564 Operating Systems

Prerequisites: A minimum grade of B- in both CS 508 and CS 519, or permission of the instructor. A comprehensive introduction to the fundamental principles of operating systems illustrated by examples from contemporary systems. This course emphasizes the design tradeoffs involved in operating system design. Topics include: process management; concurrency; deadlock; cpu scheduling; memory management; disk management; files systems; security; and distributed, real-time and multiprocessor operating systems.

Credits

3.0

Offered

Spring Semester

CSIT 565 Advanced Database Management Systems

Prerequisites: CS 519 and CS 530 or CSIT 512 and IT 530

This course examines advanced data management concepts and technologies.  Topics include indexing structures, query processing, transaction management, data security, data warehousing, object-oriented extensions, XML, distributed data management, and recent advances and alternate architectures for Big Data management and processing.

Credits

3.0

Offered

Fall Semester

CS 566 Parallel Computing

Prerequisites: A minimum grade of B- in CS 519 or permission of the instructor. A comprehensive introduction to both the principles and the practice of parallel computing. Topics to be covered include: programming and architectural models, parallel algorithms and parallelizing compilers.

Credits

3.0

Cross Listed Courses

Double-numbered course; offered with undergraduate-level CS 466

Offered

As Needed

CS 571 Programming Languages: Their Design and Compilation

Prerequisites: A minimum grade of "B-" in both CS 508 and CS 519, or permission of the instructor. Survey of major programming paradigms and their related languages, including procedural, functional, logic and object-oriented programming. Topics include: binding, exception handling, data sharing, scope, parameter passing, type checking, runtime storage management, lexical analysis, syntactic analysis, parsing, code generation and optimization.

Credits

3.0

Offered

Fall Semester (Odd Years)

CS 575 Independent Study

Prerequisite: permission of the chair of the department. A maximum of 6 credits may be applied to a degree program. Reading and/or research in a selected field. An approved title for the independent study must be submitted with the registration forms. 

Credits

1.0 - 3.0

Offered

Either Semester

CSIT 575 Independent Study

Prerequisite: permission of the chair of the department. A maximum of 6 credits may be applied to a degree program. Reading and/or research in a selected field. An approved title for the independent study must be submitted with the registration forms. 

Credits

1.0 - 3.0

Offered

Either Semester

CS 577 Algorithms and Music Composition

Prerequisite: CSIT 512 or Permission from Instructor 

This course explores the relationship between computer programming and musical composition. Students study selected elements of music, including sound sources, rhythms, melodies, and harmonies, and learn how to generate these elements with functions and algorithms. Students also develop computer programs that generate structured musical compositions. The course includes several individual hands-on assignments, participation in a "laptop ensemble," and presentation of a final project. Students learn new programming languages and tools from the area of musical computing, solve new problems, and improve their function and algorithm design skills. A background in music may be helpful but is not required. Students are expected to have completed one course in a modern, object-oriented language such as Python, C++, or Java.

Credits

3.0

Offered

Summer Semester

CS 580 Master's Thesis Preparation

Supervision of the master’s thesis. Required of all degree candidates who select the thesis option.

Credits

6.0

Offered

As Needed

CS 585 Master's Field Work Project

Supervision of the master’s field work project. Required of all degree candidates who select the field work project option.

Credits

6.0

Offered

As Needed

CS 595 Software Engineering Project

Prerequisites: CS 524 and 18 credits of CS coursework beyond foundation level, and permission of department. Design, creation and documentation of an applications program. Required of all degree candidates who have requested and been accepted for the software engineering project option.

Credits

6.0

Offered

As Needed

CSIT 597 Curricular Practical Training in CS/IT

Prerequisite: Completion of 15 credits and permission of the instructor.

This course is designed to provide computer science and information technology professionals with a working knowledge and practical application of the topics covered in CS, IT and MIT courses. The students will apply current research and accepted practices of CS and IT field in a variety of professional settings and will perform work supervised by both a professional advisor and a Hood advisor. Based on the description for the external position, students will craft an appropriate research/professional plan, in consultation with his/her Hood advisor. This course will help students synthesize previous concepts and training as they transition to the role of a professional. This course counts as an elective toward degree completion.

Credits

1.0 - 6.0

Offered

As Needed