131 courses with the subject CIS, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CIS 100Selected Topics1-6
Exploration of a topic (to be determined) not covered by the standard curriculum but of interest to faculty and students in a particular semester.
Principles and practice of programming. Computing fundamentals: variables, types, scope, objects, classes, functions, parameter passing, input/output, conditionals, and iteration. Defensive programming techniques, including exceptions. Program testing and debugging. Includes programming laboratory.
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 SU academic department to assign the appropriate course level, title, and grade for the student's transcript.
Methods for exploratory data analysis. Graphical and numerical summaries of numerical and categorical data. Drawing conclusions from data. Basic probability, correlation, estimation and testing. Concepts of study design.
Introduction to key computer-science concepts through functional programming. Recursion, data representation, data abstraction, and computational patterns. Algebraic data types and higher-order functions. Models of computation. Three hours of lecture and one hour of computer laboratory.
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.
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.
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.
CIS 321Introduction to Probability and Statistics4
Programming-oriented introduction to fundamentals in statistics and probability; elementary statistics, graphical and numerical representation; probability distributions; tests and confidence intervals; regression, and correlation. CPS 621 adds Journalism applications of statistical methods.
Digital logic, data types and their representations, instruction set architecture, assembly language, program construction, processors, memory hierarchy, traps and interrupts, privilege and security, input-output subsystems.
Input and output, including error handling, file descriptors and interface to OS. Pointers and pointer arithmetic. Structures. Memory functions and storage allocation. Makefiles, header files, libraries, compilation, and linking.
Abstract data structures including arrays, lists, trees, binary search trees, priority queues, graphs. Algorithm analysis. Examples include data structures used for security-related applications.
Environments, stores, scoping, functional and imperative languages, modules, classes, data encapsulation, types, and polymorphism. Implementation of these constructs in a definitional interpreter.
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.
Basic set theory and symbolic logic. Methods of proof, including mathematical induction. Relations, partitions, partial orders, functions, and graphs. Credit cannot be given for both MAT 375 and CIS 375.
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.
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.
Classical cryptosystems and their cryptanalysis, RSA and other public-key cryptosystems, pseudo-random sequences, zero-knowledge protocols, related ethical and social concerns.
CIS 437Multiagent Systems: Concepts and Programming3
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.
Fundamental aspects of virtual environments: applications, methods, and technologies. Development of 3D applications such as games, animations, and immersive virtual worlds. Aspects of 3D graphics (3D transformations and physics) and interactive systems (human perception and motion tracking).
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.
Programming in Java with generic classes. Defining generic classes. Specifying types and inheritance. Verifying correctness of Java methods and classes. Managing concurrency, remote method invocation, and performance considerations.
Software engineering process models. Software requirements analysis, including object-oriented methodology. Behavioral and nonbehavioral requirements. Development of specification documents. Unified Modeling Language. High-level design and software architecture. Team projects.
Detailed design of software. Implementation and software testing. Developing software implementations from UML specifications and design documents. Software development methodologies, including agile development. Ethics and social responsibility. Team projects.
Data communication networks, multilayer network architecture, data transmission fundamentals, network protocols, local and wide area networks, transport and application protocols.
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.
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.
Participation in a discipline- or subject-related experience. Students must be evaluated by written or oral reports or an examination. Limited to those in good academic standing.
Classical methods of minimum and maximum, gradient methods, conjugate direction methods, linear programming and simplex algorithm, integer programming, non-linear optimization, random search algorithms.
Countable and uncountable sets; diagonalization proofs; finite state automata; regular, context-free, context-sensitive, recursive, and r. e. languages; Turing machines; relationships between classes of languages and machines; the halting problem; proof methods for decidability and undecidabilty.
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.
Analytical/logical basis for trusting systems. Access requests, authorizations, certificates, credentials, jurisdiction, and delegation. Applications include distributed access control, process isolation and sharing, and access policies.
Components in Mobile OS; basic mobile app development; sandbox mechanism; permission enforcement; vulnerabilities; malware attacks. Additional work required of graduate students.
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.
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.
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.
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.
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.
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.
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.
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.
Mathematical logic including predicate calculus, induction, theories with equality relations and groups. Mathematical logic applied to structures like nonnegative integers, tuples, lists, and trees.
Virtualized data centers, including virtual machine management, power management, and networking; cloud computing applications; and mobile cloud computing.
Reasoning about programs and secure systems. Specification-based, test-driven program development and verification. Development of programs using software tools for secure software systems.
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 626Theoretical Foundations of Computer Science3
Computability and decidability, first-order logic, lambda calculus systems, program verification, semantics of programming languages, theory of language.
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.
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.
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.
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.
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 637Multiagent Systems: Concepts and Programming3
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.
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.
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.
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.
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.
Design and implementation of operating systems. Process and memory management, resource scheduling, synchronization, file system management, I/O and kernel services and structuring.
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 662Introduction to Machine Learning & its Algorithms3
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.
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.
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.
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.
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.
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.
CIS 671Introduction to the Theories of Computation and Complexity3
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.
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.
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.
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.
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.
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.
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.
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.
Components in Mobile OS; basic mobile app development; sandbox mechanism; permission enforcement; vulnerabilities; malware attacks. Additional work required of graduate students.
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.
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.
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.
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.
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.
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.
Design and implement software components using the Component Object Model (COM). Students will develop programs with COM components, ActiveX controls, and distributed applications.
A seminar course based on the book "Design Patterns." Object oriented design methods emphasizing conceptual understanding rather than software development projects.
Seminar/projects course including: MFC library; windows architecture Graphics Device Interface; common, ActiveX, and Explorer controls; bitmaps; property sheets; toolbars; and status bars.
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.
Knowledge discovery process, data warehouses, OLAP, data mining inference based on statistics and machine learning, rule generation; emphasis on analytical aspects; applications.
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.
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.
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.
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.
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.