Course Catalogs

Computer & Info Science (CIS)

CIS 500  Selected Topics  (1-6 Credits)  
Engineering & Comp Sci  
Exploration of a topic (to be determined) not covered by the standard curriculum but of interest to faculty and students in a particular semester.
Repeatable  
CIS 531  Compiler Construction  (3 Credits)  
Engineering & Comp Sci  
Programming a small compiler. Lexical analysis, tokens, finite automata, hashing. Syntax analysis, grammars, syntax trees, error recovery. Scope and type analysis, symbol tables. Run-time stack, variable addressing, expression evaluation, procedure activation, recursion. Code generation, 0ptimization, portability.
Prereq: CIS 351  
CIS 535  Assembly Language  (3 Credits)  
Engineering & Comp Sci  
CIS 536  Comp Prog Tech  (3 Credits)  
Engineering & Comp Sci  
CIS 543  Control of Robots  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with ELE 516  
Kinematics, dynamics, and control of mobile and/or manipulator robots. Path planning, actuators, sensors, human/machine interface. Two hours lecture and two hours laboratory weekly. Design project.
CIS 545  Introduction to Combinatorics  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with MAT 545  
Permutations, combinations, recurrence relations, generating functions, inclusion-exclusion and applications, introductory graph theory.
Prereq: CIS 375 or MAT 375  
CIS 553  Software Systems Implementation  (3 Credits)  
Engineering & Comp Sci  
Organization, analysis, and documentation of a sophisticated implementation project in a prominent high-level language, such as ADA, C, or Modular-2. Substantial programming assignments and analytical documentation. Language and project may vary from year to year.
Prereq: CIS 453  
CIS 554  Object Oriented Programming in C++  (3 Credits)  
Engineering & Comp Sci  
Pointers, dynamic memory management, data abstraction, classes, derived classes, inheritance, types, structures and templates. Threaded programming, standard template library, interfaces. Substantial programming assignments.
Prereq: CIS 351 or CSE 382  
CIS 563  Introduction to Data Science  (3 Credits)  
Engineering & Comp Sci  
Fundamentals of the knowledge discovery and data mining process. Basics of supervised and unsupervised learning. Applications (recommendation and collaborative filtering) and computational tools for carrying out predictive/descriptive modeling. Additional work required for graduate students.
Prereq: MAT 503  
CIS 565  Introduction to Artificial Neural Networks  (3 Credits)  
Engineering & Comp Sci  
Perceptrons and the Perceptron Convergence Theorem; non-linear optimization, gradient descent methods; neural net architecture, conjugate-gradient and recurrent networks; Hopfield networks, Kohonen's feature maps; non-neural clustering algorithms.
CIS 567  Knowledge Representation and Reasoning  (3 Credits)  
Engineering & Comp Sci  
Applications of mathematical methods to knowledge bases. Methods include nonclassical, fuzzy logic and statistical inference. Application topics include planning, temporal and physical reasoning, attitudes, the frame problem, preference, constraints, qualitative differential equations, situation theory.
CIS 570  Experience Credit  (1-6 Credits)  
Engineering & Comp Sci  
Participation in a discipline or subject related experience. Student must be evaluated by written or oral reports or an examination. Permission in advance with the consent of the department chairperson, instructor, and dean. Limited to those in good academic standing.
Repeatable  
CIS 573  Computability Theory  (3 Credits)  
Engineering & Comp Sci  
CIS 580  International Course  (1-12 Credits)  
Engineering & Comp Sci  
Offered through SUAbroad by educational institution outside the United States. Student registers for the course at the foreign institution and is graded according to that institution's practice. SUAbroad works with the S.U. academic department to assign the appropriate course level, title, and grade for the student's transcript.
Repeatable  
CIS 581  Concurrent Programming  (3 Credits)  
Engineering & Comp Sci  
Processes, events, alphabets, and trace sets. Process equivalence. Divergence, dead-lock, fairness, and termination. Message channels, buffers, pipelines, trees, rings, grids, recursive nets. Mutual exclusion, semaphores, conditional critical regions, monitors, remote procedures. Programming exercises in Joyce.
CIS 590  Independent Study  (1-6 Credits)  
Engineering & Comp Sci  
Exploration of a problem, or problems, in depth. Individual independent study upon a plan submitted by the student. Admission by consent of supervising instructor(s) and the department.
Repeatable  
CIS 600  Selected Topics  (1-6 Credits)  
Engineering & Comp Sci  
Exploration of a topic (to be determined) not covered by the standard curriculum but of interest to faculty and students in a particular semester.
Repeatable  
CIS 607  Mathematical Basis for Computing  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 607  
Mathematical logic including predicate calculus, induction, theories with equality relations and groups. Mathematical logic applied to structures like nonnegative integers, tuples, lists, and trees.
CIS 612  Cloud Computing  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 612  
Virtualized data centers, including virtual machine management, power management, and networking; cloud computing applications; and mobile cloud computing.
CIS 623  Assured Programming with Formal Methods  (3 Credits)  
Engineering & Comp Sci  
Reasoning about programs and secure systems. Specification-based, test-driven program development and verification. Development of programs using software tools for secure software systems.
CIS 624  Fundmntls  (3 Credits)  
Engineering & Comp Sci  
CIS 625  Computer Graphics  (3 Credits)  
Engineering & Comp Sci  
Graphics programming. User interfaces. Modeling and viewing transformations. Shading techniques. Representations of three-dimensional models. Curves and non-planar surfaces. Ray tracing and radiosity. Antialiasing. Programming project required.
CIS 626  Theoretical Foundations of Computer Science  (3 Credits)  
Engineering & Comp Sci  
Computability and decidability, first-order logic, lambda calculus systems, program verification, semantics of programming languages, theory of language.
Advisory recommendation Prereq: CIS 607  
CIS 628  Introduction to Cryptography  (3 Credits)  
Engineering & Comp Sci  
Classical and public-key cryptography. Topics include classical cryptosystems and their cryptanalysis, RSA and other public key cryptosystems, pseudo-random sequences, zero-knowledge protocols, related ethical and social concerns.
Advisory recommendation Prereq: (CIS 477 or 675) or (MAT 534 or 541)  
CIS 629  Blockchain: Foundation and Applications  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with FIN 629  
Bitcoin principles, Blockchain foundation, peer-to-peer networks, distributed ledgers and blockchain programming. Programming-oriented topics include transactions, smart contracts, token applications, and efficiency. Domain applications include financial intermediaries, supply-chains and other emerging areas. Basic programming/scripting skills (e.g., python or javascript) are required.
CIS 631  Compiler Design  (3 Credits)  
Engineering & Comp Sci  
Development of the logical design of a compiler: lexical analyzer, parser, symbol table, error routines, code generator, and code optimizer. Analysis of formal algorithms for each component, description of overall compiler-construction techniques.
CIS 632  Modeling Concurrent Systems  (3 Credits)  
Engineering & Comp Sci  
Formal methods for specifying, modeling, and analyzing concurrent systems, and mathematical basis for such methods. Automated and semi-automated tools to apply these methods to analyze emergent behavior of computing related applications.
Advisory recommendation Prereq: CIS 607/CSE 607  
CIS 634  Assurance Foundations  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 634  
Foundational theory, concepts, and computer-assisted reasoning tools necessary for assurance. Topics include functional programming, theorem proving, and logic for reasoning about access control, security, and trust.
CIS 635  Adv Comp Programming  (3 Credits)  
Engineering & Comp Sci  
CIS 637  Multiagent Systems: Concepts and Programming  (3 Credits)  
Engineering & Comp Sci  
Double-numbered with CIS 437  
Algorithms for multiagent systems. Environment types for agent systems. Communications, game theoretical models, automatic auctions, utility and decision theory for multiagent systems, relationships between distributed systems and multiagent systems, Belief-Desire-Intention architecture, logic-based agent models, and agent simulations.  Additional work required for graduate students.
CIS 640  Topics in Mobile Programming  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 640  
Double-numbered with CIS 440  
A variety of subjects surveyed or a particular subject in depth. Additional coursework required of graduate students.
Repeatable 3 times for 9 credits maximum  
CIS 645  Graph Theory  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with MAT 645  
Fundamentals of graph theory and special topics including networks, matching, connectivity, planarity, and automorphism groups.
Advisory recommendation Prereq: MAT 531  
CIS 646  Enumeration, Designs, and Matroids  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with MAT 646  
Generating functions, Polya enumeration, set systems, design parameters, finite projective planes, matroids.
Advisory recommendation Prereq: MAT 531  
CIS 651  Mobile Application Programming  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 651  
Double-numbered with CIS 444, CSE 444  
Development of applications for different mobile devices. Creating effective user interfaces, efficient use of persistent storage, network services, GPS, maps and sensors. Additional work required of graduate students.
CIS 652  Building Assured Components  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 652  
Development of system components with provable functional properties. Students gain hands-on experience walking the virtuous cycle of executable specifications, formal verification, and translation of specifications into a mainstream language.
Advisory recommendation Prereq: CIS 634  
CIS 655  Computer Architecture  (3 Credits)  
Engineering & Comp Sci  
Computer-architecture characteristics and their effect on the design and performance of programs. Price-performance tradeoffs, instruction set design, memory hierarchies, pipelining, storage systems, selected topics in parallel architectures. Architecture of specified computers.
Advisory recommendation Prereq: CIS 341  
CIS 656  Concepts in Concurrent Programming  (3 Credits)  
Engineering & Comp Sci  
Introduction to concurrent programming. Programming-language features for expressing concurrent execution (processes), process communication, and process synchronization; methods of proving properties of concurrent programs, techniques for implementing concurrent systems.
Advisory recommendation Prereq: CIS 623  
CIS 657  Principles of Operating Systems  (3 Credits)  
Engineering & Comp Sci  
Design and implementation of operating systems. Process and memory management, resource scheduling, synchronization, file system management, I/O and kernel services and structuring.
Advisory recommendation Prereq: CIS/CSE 486  
CIS 661  Logic Programming 1  (3 Credits)  
Engineering & Comp Sci  
Formal logic as a programming language. Use of theorem prover as interpreter for programming languages, particularly Horn clause systems. Representation of problem transformations of programs. Applications, including natural-language processing, database representation, and query and expert systems; extensions of Horn clause formalisms.
CIS 662  Introduction to Machine Learning & its Algorithms  (3 Credits)  
Engineering & Comp Sci  
Linear regression, logistic regression, classification, clustering, and tree-based machine learning; feature extraction and selection; bias-variance trade-off; probabilistic and statistical analyses of learning models and algorithms. Programming assignments.
CIS 663  Biometrics  (3 Credits)  
Engineering & Comp Sci  
Foundational principles, concepts, and the formulation of algorithms used in biometrics. Analysis of fingerprint, face, gait, keystrokes, etc. Pattern recognition approach to design and analysis of biometric systems. Security of biometric systems.
CIS 665  Computer Vision  (3 Credits)  
Engineering & Comp Sci  
Image formation, edge detection, filtering, stereo vision, surface orientation. Optical flow, boundary detection, region growing, texture, motion analysis, representation of two- and three-dimensional objects. Knowledge representation issues for computer vision.
CIS 666  Expert Systems  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 683  
Production rules, forward/backward chaining, Rete algorithm, structured objects, introduction to an expert system language/shell, probabilistic inference networks, fuzzy logic, knowledge acquisition, and explanation generation. Programming project or term paper required.
CIS 667  Introduction to Artificial Intelligence  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 684  
Double-numbered with CIS 467  
Knowledge representation, production systems, search algorithms, game playing, uncertainty handling, learning, automated reasoning, computer vision, and natural language processing. Programming project or term paper required for CIS 667, not for CIS 467.
Shared Competencies: Critical and Creative Thinking  
CIS 668  Natural Language Processing  (3 Credits)  
Engineering & Comp Sci  
Double-numbered with CIS 468  
Linguistic and computational aspect of natural language processing technologies. Lectures, readings, and projects in the computational techniques required to perform all levels of linguistic processing of text. Additional work required of graduate students.
CIS 669  Data Science Capstone  (3 Credits)  
Engineering & Comp Sci  
Capstone course for MS in Data Science students. Focus on solving real-world and industry-inspired problems and generating professional data products.
Prereq: CSE 581 and MAT 695  
CIS 670  Experience Credit  (1-6 Credits)  
Engineering & Comp Sci  
Participation in a discipline or subject related experience. Student must be evaluated by written or oral reports or an examination. Permission in advance with the consent of the department chairperson, instructor, and dean. Limited to those in good academic standing.
Repeatable  
CIS 671  Introduction to the Theories of Computation and Complexity  (3 Credits)  
Engineering & Comp Sci  
Graduate- level survey of regular languages, finite state machines, elementary theory of computation, classification of unsolvable problems, elementary computational complexity theory, NP-completeness, and related notions.
Advisory recommendation Prereq: CIS 607  
CIS 672  Mathematical Logic I  (3 Credits)  
Engineering & Comp Sci  
First order logics and interpretations. Godel-Henkin completeness theorem, Herbrand's Theorem, compactness theorem, and the Lowenheim-Skolem Theorem. Basic model theory with applications to the theory of fields. Categoricity in power.
CIS 675  Design and Analysis of Algorithms  (3 Credits)  
Engineering & Comp Sci  
Asymptotic analysis and recurrences; classical numeric algorithms; advanced data structures; graph algorithms; divide-and-conquer, greedy choice, dynamic programming, and other computational strategies; NP-completeness.
Advisory recommendation Prereq: CIS 607/CSE 607  
CIS 678  Quantum Computing  (3 Credits)  
Engineering & Comp Sci  
Purpose of QC; quantum registers; quantum state transitions; classical vs quantum models of computation; quantum cellular automata and Hilbert Space 12; no-cloning theorem; quantum teleportation; quantum logic.
Advisory recommendation Prereq: CIS 607/CSE 607, MAT 397 OR MAT 331  
CIS 681  Software Modeling and Analysis  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 681  
Project-based course covering software modeling, architecture, design, and implementation using diagramming, analysis tools, and common sense engineering methods to analyze performance of concurrent, message-driven systems.
CIS 685  Simulation & Modelling  (3 Credits)  
Engineering & Comp Sci  
Use of the digital computer for simulation systems. Modeling, construction of flowcharts, fixed-time increment and time-status register methods of simulating, simulation languages, generation of random numbers, experimental design, and analysis of simulated data.
Advisory recommendation Prereq: IOR 525, 526, or MAT 521, 525  
CIS 686  Discrete Event Systems  (3 Credits)  
Engineering & Comp Sci  
A spectrum of discrete event models used to describe and analyze discrete event systems will be covered including automata, Petri nets, Markov chains, and introductions to queuing models and discrete event simulation.
Advisory recommendation Prereq: ECS 525 or MAT 521 or ELE 606  
CIS 687  Object Oriented Design  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 687  
Basic methods of object oriented software design and implementation. Object oriented software engineering methodologies: specification, hierarchical decomposition, reuse and extensibility. Implementation of projects in object oriented programming language and analysis of design case studies.
CIS 688  Internet Programming  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 686  
A laboratory projects course. Programming models on web clients and servers. Topics include: browser and server object models, tagged languages, emphasizing HTML and XML, ASP programming, and database connectivity.
CIS 689  Mobile Systems Security  (3 Credits)  
Engineering & Comp Sci  
Double-numbered with CIS 489  
Components in Mobile OS; basic mobile app development; sandbox mechanism; permission enforcement; vulnerabilities; malware attacks. Additional work required of graduate students.
CIS 690  Independent Study  (1-6 Credits)  
Engineering & Comp Sci  
In-depth exploration of a problem or problems.  Individual independent study upon a plan submitted by the student. Admission by consent of supervising instructor or instructors and the department.
Repeatable  
CIS 700  Selected Topics In CIS  (1-6 Credits)  
Engineering & Comp Sci  
A variety of subjects surveyed or a particular subject in depth.
Repeatable 4 times for 12 credits maximum  
CIS 712  Data Parallel Computing  (3 Credits)  
Engineering & Comp Sci  
Languages and algorithms for massively parallel computation on SIMD architectures. Illustrations drawn from applications such as shortest path determination, connected components, N-body problems, graphics, differential equations, simulated annealing, calculation in finite fields. Substantial programming project.
Advisory recommendation Prereq: CIS 623  
CIS 731  Artificial Neural Networks  (3 Credits)  
Engineering & Comp Sci  
Perceptrons and feedforward networks. Backpropagation. Self-organizing feature maps and Boltzmann machines. Deep networks, convolutional networks, recurrent networks, adversarial networks, sparse networks. Attention mechanism, transformers, and generative models. Applications of neural networks.
Advisory recommendation Prereq: CIS 662  
CIS 735  Machine Learning for Security  (3 Credits)  
Engineering & Comp Sci  
Foundational principles of machine learning (ML) algorithms as applied to security. Feature extraction and selection; supervised and unsupervised learning classifiers; performance evaluation and vulnerability analysis of ML algorithms; and case studies of ML application to security.
Prereq: CIS 675  
CIS 752  Wireless Network Security  (3 Credits)  
Engineering & Comp Sci  
Wireless communication technologies, wireless LAN, mobile IP, mobile ad-hoc networks, wireless sensor networks, secure routing, secure locationing, key management, trust management, group communication, energy efficiency.
Advisory recommendation Coreq: CIS/CSE 758 or CIS/CSE 785  
CIS 760  Topics Comp & Comp Logic  (3 Credits)  
Engineering & Comp Sci  
Repeatable  
CIS 767  Mathematical Theory of Computation  (3 Credits)  
Engineering & Comp Sci  
The classical theory of effective computability, primarily concerned with the existence of computer methods. Topics: Turing machines, computable functions, recursion, unsolvable problems, degrees of unsolvability, applications.
Advisory recommendation Prereq: CIS 521  
CIS 774  Principles of Distributed Access Control  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 774  
Specification, verification, and design of secure networks using formal logic. Includes historical access control models, role-based access control, and logics for reasoning about authentication, authorization, audit, delegation, and trust.
Advisory recommendation Prereq: CIS 607 OR CSE 607  
CIS 775  Distributed Objects  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 775  
Design and implement software components using the Component Object Model (COM). Students will develop programs with COM components, ActiveX controls, and distributed applications.
CIS 776  Design Patterns  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 776  
A seminar course based on the book "Design Patterns." Object oriented design methods emphasizing conceptual understanding rather than software development projects.
CIS 778  Advanced Windows Programming  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 778  
Seminar/projects course including: MFC library; windows architecture Graphics Device Interface; common, ActiveX, and Explorer controls; bitmaps; property sheets; toolbars; and status bars.
CIS 784  Software Engineering Studio  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 784  
Applied software engineering and project management. Students are expected to analyze, plan, design, implement, test, and evaluate original software system to stand alone or be integrated into an existing environment. All work performed in teams.
Advisory recommendation Prereq: CSE 682 or CSE 687  
CIS 787  Analytical Data Mining  (3 Credits)  
Engineering & Comp Sci  
Cross-listed with CSE 787  
Knowledge discovery process, data warehouses, OLAP, data mining inference based on statistics and machine learning, rule generation; emphasis on analytical aspects; applications.
Advisory recommendation Prereq: CIS 675, ELE 606, CSE 607  
CIS 790  Independent Study  (1-6 Credits)  
Engineering & Comp Sci  
Exploration of a problem, or problems, in depth. Individual independent study upon a plan submitted by the student. Admission by consent of supervising instructor(s) and the department.
Repeatable  
CIS 890  Independent Study  (1-6 Credits)  
Engineering & Comp Sci  
Exploration of a problem, or problems, in depth. Individual independent study upon a plan submitted by the student. Admission by consent of supervising instructor(s) and the department.
Repeatable  
CIS 970  Experience Credit  (1-6 Credits)  
Engineering & Comp Sci  
Participation in a discipline or subject related experience. Student must be evaluated by written or oral reports or an examination. Permission in advance with the consent of the department chairperson, instructor, and dean. Limited to those in good academic standing.
Repeatable  
CIS 990  Independent Study  (1-6 Credits)  
Engineering & Comp Sci  
Exploration of a problem, or problems, in depth. Individual independent study upon a plan submitted by the student. Admission by consent of supervising instructor(s) and the department.
Repeatable  
CIS 996  Master's Project  (3 Credits)  
Engineering & Comp Sci  
Analysis and specification of a substantial programming exercise from a precise software definition. Top-down, modular design of algorithms and data structures. Complete and professional documentation of full implementation, including verification and performance analysis.
CIS 997  Masters Thesis  (1-6 Credits)  
Engineering & Comp Sci  
Repeatable  
CIS 999  Dissertation  (1-15 Credits)  
Engineering & Comp Sci  
Repeatable