Department of Computer Science
Daniel Conte de Leon, Dept. Chair (237 Janssen Engr. Bldg. 83844-1010; phone 208-885-6509; chair@cs.uidaho.edu; www.cs.uidaho.edu).
Computer science is the systematic study of algorithmic processes that describe and transform information through their theory, analysis, design, efficiency, implementation, and application. It is a broad discipline with an ever-growing array of opportunities. Graduates in this field can find employment in a wide spectrum of public and private enterprises.
The field of computer science encompasses many areas of specialization. One may find a personal niche in software development, systems development and hardware selection, studies of compatibility between hardware and software, programming language development and modification, information assurance, bioinformatics, or a combination of these and any number of other diverse computer-oriented applications and concepts. Because of this diversity in potential application areas, the computer scientist must be familiar with the language of the physical or biological sciences, mathematics, and English. If the computer is to extend its role as a benefit to mankind, the computer scientist must be broadly educated and conversant with the many implications of the powerful tool that they are controlling and developing.
The Department of Computer Science was formed in 1981 and is in the College of Engineering. The Bachelor of Science (B.S.) in Computer Science has been offered at U of I since 1977. This program consists of a carefully designed computer science core, surrounded by an extensive array of challenging technical elective courses. The core consists of courses in algorithms and data structures, programming languages, computer architecture, operating systems, software engineering, theory of computation, and a senior capstone design experience. All of these courses have important components of theory, abstraction, and design.
The Bachelor of Science program in Computer Science is accredited by the Computing Accreditation Commission (CAC) of the Accreditation Board for Engineering and Technology (ABET) at 111 Market Place, Suite 1050, Baltimore, MD 21202-4012, who can be reached at 410-347-7700. The department has made substantial contributions to achieving the University’s designation by the US Department of Homeland Security as a National Center of Excellence in Information Assurance Education.
The department offers graduate programs leading to M.S. and Ph.D. degrees. These programs combine a core of advanced work with a complement of elective courses selected to provide a focused plan of study.
Students in computer science have the unique opportunity to draw from the expertise of an outstanding faculty with extensive experience in industry, teaching, and research. Computers currently available to students include an extensive department network of UNIX, Linux, and Windows-based workstations and several campus personal computer laboratories for research focus. All major campus and department computer systems are networked together with internet connections, providing a state-of-the-art computing environment. The department was instrumental in establishing the Center for Secure and Dependable Systems (CSDS) and the Initiative for Bioinformatics and Evolutionary Studies (IBEST). The importance of these labs can be seen from the range of private and government funding which supports the department’s research in computer security, computer reliability, bioinformatics, evolutionary computation, and high performance computing.
Computer Science Graduate Programs
Candidates must fulfill the requirements of the College of Graduate Studies and the Department of Computer Science. See the College of Graduate Studies section for the general requirements applicable to each degree.
Certificates
Computer Science
CS 1112 Computational Thinking and Problem Solving (3 credits)
General Education: Mathematics
Introduction to computational thinking and problem solving, including elementary computing concepts such as variables, loops, functions, lists, conditionals, concurrency, data types, simple object oriented concepts, I/O, events, syntax, structured programming, basic concepts of computer organization, editing, and the influence of computers in modern society. Typically Offered: Fall and Spring.
Prereqs: MATH 1080 with a grade of C or better; or sufficiently high ACT, SAT, or Math Placement Test score to qualify for MATH 1143.
CS 1120 Computer Science I (4 credits)
Fundamental programming constructs, algorithms and problem-solving, fundamental data structures, overview of programming languages, virtual machines, introduction to language translation, declarations and types, abstraction mechanisms, object-oriented programming. This course includes a lab.
Prereqs: MATH 1143 with a grade of C or higher or CS 1112 with a grade of C or higher; or sufficiently high ACT, SAT, or Math Placement Test score to qualify for MATH 1170
CS 1121 Computer Science II (3 credits)
Abstract data types and data structures: linked lists, stacks, queues, trees, and graphs. Methods to implement and algorithms to manipulate these structures. Dynamic memory methods, sequential file processing, additional searching and sorting algorithms, recursion, and object-oriented programming.
Prereqs: CS 1120 with a grade of C or higher
Coreqs: MATH 1760
CS 1550 Computer Organization and Architecture (3 credits)
Digital logic and digital systems, machine level representation of data, assembly level machine organization, memory system organization and architecture, interfacing and communication, functional organization, multiprocessing and alternative architectures.
Prereqs: CS 1120
CS 2040 (s) Special Topics (1-16 credits, max 99)
Credit arranged
CS 2100 Programming Languages (3 credits)
Major features of good programming languages, with primary emphasis on language features and their role in writing good software; programming language design alternatives; various types of languages, including procedure, data-flow, functional, and object-oriented languages.
Prereqs: CS 1121
CS 2120 Practical Python (3 credits)
This course is an introduction to Python programming fundamentals. It will cover the basics of Python, good algorithm design, and development. Topics include Python types, data structures, and objects. It will include hands-on programming in a variety of applications of Python from multiple application areas. Major general-purpose Python modules including numeric and graphing modules will be explored. Typically Offered: Varies.
Prereqs: MATH 1143 or equivalent
CS 2230 System Software (3 credits)
Programming productivity tools such as make. Debugging tools. Linking and loading. Shell programming and scripting languages. Process management and interprocess communication. Exception handling. Network concepts and network programming.
Prereqs: CS 1121
CS 2240 Computer Operating Systems (3 credits)
Overview of operating systems, operating system principles, concurrency, scheduling and dispatch, memory management, introduction to net-centric computing, OS security. Process management. Concurrent programming using threads.
Coreqs: CS 2230
CS 2980 (s) Internship (1-16 credits, max 99)
Credit arranged Graded Pass/Fail.
CS 2990 (s) Directed Study (1-16 credits, max 99)
Credit arranged
CS 3185 Theory of Computation (3 credits)
Cross-listed with MATH 3850
Mathematical models of computation, including finite automata and Turing machines. Typically Offered: Fall.
CS 3195 Analysis of Algorithms (3 credits)
Cross-listed with MATH 3950
Measures of efficiency; standard methods and examples in the design, implementation, and analysis of algorithms. Typically Offered: Spring.
CS 3360 Introduction to Information Assurance (3 credits)
Introduces the confidentiality, availability and integrity goals of information systems; resistance, recognition and response categories of assurance. Focus on computer security and survivability, including cryptography, network security, general purpose operating system security and dependability and special purpose systems for high assurance security and dependability.
Prereqs: CS 2240
CS 3383 Software Engineering (4 credits)
Current topics in development of software systems; software life cycle model, requirements definition, requirements analysis, software specification, software architectural design, engineering discipline in software development, software measurement, user interface design, legal and ethical issues in software product development. Projects are developed to demonstrate application of concepts. Typically Offered: Fall and Spring.
Prereqs: A grade of C or better in CS 2240 and CS 2230, and a grade of C or better in either CS 2100 or CYB 2200.
CS 3401 Computer Graphics (3 credits)
Use of the computer to define, store, manipulate, and display 2D and 3D objects; 2D curvefitting and 3D surface development.
Prereqs: CS 1121 and MATH 3300 Cooperative: open to WSU degree-seeking students.
CS 3411 Introduction to Computer Game Development (3 credits)
An introduction to data structures, algorithms, and programming techniques useful in the development of computer games. Topics including 2D graphics, sound programming, user interfaces, game genres, computerization of classic board games and simulation games.
CS 3551 Introduction to Robotics (3 credits)
This introductory course studies the fundamentals of robotics/mechatronics systems and their programming. We examine the entire robotic stack (Management and Control Software, PLC Controllers, Micro Controllers, Motors/Actuators, Sensors and Safety) and how software is used for each level. Several types of robots (small autonomous robots, 6 DOF robot arms) are programmed using Python and ROS2. The use of feedback in robotic systems from sensor inputs is taught, and students will use simple camera systems for robotic vision. Typically Offered: Fall and Spring.
CS 3600 Database Systems (4 credits)
Study of database design and implementation; comparison of basic models (entity-relationship, hierarchical, network, relational); study of query languages; discussion of issues of integrity, security, dependencies, and normal forms. Typically Offered: Fall and Spring.
CS 3980 (s) Computer Science Cooperative Internship (1-3 credits, max 3)
Supervised internship in professional computer science settings, integrating academic study with work experience; requires formal plan of activities before co-op assignment and final written report evaluated by on-campus faculty members. Graded Pass/Fail.
Prereqs: Permission Cooperative: open to WSU degree-seeking students.
CS 4000 (s) Seminar (1-16 credits, max arranged)
Credit arranged. Technical topics, employment practices, interviewing, and current research topics. One lecture a week. Graded Pass/Fail. Typically Offered: Fall and Spring.
Prereqs: Senior standing in CS
CS 4010 Contemporary Issues in Computer Science (1 credit)
Ethical, legal, social, and intellectual property issues; current research topics; and other issues of importance to the professional computer scientist. Graded Pass/Fail. Typically Offered: Fall and Spring.
Prereqs: Senior standing in CS
CS 4040 (s) Special Topics (1-16 credits, max 99)
Credit arranged
CS 4145 Compiler Design (4 credits)
Algorithms used by the following system software: assemblers, macro-processors, interpreters, and compilers; compiler design options and code optimization; all concepts implemented in major programming assignments.
CS 4200 Data Communication Systems (3 credits)
Joint-listed with CS 5200
Concept and terminology of data communications, equipment, protocols (including ISO/OSI and TCP/IP), architectures; transmission alternatives, regulatory issues and network management. Additional projects/assignments required for graduate credit.
CS 4211 Parallel Programming (3 credits)
Joint-listed with CS 5211
Analysis, mapping, and the application of parallel programming software to high-performance systems; the principles of spatial- and temporal-locality of data memory hierarchies in performance tuning; architectural considerations in the design and implementation of a parallel program; the tradeoff between threaded (shared memory) and message-passing (distributed memory) programming styles and performance. Additional projects/assignments required for graduate credit. Recommended Preparation: Proficiency in programming using a modern language such as C or C++.
Prereqs: CS 3195
CS 4241 Advanced Operating Systems (3 credits)
Joint-listed with CS 5241
Principles of contemporary operating systems for network and distributed computer systems; sequential processes, scheduling, process synchronization, device management, file systems, memory management, and protection and security. Additional work required for graduate credit. Typically Offered: Spring (Even Years).
Prereqs: CS 2240
CS 4310 (s) SFS Professional Develop (3 credits, max 99)
Joint-listed with CS 5931
This course is reserved for CyberCorps(R) Scholarship for Service program participants. Typically Offered: Fall and Spring.
Prereqs: Instructor Permission
CS 4380 Network Security (3 credits)
Joint-listed with CS 5380
Practical topics in network security; policy and mechanism, malicious code; intrusion detection, prevention, response; cryptographic techniques for privacy and integrity; emphasis on trade-offs between risk of misuse, cost of prevention, and societal issues; concepts implemented in programming assignments. Additional projects/assignments required for graduate credit. Recommended Preparation: Knowledge of C or C++.
Prereqs: CS 3360 Cooperative: open to WSU degree-seeking students.
CS 4390 Applied Security Concepts (3 credits)
Joint-listed with CS 5390
Hands-on approach to computer security with emphasis on developing practical knowledge of how cyber attacks work and how to defend against them. Detailed exploration of attacks such as buffer overruns, string attacks, worms, trojan horses, and denial-of-service attacks, and development of defenses against them. Additional work required for graduate credit. Recommended preparation: Good knowledge of C, operating system concepts and Unix.
Prereqs: CS 3360 or Permission
CS 4440 Supervisory Control and Critical Infrastructure Systems (3 credits)
Cross-listed with ECE 4440
Joint-listed with CS 5440, ECE 5440
Principles of network-based distributed real-time control and critical infrastructure systems. Integration of dedicated control protocols with wide area networks (e. g. the Internet). Issues of reliability, cost, and security. Application to selected industries, such as electric power distribution and waste and water management. Recommended preparation: ECE 3400, CS 2240, ME 3130, CE 3300, or CE 3720. Typically Offered: Spring.
Prereqs: Senior or Graduate standing in the College of Engineering
CS 4441 Multi-User Games and Virtual Environments (3 credits)
Joint-listed with CS 5441
Software design and programming issues involved in constructing multi-user computer games and virtual environments, incorporating networking and 3D graphics. Additional projects and assignments required for graduate credit.
CS 4470 Digital Forensics (3 credits)
Cross-listed with CYB 4200
Joint-listed with CS 5470, CYB 5200
This course covers modern procedures, techniques, and best practices for digital forensic data acquisition, analysis, and case building. Covered topics and knowledge areas include (a) Applicable laws, policies, rules, procedures and best practices, and selected digital forensics techniques and tools (DFS); (b) Processes, techniques, tools, and best practices for static digital forensic data acquisition, analysis, and reporting from different host systems (HOF) and raw media (MEF). At the end of this course, students should have the knowledge, skills, and abilities to be able to appropriately prepare, perform, and record digital forensic investigation tasks on a selected set of media and hosts, of varied types. This including knowledge, skills, and abilities to: (1) Identify and describe applicable laws, policies, procedures, and static acquisition and analysis techniques and best practices for digital forensic investigations; (2) Identify the appropriate tools for a given forensic task on a given type of media, host, or image; and (3) Select and successfully use a variety of digital forensic tools for acquiring, analyzing, and recording case information. Hands-on and/or laboratory work is an essential component in this course. Significant additional work and performance required for graduate-level credit. Typically Offered: Fall.
Prereqs: CYB 3100
CS 4501 Advanced Computer Architecture (3 credits)
Cross-listed with ECE 4410
Joint-listed with CS 5501, ECE 5410
Principles and alternatives in instruction set design; processor implementation techniques, pipelining, parallel processors, memory hierarchy, and input/output; measurement of performance and cost/performance trade-off. Additional work required for graduate credit. Typically Offered: Fall.
CS 4502 Real-Time Operating Systems (3 credits)
Joint-listed with CS 5502
Topics of interest in the implementation of Real-Time Operating Systems, especially as applicable to embedded systems, including a relevant hardware review, interrupts and interrupt handling, real-time scheduling principles and implementation, latency, task management, shared data and synchronization, timers, message passing, tradeoffs between memory space and speed. Students will build a simple but relatively complete real-time operating system over the course of the semester. Additional projects and assignments required for graduate credit. Typically Offered: Spring.
Prereqs: CS 2240
CS 4543 Embedded Systems (3 credits)
Joint-listed with CS 5543
Interfacing to an embedded system processor. Development of the processor's hardware-software interface. Application software development. Use of C and assembly language in device driver design, monitor-debugger, and real-time kernel. Regular laboratory assignments. Additional work required for graduate credit. Typically Offered: Fall.
Prereqs: CS 1550 or equivalent
CS 4553 Robotic Systems Engineering I (3 credits)
Cross-listed with ME 4590
Joint-listed with CS 5553, ME 5590
Topics to be covered include principles of distributed systems control, interfacing and signal conditioning of sensors and actuators, data acquisition and signal processing, microprocessor-based control, physical modeling, and hardware and software simulation for model validation and control. Typically Offered: Fall and Spring.
Prereqs: Instructor Permission
CS 4554 Robotic Systems Engineering II (3 credits)
Joint-listed with CS 5554
Topics to be covered include simulation of mixed environment robotic systems for model validation and control, interfacing and signal conditioning of sensors and actuators, and data acquisition and signal processing. Software architectures utilizing the ROS (Robotic Operating System) will be implemented and demonstrated on the appropriate physical robots and for associated remote computer-based sensors during the course. Typically Offered: Fall and Spring.
Prereqs: Instructor permission
CS 4556 PLC Programming for Automation (3 credits)
Cross-listed with ENGR 4660
Joint-listed with CS 5556, ENGR 5660
This course covers the theory and practice of utilizing Programmable Logic Controllers used in industrial automation. It will provide background in Boolean logic and its application in combinational and sequential logic. The course will then go over analog and digital input/output such as light sensors, switches, motors, relays, pulse-width modulation, encoders and how they relate to PLCs. Computer networking and the Modbus communications protocol and security issues will be examined. Additional projects/assignments required for graduate credit. Typically Offered: Fall.
CS 4602 Database Management Systems Design (3 credits)
Joint-listed with CS 5602
Theory, analysis and implementation of database architecture, security, performance, query optimization, recovery and concurrency control, reliability, integrity, commit protocols, distributed processing, deadlock detection and management. Additional projects/assignments required for graduate credits.
Prereqs: CS 3600
CS 4615 Computational Biology: Sequence Analysis (3 credits)
Joint-listed with CS 5615
Design and analyze algorithms that address the computational problems posed by biological sequence data, such as DNA or protein sequences. Topics may include comparing sequences (from genes to genomes), database searching, multiple sequence alignment, phylogenetic inferencing, gene discovery and annotation, and genome assembly. Additional class presentation and/or paper required for graduate credit.
Prereqs: Knowledge of high level programming language, basic probability theory, basic molecular biology, or Permission
CS 4621 Data Science (3 credits)
Joint-listed with CS 5621
Data science is advancing the conduct of science in individual and collaborative works. Data science combines aspects of data management, library science, computer science, and physical science using supporting cyberinfrastructure and information technology. Key methodologies in application areas based on real research experience are taught to build a skill-set that enables students to handle each stage in a data life cycle, from data collection, analysis, archiving, to data discovery, access and reuse. Additional work required for graduate credit.
Prereqs: MATH 3300 or Permission
CS 4622 Applied Data Science with Python (3 credits)
Joint-listed with CS 5622
The course introduces students to tools and libraries that are commonly used for managing the various phases in the life cycle of data science projects. The course begins with a review of the fundamentals of Python programming. The data engineering theme presents techniques for data collection, exploration, and visualization. Model engineering pipelines are studied next, including topics related to model design, selection, and evaluation for image processing, natural language processing, and time series analysis. The course theme on Data Science Operations (DSOps) encompasses techniques for model serving, performance monitoring, diagnosis, and reproducibility of projects deployed in production. Throughout the course, students will gain hands-on experience with various Python libraries for data science workflow management. Additional work is required for graduate credit. Typically Offered: Fall.
Prereqs: CS 2120 or Instructor Permission
CS 4625 Semantic Web and Open Data (3 credits)
Joint-listed with CS 5625
The Semantic Web extends the core principles of the World Wide Web to make the meaning of data machine-readable. This course covers the technological framework and associated functionalities enabled by the Semantic Web and Linked Open Data that provide a space for large scale data integration, reasoning and analysis. In this course students will learn an ability to understand and describe the fundamental concepts in Semantic Web, such as ontology, RDF, OWL, logic reasoning, ontology engineering, knowledge graph, Linked Data, SPARQL, Open Data, as well as the inter-relationships among those concepts; an ability to design and implement domain-specific solutions for Big Data problems using concepts such as ontology engineering, data querying, analysis, and transformation, and output generation; an ability to describe and apply ethical concepts such as privacy, intellectual property, and responsibility as they relate to data analysis and the Semantic Web. Students will also develop leadership and teamwork abilities through group projects. Additional work required for graduate credit.
CS 4670 Advanced PLC Programming (3 credits)
Cross-listed with ENGR 4670
Joint-listed with CS 5670, ENGR 5670
This course covers advanced theory and practice of utilizing Programmable Logic Controllers (PLC) used in industrial automation. This course aims at introducing students to more advanced PLC programming topics such as motor control, basic circuitry design, industrial safety, fault handling, Supervisory Control and Data Acquisition (SCADA) systems, analog device programming, proportional control, and other topics encountered in today’s automation world. Additional projects/assignments are required for graduate credit. Typically Offered: Spring.
CS 4701 Artificial Intelligence (3 credits)
Joint-listed with CS 5701
Concepts and techniques involved in artificial intelligence, Lisp, goal-directed searching, history trees, inductive and deductive reasoning, natural language processing, and learning. Extra term paper required for graduate credit. Typically Offered: Summer and Varies.
Prereqs: CS 2100
CS 4712 Machine Learning (3 credits)
Joint-listed with CS 5712
Analysis and implementation of classic machine learning algorithms including neural networks, deep learning networks, principle component analysis, decision trees, support vector machines, clustering, reinforcement learning, ensemble learning, K-means, self-organizing maps and probabilistic learning such as Markov Chain Monte Carlo and Expectation Maximization algorithms. Techniques of pre-processing data, training, testing, and validating will be discussed along with statistical measures commonly used and pitfalls commonly encountered. Additional work required for graduate credit.
Prereqs: CS 2100
CS 4715 Deep Learning (3 credits)
Joint-listed with CS 5715
Deep Learning is enabling many rapid technological advances across multiple science disciplines, from automated speech recognition through medical image analysis and to autonomous robots and vehicles. This course will cover deep learning topics on gradient decent (GD), cross-validation, regularization, deep feedforward neural networks (NNs), convolutional NNs (CNNs), recurrent NNs (RNNs), deep architectures, transfer learning, and multitask learning. In this course students will learn to understand and describe concepts and implementations of deep forward networks, regularization, CNNs, RNNs, and transfer learning; apply CNNs and RNNs for modeling, analyzing, and solving real-world problems; select and apply adequate or best-fit toolboxes to train, tune, and test a deep neural network. Students will also gain an ability to successfully communicate, collaborate, and lead within a project group setting. Additional work required for graduate credit. Typically Offered: Fall.
Prereqs: (CS 1121 or MATH 3300) and (STAT 3010 or STAT 2510)
CS 4718 (s) Convex Optimization (3 credits)
Joint-listed with CS 5718
Optimization is one of the major components in modeling and solving problems in modern data analysis, machine learning, automatic control systems, signal processing, computer vision and image analysis, etc. Convex optimization is the foundation of optimization and introduces efficient and reliable approaches to solve problems. This course aims to build students solid background in theories and algorithms of optimization by introducing the following topics: 1) convex sets and functions, 2) convex optimization problems, 3) duality, 4) unconstrained and constrained minimization, and 5) interior-point methods. Additional projects/assignments are required for graduate credit. Typically Offered: Fall.
Prereqs: MATH 3300, MATH 1170, and CS 1121 or equivalent knowledge
CS 4727 Adversarial Machine Learning (3 credits)
Joint-listed with CS 5727
The course introduces students to adversarial attacks and defenses against machine learning models. The particular focus is on adversarial examples in deep learning models, due to their prevalence in modern machine learning applications. Covered topics include evasion attacks against white-box and black-box machine learning models, data poisoning attacks, privacy attacks, defense strategies against common adversarial attacks, generative adversarial networks, and robust machine learning models. The course also provides an overview of adversarial attacks against machine learning models used in cybersecurity applications. Additional work is required for graduate credit. Typically Offered: Spring.
Prereqs: Instructor Permission Required
CS 4731 Evolutionary Computation (3 credits)
Joint-listed with CS 5731
Solving computation problems by "growing" solutions; simulates natural evolution using analogues of mutation, crossover, and other generic transformations on representations of potential solutions; standard EC techniques such as genetic algorithms and evolutionary programming, mathematical explanations of why they work, and a survey of some applications; the focus is on solving real-world problems using projects. Graduate-level research and possible paper or presentation required for graduate credit.
Prereqs: CS 2100
CS 4771 Python for Machine Learning (3 credits)
Joint-listed with CS 5771
Python is widely used for machine learning and data science. This course introduces students to current approaches and techniques for finding solutions to data science problems using machine learning with Python. Topics include classification, regression, clustering, ensemble learning, and deep learning. The course offers hands-on experiences with machine learning techniques using Python-based libraries and also modern tools used by computer and data scientists such as Jupyter Notebook. In this course, students will learn an ability to understand and describe the fundamental concepts and techniques of machine learning and their Python-based implementations; an ability to design, implement, and evaluate Python-based machine learning solutions for problems such as data classification and clustering. Students will also develop leadership and teamwork abilities through group discussions and projects. Additional work required for graduate credit. Typically Offered: Spring.
Prereqs: (CS 1121 or MATH 3300) and (STAT 3010 or STAT 2510)
CS 4800 CS Senior Capstone Design I (3 credits)
Capstone design sequence for computer science majors. Formal development techniques applied to definition, design, coding, testing, and documentation of a large software project. Projects are customer-specified, includes real-world design constraints, and usually encompasses two semesters. Students work in teams. Significant lab work required.
CS 4810 CS Senior Capstone Design II (3 credits)
General Education: Capstone Experience
Continuation of CS 4800. Application of formal design techniques to development of a large computer science project performed by students working in teams. Significant lab work required.
Prereqs: CS 4800
CS 4885 Machine Vision (3 credits)
This course will teach students state-of-the-art practices, tools and methodologies to the process of generating a symbolic description of a given environment from an image. Lectures will describe the mathematics of image formation, motion vision, recovering and geolocating shapes within images. Use of local processing power and use of cloud based algorithms will be implemented. Applications for robotics, autonomous vehicles and machine interaction are discussed. Completion of MATH 3300 is strongly recommended. Typically Offered: Fall.
Prereqs: Instructor Permission
CS 4990 (s) Directed Study (1-16 credits, max 99)
Credit arranged
CS 5000 Master's Research and Thesis (1-16 credits, max 99)
Credit arranged
CS 5007 CS and Cyber Research Methods (3 credits)
Cross-listed with CYB 5070
This course introduces graduate students to approaches, methods, techniques, tools, and legal and ethical rules and regulations for planning, designing, performing, evaluating, and reporting computer science and cybersecurity research and results. In this course, students should gain the needed knowledge and skills to be able to: (1) identify appropriate publication venues and adequately perform related literature searches; (2) critically read and interpret related research questions, methods, experiments, and results; (3) develop a scientific research question; (4) develop a research plan with corresponding research hypothesis and hypothesis testing experiments; (5) analyze research experiment results; (6) present research and results to a variety of audiences in written and oral form; (7) identify applicable laws, such as human subjects research and conflicts of interest regulations, and ethical and non-ethical behaviors in the conduct of research. Typically Offered: Fall.
CS 5010 (s) Seminar (1-16 credits, max 99)
Credit arranged
CS 5020 (s) Directed Study (1-16 credits, max 99)
Credit arranged
CS 5040 (s) Special Topics (1-16 credits, max 99)
Credit arranged
CS 5050 (s) Professional Development (1-16 credits, max 99)
Credit arranged
CS 5200 Data Communication Systems (3 credits)
Joint-listed with CS 4200
Concept and terminology of data communications, equipment, protocols (including ISO/OSI and TCP/IP), architectures; transmission alternatives, regulatory issues and network management. Additional projects/assignments required for graduate credit.
CS 5211 Parallel Programming (3 credits)
Joint-listed with CS 4211
Analysis, mapping, and the application of parallel programming software to high-performance systems; the principles of spatial- and temporal-locality of data memory hierarchies in performance tuning; architectural considerations in the design and implementation of a parallel program; the tradeoff between threaded (shared memory) and message-passing (distributed memory) programming styles and performance. Additional projects/assignments required for graduate credit. Recommended Preparation: Proficiency in programming using a modern language such as C or C++.
CS 5241 Advanced Operating Systems (3 credits)
Joint-listed with CS 4241
Principles of contemporary operating systems for network and distributed computer systems; sequential processes, scheduling, process synchronization, device management, file systems, memory management, and protection and security. Additional work required for graduate credit. Typically Offered: Spring (Even Years).
CS 5360 Advanced Information Assurance Concepts (3 credits)
Cross-listed with CYB 5360
This course covers theory, approaches, techniques, and best practices for (a) Secure and resilient system and network architectures (IAA); (b) Cybersecurity compliance (IAC); (c) Cybersecurity standards (IAS); and (d) Security risk analysis (SRA). At the end of this course, given examples of cyber system models and scenarios, architectures, and implementations of different types and of varied complexity, students should have the knowledge, skills, and abilities to be able to: (1) understand organizational and/or cyber-system requirements, architecture, design, and implementation; (2) describe and analyze the system with appropriate detail; (3) develop a threat model; (4) identify potential vulnerabilities; (5) identify appropriate risk analysis processes and standards; (6) perform risk analysis and assessment; (7) identify, evaluate, design, apply, and document security and resiliency enhancements and risk removal or mitigation approaches, tasks, and security controls. Such approaches, tasks, and controls including a combination of the following types: organizational, policy, technical, human factors, processes, protocols, techniques, and documents as appropriate. Typically Offered: Spring.
Prereqs: Graduate standing and instructor permission.
CS 5380 Network Security (3 credits)
Joint-listed with CS 4380
Practical topics in network security; policy and mechanism, malicious code; intrusion detection, prevention, response; cryptographic techniques for privacy and integrity; emphasis on trade-offs between risk of misuse, cost of prevention, and societal issues; concepts implemented in programming assignments. Additional projects/assignments required for graduate credit. Recommended Preparation: Knowledge of C or C++. Cooperative: open to WSU degree-seeking students.
CS 5390 Applied Security Concepts (3 credits)
Joint-listed with CS 4390
Hands-on approach to computer security with emphasis on developing practical knowledge of how cyber attacks work and how to defend against them. Detailed exploration of attacks such as buffer overruns, string attacks, worms, trojan horses, and denial-of-service attacks, and development of defenses against them. Additional work required for graduate credit. Recommended preparation: Good knowledge of C, operating system concepts and Unix.
CS 5440 Supervisory Control and Critical Infrastructure Systems (3 credits)
Cross-listed with ECE 5440
Joint-listed with CS 4440, ECE 4440
Principles of network-based distributed real-time control and critical infrastructure systems. Integration of dedicated control protocols with wide area networks (e. g. the Internet). Issues of reliability, cost, and security. Application to selected industries, such as electric power distribution and waste and water management. Recommended preparation: ECE 3400, CS 2240, ME 3130, CE 3300, or CE 3720. Typically Offered: Spring.
CS 5441 Multi-User Games and Virtual Environments (3 credits)
Joint-listed with CS 4441
Software design and programming issues involved in constructing multi-user computer games and virtual environments, incorporating networking and 3D graphics. Additional projects and assignments required for graduate credit.
CS 5470 Digital Forensics (3 credits)
Cross-listed with CYB 5200
Joint-listed with CS 4470, CYB 4200
This course covers modern procedures, techniques, and best practices for digital forensic data acquisition, analysis, and case building. Covered topics and knowledge areas include (a) Applicable laws, policies, rules, procedures and best practices, and selected digital forensics techniques and tools (DFS); (b) Processes, techniques, tools, and best practices for static digital forensic data acquisition, analysis, and reporting from different host systems (HOF) and raw media (MEF). At the end of this course, students should have the knowledge, skills, and abilities to be able to appropriately prepare, perform, and record digital forensic investigation tasks on a selected set of media and hosts, of varied types. This including knowledge, skills, and abilities to: (1) Identify and describe applicable laws, policies, procedures, and static acquisition and analysis techniques and best practices for digital forensic investigations; (2) Identify the appropriate tools for a given forensic task on a given type of media, host, or image; and (3) Select and successfully use a variety of digital forensic tools for acquiring, analyzing, and recording case information. Hands-on and/or laboratory work is an essential component in this course. Significant additional work and performance required for graduate-level credit. Typically Offered: Fall.
CS 5501 Advanced Computer Architecture (3 credits)
Cross-listed with ECE 5410
Joint-listed with CS 4501, ECE 4410
Principles and alternatives in instruction set design; processor implementation techniques, pipelining, parallel processors, memory hierarchy, and input/output; measurement of performance and cost/performance trade-off. Additional work required for graduate credit. Typically Offered: Fall.
CS 5502 Real-Time Operating Systems (3 credits)
Joint-listed with CS 4502
Topics of interest in the implementation of Real-Time Operating Systems, especially as applicable to embedded systems, including a relevant hardware review, interrupts and interrupt handling, real-time scheduling principles and implementation, latency, task management, shared data and synchronization, timers, message passing, tradeoffs between memory space and speed. Students will build a simple but relatively complete real-time operating system over the course of the semester. Additional projects and assignments required for graduate credit. Typically Offered: Spring.
CS 5543 Embedded Systems (3 credits)
Joint-listed with CS 4543
Interfacing to an embedded system processor. Development of the processor's hardware-software interface. Application software development. Use of C and assembly language in device driver design, monitor-debugger, and real-time kernel. Regular laboratory assignments. Additional work required for graduate credit. Typically Offered: Fall.
CS 5553 Robotic Systems Engineering I (3 credits)
Cross-listed with ME 5590
Joint-listed with CS 4553, ME 4590
Topics to be covered include principles of distributed systems control, interfacing and signal conditioning of sensors and actuators, data acquisition and signal processing, microprocessor-based control, physical modeling, and hardware and software simulation for model validation and control. Typically Offered: Fall and Spring.
CS 5554 Robotic Systems Engineering II (3 credits)
Joint-listed with CS 4554
Topics to be covered include simulation of mixed environment robotic systems for model validation and control, interfacing and signal conditioning of sensors and actuators, and data acquisition and signal processing. Software architectures utilizing the ROS (Robotic Operating System) will be implemented and demonstrated on the appropriate physical robots and for associated remote computer-based sensors during the course. Typically Offered: Fall and Spring.
CS 5556 PLC Programming for Automation (3 credits)
Cross-listed with ENGR 5660
Joint-listed with CS 4556, ENGR 4660
This course covers the theory and practice of utilizing Programmable Logic Controllers used in industrial automation. It will provide background in Boolean logic and its application in combinational and sequential logic. The course will then go over analog and digital input/output such as light sensors, switches, motors, relays, pulse-width modulation, encoders and how they relate to PLCs. Computer networking and the Modbus communications protocol and security issues will be examined. Additional projects/assignments required for graduate credit. Typically Offered: Fall.
CS 5602 Database Management Systems Design (3 credits)
Joint-listed with CS 4602
Theory, analysis and implementation of database architecture, security, performance, query optimization, recovery and concurrency control, reliability, integrity, commit protocols, distributed processing, deadlock detection and management. Additional projects/assignments required for graduate credits.
CS 5615 Computational Biology: Sequence Analysis (3 credits)
Joint-listed with CS 4615
Design and analyze algorithms that address the computational problems posed by biological sequence data, such as DNA or protein sequences. Topics may include comparing sequences (from genes to genomes), database searching, multiple sequence alignment, phylogenetic inferencing, gene discovery and annotation, and genome assembly. Additional class presentation and/or paper required for graduate credit.
CS 5621 Data Science (3 credits)
Joint-listed with CS 4621
Data science is advancing the conduct of science in individual and collaborative works. Data science combines aspects of data management, library science, computer science, and physical science using supporting cyberinfrastructure and information technology. Key methodologies in application areas based on real research experience are taught to build a skill-set that enables students to handle each stage in a data life cycle, from data collection, analysis, archiving, to data discovery, access and reuse. Additional work required for graduate credit.
CS 5622 Applied Data Science with Python (3 credits)
Joint-listed with CS 4622
The course introduces students to tools and libraries that are commonly used for managing the various phases in the life cycle of data science projects. The course begins with a review of the fundamentals of Python programming. The data engineering theme presents techniques for data collection, exploration, and visualization. Model engineering pipelines are studied next, including topics related to model design, selection, and evaluation for image processing, natural language processing, and time series analysis. The course theme on Data Science Operations (DSOps) encompasses techniques for model serving, performance monitoring, diagnosis, and reproducibility of projects deployed in production. Throughout the course, students will gain hands-on experience with various Python libraries for data science workflow management. Additional work is required for graduate credit. Typically Offered: Fall.
CS 5625 Semantic Web and Open Data (3 credits)
Joint-listed with CS 4625
The Semantic Web extends the core principles of the World Wide Web to make the meaning of data machine-readable. This course covers the technological framework and associated functionalities enabled by the Semantic Web and Linked Open Data that provide a space for large scale data integration, reasoning and analysis. In this course students will learn an ability to understand and describe the fundamental concepts in Semantic Web, such as ontology, RDF, OWL, logic reasoning, ontology engineering, knowledge graph, Linked Data, SPARQL, Open Data, as well as the inter-relationships among those concepts; an ability to design and implement domain-specific solutions for Big Data problems using concepts such as ontology engineering, data querying, analysis, and transformation, and output generation; an ability to describe and apply ethical concepts such as privacy, intellectual property, and responsibility as they relate to data analysis and the Semantic Web. Students will also develop leadership and teamwork abilities through group projects. Additional work required for graduate credit.
CS 5670 Advanced PLC Programming (3 credits)
Cross-listed with ENGR 5670
Joint-listed with CS 4670, ENGR 4670
This course covers advanced theory and practice of utilizing Programmable Logic Controllers (PLC) used in industrial automation. This course aims at introducing students to more advanced PLC programming topics such as motor control, basic circuitry design, industrial safety, fault handling, Supervisory Control and Data Acquisition (SCADA) systems, analog device programming, proportional control, and other topics encountered in today’s automation world. Additional projects/assignments are required for graduate credit. Typically Offered: Spring.
CS 5701 Artificial Intelligence (3 credits)
Joint-listed with CS 4701
Concepts and techniques involved in artificial intelligence, Lisp, goal-directed searching, history trees, inductive and deductive reasoning, natural language processing, and learning. Extra term paper required for graduate credit. Typically Offered: Summer and Varies.
CS 5708 Neural Network Design (3 credits)
Introduction to neural networks and problems that can be solved by their application; introduction of basic neural network architectures; learning rules are developed for training these architectures to perform useful functions; various training techniques employing the learning rules discussed and applied; neural networks used to solve pattern recognition and control system problems.
Prereqs: Permission
CS 5712 Machine Learning (3 credits)
Joint-listed with CS 4712
Analysis and implementation of classic machine learning algorithms including neural networks, deep learning networks, principle component analysis, decision trees, support vector machines, clustering, reinforcement learning, ensemble learning, K-means, self-organizing maps and probabilistic learning such as Markov Chain Monte Carlo and Expectation Maximization algorithms. Techniques of pre-processing data, training, testing, and validating will be discussed along with statistical measures commonly used and pitfalls commonly encountered. Additional work required for graduate credit.
CS 5715 Deep Learning (3 credits)
Joint-listed with CS 4715
Deep Learning is enabling many rapid technological advances across multiple science disciplines, from automated speech recognition through medical image analysis and to autonomous robots and vehicles. This course will cover deep learning topics on gradient decent (GD), cross-validation, regularization, deep feedforward neural networks (NNs), convolutional NNs (CNNs), recurrent NNs (RNNs), deep architectures, transfer learning, and multitask learning. In this course students will learn to understand and describe concepts and implementations of deep forward networks, regularization, CNNs, RNNs, and transfer learning; apply CNNs and RNNs for modeling, analyzing, and solving real-world problems; select and apply adequate or best-fit toolboxes to train, tune, and test a deep neural network. Students will also gain an ability to successfully communicate, collaborate, and lead within a project group setting. Additional work required for graduate credit. Typically Offered: Fall.
CS 5718 (s) Convex Optimization (3 credits)
Joint-listed with CS 4718
Optimization is one of the major components in modeling and solving problems in modern data analysis, machine learning, automatic control systems, signal processing, computer vision and image analysis, etc. Convex optimization is the foundation of optimization and introduces efficient and reliable approaches to solve problems. This course aims to build students solid background in theories and algorithms of optimization by introducing the following topics: 1) convex sets and functions, 2) convex optimization problems, 3) duality, 4) unconstrained and constrained minimization, and 5) interior-point methods. Additional projects/assignments are required for graduate credit. Typically Offered: Fall.
CS 5727 Adversarial Machine Learning (3 credits)
Joint-listed with CS 4727
The course introduces students to adversarial attacks and defenses against machine learning models. The particular focus is on adversarial examples in deep learning models, due to their prevalence in modern machine learning applications. Covered topics include evasion attacks against white-box and black-box machine learning models, data poisoning attacks, privacy attacks, defense strategies against common adversarial attacks, generative adversarial networks, and robust machine learning models. The course also provides an overview of adversarial attacks against machine learning models used in cybersecurity applications. Additional work is required for graduate credit. Typically Offered: Spring.
CS 5731 Evolutionary Computation (3 credits)
Joint-listed with CS 4731
Solving computation problems by "growing" solutions; simulates natural evolution using analogues of mutation, crossover, and other generic transformations on representations of potential solutions; standard EC techniques such as genetic algorithms and evolutionary programming, mathematical explanations of why they work, and a survey of some applications; the focus is on solving real-world problems using projects. Graduate-level research and possible paper or presentation required for graduate credit.
CS 5771 Python for Machine Learning (3 credits)
Joint-listed with CS 4771
Python is widely used for machine learning and data science. This course introduces students to current approaches and techniques for finding solutions to data science problems using machine learning with Python. Topics include classification, regression, clustering, ensemble learning, and deep learning. The course offers hands-on experiences with machine learning techniques using Python-based libraries and also modern tools used by computer and data scientists such as Jupyter Notebook. In this course, students will learn an ability to understand and describe the fundamental concepts and techniques of machine learning and their Python-based implementations; an ability to design, implement, and evaluate Python-based machine learning solutions for problems such as data classification and clustering. Students will also develop leadership and teamwork abilities through group discussions and projects. Additional work required for graduate credit. Typically Offered: Spring.
CS 5800 Graduate Project (1-6 credits, max 6)
Application of formal design and documentation techniques to the development of computer programming project; project selected in consultation with student's major professor.
CS 5885 Machine Vision (3 credits)
This course will teach students state-of-the-art practices, tools and methodologies to the process of generating a symbolic description of a given environment from an image. Lectures will describe the mathematics of image formation, motion vision, recovering and geolocating shapes within images. Use of local processing power and use of cloud based algorithms will be implemented. Applications for robotics, autonomous vehicles and machine interaction are discussed. Completion of MATH 3300 is strongly recommended. Typically Offered: Fall.
Prereqs: Instructor Permission
CS 5931 (s) SFS Professional Develop (3 credits, max 99)
Joint-listed with CS 4310
This course is reserved for CyberCorps(R) Scholarship for Service program participants. Typically Offered: Fall and Spring.
CS 5980 (s) Internship (1-16 credits, max 99)
Credit arranged
CS 5990 (s) Non-thesis Master’s Research (1-16 credits, max 99)
Credit arranged. Research not directly related to a thesis or dissertation. There is a limit on the number of credits in 5990 that can be included on a study plan.
Prereqs: Permission
CS 6000 Doctoral Research and Dissertation (1-45 credits, max 99)
Credit arranged
Cybersecurity
CYB 1100 Cybersecurity and Privacy (3 credits)
An introductory survey of the issues and complexity of cybersecurity and privacy in the digital age. Cybersecurity and privacy foundational concepts, case studies of cybersecurity breaches, application of cybersecurity for business, and social media and the general populace. Survey of common threats, threat actors, and responses. Survey of applicable laws.
CYB 2100 Cybersecurity Architectures and Management (3 credits)
Introduces the components in an information technology system and their roles in system operation. Teaches students how to use these components to develop plans and processes for a holistic approach to cybersecurity for an organization.
Prereqs: CYB 1100
CYB 2200 Secure Coding and Analysis (3 credits)
Describes the characteristics of secure programs and the ability to implement programs that are free from vulnerabilities. Practice evaluating software, including adding security mechanisms into software and testing software for vulnerabilities. Two lectures and one 2-hour lab per week.
Prereqs: CS 1121
CYB 3100 Cybersecurity Technical Foundations (3 credits)
Provides students with basic information about the various threats that may be present in the cyber realm and introduces architectural mitigation strategies including cryptography.
CYB 3300 Networking Fundamentals (3 credits)
Covers common network protocols, how network components interact, and how networks evolve over time. Students expand their familiarity with network vulnerabilities. Typically Offered: Fall.
CYB 3400 Network Defense (3 credits)
Covers concepts used in defending a network and the basic tools and techniques that can be taken to protect a network and communication assets from cyber threats. Provides students with knowledge and skills related to detecting and analyzing vulnerabilities and threats and taking steps to mitigate associated risks.
CYB 3500 Operating System Defense (3 credits)
This course provides fundamentals of secure operating system administration and hardening. Provides students with an understanding of the authorities, roles, and steps associated with cyber operations.
Prereqs: CYB 3100
CYB 3800 Cybersecurity Lab I (3 credits)
This hands-on laboratory class allows students to get practical experience related to the cybersecurity threats, mitigations, and scenarios they have been introduced to in other courses. This includes classic buffer overflow and SQL injection style vulnerabilities, network monitoring, as well as Windows and Linux security configurations. 6 hours of lab per week.
Prereqs: CS 2240
CYB 3810 Cybersecurity Lab II (3 credits)
This hands-on laboratory class allows students to get practical experience related to cybersecurity threats, mitigations, and scenarios they have been introduced to in other courses. This course builds on CYB 3800 by focusing on more advanced threats and mitigations. 6 hours of lab per week.
CYB 4000 Seminar (1-16 credits, max 99)
CYB 4010 Cybersecurity as a Profession (1 credit)
Ethical, legal, social, and intellectual property issues; current research topics; and other issues of importance to the professional cybersecurity researcher. Graded Pass/Fail.
Prereqs: Senior Standing in Cybersecurity
CYB 4040 (s) Special Topics (1-4 credits, max 99)
Joint-listed with CYB 5040
Credit arranged. Special topic courses in the subject are often offered to allow students to learn topics of current interest that are not covered in permanent courses in the corresponding subject. Special topic courses cover topics and have learning outcomes and required academic activities and deliverables that are specific to each course offering. Cybersecurity (CYB) special topic courses at the undergraduate level may be chosen as electives toward a Bachelor of Science (BS) in Cybersecurity (CYB), Computer Science (CS), or Computer Engineering (CE). For students in all colleges, some special topic courses may be used to complement a student’s interdisciplinary degree plan. Cybersecurity (CYB) special topic courses at the graduate level are usually used to complement the graduate study plan for students pursuing a Master’s (MS) or Doctoral degree (PhD) in Cybersecurity (CYB) or Computer Science (CS). They may also be used to complement graduate study plans for students in the College of Engineering or graduate students in other colleges pursuing a multidisciplinary graduate degree. Significant additional work and performance required for graduate-level credit. Typically Offered: Fall and Spring.
Prereqs: Junior standing or graduate standing or instructor permission
CYB 4200 Digital Forensics (3 credits)
Cross-listed with CS 4470
Joint-listed with CS 5470, CYB 5200
This course covers modern procedures, techniques, and best practices for digital forensic data acquisition, analysis, and case building. Covered topics and knowledge areas include (a) Applicable laws, policies, rules, procedures and best practices, and selected digital forensics techniques and tools (DFS); (b) Processes, techniques, tools, and best practices for static digital forensic data acquisition, analysis, and reporting from different host systems (HOF) and raw media (MEF). At the end of this course, students should have the knowledge, skills, and abilities to be able to appropriately prepare, perform, and record digital forensic investigation tasks on a selected set of media and hosts, of varied types. This including knowledge, skills, and abilities to: (1) Identify and describe applicable laws, policies, procedures, and static acquisition and analysis techniques and best practices for digital forensic investigations; (2) Identify the appropriate tools for a given forensic task on a given type of media, host, or image; and (3) Select and successfully use a variety of digital forensic tools for acquiring, analyzing, and recording case information. Hands-on and/or laboratory work is an essential component in this course. Significant additional work and performance required for graduate-level credit. Typically Offered: Fall.
Prereqs: CYB 3100
CYB 4400 Software Vulnerability Analysis (3 credits)
Provides students with a thorough understanding of system vulnerabilities, including what they are, how they can be found/identified, the different types of vulnerabilities, how to determine the root cause of a vulnerability, and how to mitigate their effect on an operational system. Provides students with the ability to describe why software assurance is important to the development of secure systems and describes the methods and techniques that lead to secure software.
CYB 4442 IoT and CPS Security (3 credits)
Cross-listed with ECE 4442, ECE 5442
Joint-listed with CYB 5442
Internet of Things (IoT)/cyber-physical systems (CPS), and emerging applications of IoT/CPS systems. Covered topics and knowledge areas include systematic understanding of architecture and security analysis of the IoT/CPS systems; several network and data protocols; vulnerabilities and malware propagation and control in IoT/CPS systems; industrial control systems (ICS)/supervisory control and data acquisition (SCADA) security; IoT/CPS firmware analysis; zero trust model for IoT/CPS security; and medical IoT security. Additional assignments are required for graduate credit. Typically Offered: Spring.
Prereqs: CYB 3300
CYB 4800 Cybersecurity Senior Capstone Design I (3 credits)
Capstone design sequence for cybersecurity science majors. Formal development techniques applied to definition, design, coding, testing, and documentation of a comprehensive cybersecurity. Projects are customer-specified, include real-world design constraints, and usually encompass two semesters. Students work in teams. Significant lab work required.
CYB 4810 Cybersecurity Senior Capstone Design II (3 credits)
General Education: Capstone Experience
Continuation of CYB 4800. Application of formal design techniques to development of a large cybersecurity science project performed by students working in teams. Significant lab work required. Typically Offered: Fall and Spring.
CYB 4980 (s) Cybersecurity Internship (1-3 credits, max 99)
This course may be used to gain academic credit for knowledge, skills, and abilities acquired, enhanced, or refined through internal or external internships. Internship objectives and expected outcomes under this subject must be related to the subject area. Internships must include the following documents and/or deliverables: (a) internship proposal and plan including objectives, weekly hours, summary of planned tasks, or an external employer offer letter, plus a short description of how the internship supports the students’ academic and career goals; (b) status update meetings and progress reports; (c) preparation and writing of an end of internship deliverable; and (d) enrollment in the University of Idaho's Internship Practicum Liability (details of this may be found on the UI Risk Management website). Examples of possible end of internship deliverables are: (1) an internship objectives' achievement assessment and lessons learned report and/or presentation, (2) an academic manuscript or portion thereof, (3) well-documented source code. The frequency and format of the intermediate and/or final deliverables must be agreed upon between the student and the internship advisor and/or coordinator before the internship begins. Objectives and learning outcomes will be assessed using a qualitative assessment method based on the quality and timeliness of the agreed upon deliverables. All internships, whether external or internal and paid or unpaid, require the approval of the student’s advisor, the corresponding internship coordinator, and the University of Idaho's Risk Management office before internship start. Off-campus internships for international students also require the prior approval of the University of Idaho’s International Programs Office (UI-IPO) and must be related to the student’s area of study and support a student’s academic and career objectives and pursued degree(s). Typically Offered: Fall and Spring.
CYB 4990 (s) Directed Study (1-4 credits, max 99)
Credit arranged. Directed study courses in the subject are offered to allow students to earn academic credit for independent but guided study. Directed study courses are often offered to support students in the acquisition of prerequisite knowledge and skills or in the acquisition of knowledge and skills not usually covered by permanent courses. Directed study courses have course objectives, topics, learning outcomes, and required academic activities and deliverables that are specific to each course and section offering.
Prereqs: Instructor permission
CYB 5000 (s) Master's Research & Thesis (1-10 credits, max 99)
This course allows graduate students to earn academic credit for performing research, design, development, verification and validation, documentation, writing, and academic communication activities toward the thesis degree requirement when pursuing a Master of Science (MS) in Cybersecurity (CYB) degree with thesis option. A maximum of ten (10) credits of Master's Research and Thesis may be used toward a Master’s degree graduate study plan. A minimum grade of B is required for all credits within a graduate study plan. Students must be registered for a minimum of one (1) credit in each and all terms in which they are performing graduate research and thesis activities. Typically Offered: Fall and Spring.
CYB 5010 (s) Cybersecurity Graduate Seminar (1-3 credits, max 6)
This course enables colleges and departments to offer seminar-style courses in any given term and at the graduate level. Seminar-style courses in the subject are offered to allow students to learn about and discuss topics of importance to the pursued degree. Different seminar courses cover topics and have learning outcomes and required academic activities that are specific to each course offering. Examples of topics covered and discussed in seminar-style courses are current research, discipline’s best practices, history and future of the discipline, professional practice, professional communication, ethical issues, and technological and societal implications of the discipline and its practice. Graduate-level seminar-style course offerings usually require students to read, prepare, discuss, lead, and present, orally and/or in writing on the course offering topics. Typically Offered: Fall and Spring.
Prereqs: Graduate standing
CYB 5020 (s) Graduate Directed Study (1-4 credits, max 99)
Credit arranged. Graduate-level directed study courses in the subject are offered to allow students to earn academic credit for independent but guided study. Graduate-level directed study courses are often offered to support students in (a) the acquisition of needed prerequisite knowledge and skills; (b) the acquisition of knowledge and skills not usually covered by permanent courses; or (c) the conduct of research not directly related to a graduate project, thesis, or dissertation. Directed study courses have course objectives, topics, learning outcomes, and required academic activities and deliverables that are specific to each course and section offering.
Prereqs: Instructor permission
CYB 5040 (s) Special Topics (1-4 credits, max 99)
Joint-listed with CYB 4040
Credit arranged. Special topic courses in the subject are often offered to allow students to learn topics of current interest that are not covered in permanent courses in the corresponding subject. Special topic courses cover topics and have learning outcomes and required academic activities and deliverables that are specific to each course offering. Cybersecurity (CYB) special topic courses at the undergraduate level may be chosen as electives toward a Bachelor of Science (BS) in Cybersecurity (CYB), Computer Science (CS), or Computer Engineering (CE). For students in all colleges, some special topic courses may be used to complement a student’s interdisciplinary degree plan. Cybersecurity (CYB) special topic courses at the graduate level are usually used to complement the graduate study plan for students pursuing a Master’s (MS) or Doctoral degree (PhD) in Cybersecurity (CYB) or Computer Science (CS). They may also be used to complement graduate study plans for students in the College of Engineering or graduate students in other colleges pursuing a multidisciplinary graduate degree. Significant additional work and performance required for graduate-level credit. Typically Offered: Fall and Spring.
CYB 5070 CS and Cyber Research Methods (3 credits)
Cross-listed with CS 5007
This course introduces graduate students to approaches, methods, techniques, tools, and legal and ethical rules and regulations for planning, designing, performing, evaluating, and reporting computer science and cybersecurity research and results. In this course, students should gain the needed knowledge and skills to be able to: (1) identify appropriate publication venues and adequately perform related literature searches; (2) critically read and interpret related research questions, methods, experiments, and results; (3) develop a scientific research question; (4) develop a research plan with corresponding research hypothesis and hypothesis testing experiments; (5) analyze research experiment results; (6) present research and results to a variety of audiences in written and oral form; (7) identify applicable laws, such as human subjects research and conflicts of interest regulations, and ethical and non-ethical behaviors in the conduct of research. Typically Offered: Fall.
CYB 5200 Digital Forensics (3 credits)
Cross-listed with CS 5470
Joint-listed with CS 4470, CYB 4200
This course covers modern procedures, techniques, and best practices for digital forensic data acquisition, analysis, and case building. Covered topics and knowledge areas include (a) Applicable laws, policies, rules, procedures and best practices, and selected digital forensics techniques and tools (DFS); (b) Processes, techniques, tools, and best practices for static digital forensic data acquisition, analysis, and reporting from different host systems (HOF) and raw media (MEF). At the end of this course, students should have the knowledge, skills, and abilities to be able to appropriately prepare, perform, and record digital forensic investigation tasks on a selected set of media and hosts, of varied types. This including knowledge, skills, and abilities to: (1) Identify and describe applicable laws, policies, procedures, and static acquisition and analysis techniques and best practices for digital forensic investigations; (2) Identify the appropriate tools for a given forensic task on a given type of media, host, or image; and (3) Select and successfully use a variety of digital forensic tools for acquiring, analyzing, and recording case information. Hands-on and/or laboratory work is an essential component in this course. Significant additional work and performance required for graduate-level credit. Typically Offered: Fall.
CYB 5360 Advanced Information Assurance Concepts (3 credits)
Cross-listed with CS 5360
This course covers theory, approaches, techniques, and best practices for (a) Secure and resilient system and network architectures (IAA); (b) Cybersecurity compliance (IAC); (c) Cybersecurity standards (IAS); and (d) Security risk analysis (SRA). At the end of this course, given examples of cyber system models and scenarios, architectures, and implementations of different types and of varied complexity, students should have the knowledge, skills, and abilities to be able to: (1) understand organizational and/or cyber-system requirements, architecture, design, and implementation; (2) describe and analyze the system with appropriate detail; (3) develop a threat model; (4) identify potential vulnerabilities; (5) identify appropriate risk analysis processes and standards; (6) perform risk analysis and assessment; (7) identify, evaluate, design, apply, and document security and resiliency enhancements and risk removal or mitigation approaches, tasks, and security controls. Such approaches, tasks, and controls including a combination of the following types: organizational, policy, technical, human factors, processes, protocols, techniques, and documents as appropriate. Typically Offered: Spring.
Prereqs: Graduate standing and instructor permission.
CYB 5400 Advanced Networking & Security (3 credits)
This course covers the following topics and knowledge areas: (a) Advanced networking technology, algorithms, and protocols, and their cybersecurity implications (ANT), and (b) Wireless and mobile device algorithms, technologies, and protocols, and their cybersecurity implications (MOT). At the end of this course, students should have the knowledge, skills, and abilities to be able to (1) identify, classify, and describe, with detail, key modern networking and security algorithms, technologies, and protocols at and across several layers of the networking stack and for wired and wireless media; (2) identify, classify, and describe advanced approaches, technologies, and protocols for secure and private digital networking within an enterprise and across federated domains, this including the IT, IoT, and mobile device realms. Several advanced and/or state-of-the-art networking and security technologies, algorithms, and protocols will be investigated in great depth and include lab-based hands-on implementations, investigations, and/or experiments. Typically Offered: Fall.
Prereqs: Graduate standing and Instructor permission
CYB 5442 IoT and CPS Security (3 credits)
Cross-listed with ECE 5442
Joint-listed with CYB 4442, ECE 4442
Internet of Things (IoT)/cyber-physical systems (CPS), and emerging applications of IoT/CPS systems. Covered topics and knowledge areas include systematic understanding of architecture and security analysis of the IoT/CPS systems; several network and data protocols; vulnerabilities and malware propagation and control in IoT/CPS systems; industrial control systems (ICS)/supervisory control and data acquisition (SCADA) security; IoT/CPS firmware analysis; zero trust model for IoT/CPS security; and medical IoT security. Additional assignments are required for graduate credit. Typically Offered: Spring.
CYB 5990 (s) Non-thesis Master's Research (1-6 credits, max 30)
This course allows graduate students to earn academic credit for performing research, design, development, verification and validation, documentation, writing, and academic communication activities toward the non-thesis research or graduate project degree requirement when pursuing a Master of Science (MS) in Cybersecurity (CYB) degree with non-thesis option. A maximum of six (6) credits of CYB 5990 may be used toward a master’s degree study plan. A minimum grade of B is required for all credits within a graduate study plan. Students must be registered for a minimum of one (1) credit in each and all terms in which they are performing non-thesis graduate research or project activities. Typically Offered: Fall and Spring.
Prereqs: Graduate standing and Instructor permission
CYB 6000 Doctoral Research and Dissertation (1-45 credits, max 99)
Credit arranged Typically Offered: Varies. D. standing in the Cybersecurity PhD program.
Coreqs: Ph