Take Action


Contact Us


Contact the Department
Phone: (208) 885-6592
Toll-free: 88-88-UIDAHO
Fax: (208) 885-9052
Email: csinfo@uidaho.edu

Janssen Engineering (JEB)
Room 236

875 Perimeter Drive MS 1010
Moscow, ID 83844-1010

Idaho Falls

Contact Debbie Caudle
Phone: (208) 282-7983
Fax: (208) 282-7929
Email: debrac@uidaho.edu

1776 Science Center Drive, Suite 306
Idaho Falls, Idaho 83402

Distance Education

Engineering Outreach
Phone: (208) 885-6373
Toll-free: (800) 824-2889
Fax: (208) 885-9249
E-mail: outreach@uidaho.edu



  • CS 112 Introduction to Problem Solving and Programming

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_112

    Current Catalog Description: May be used as core credit in J-3-c. Intro to fundamental problem solving techniques using the computer; use of a programming language, structured programming concepts; use of fundamental data types, including arrays and structures; basic concepts of computer organization, editing, and program execution; programming lab in which the student solves problems. Prereq: Math 108 or sufficiently high ACT, SAT, or Math Placement Test score to qualify for Math 143.

  • CS 120 Computer Science I

    Total Credits: 4 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_120

    Current Catalog Description: 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. Three lectures and one 2-hr lab a week. Prereq: Math 108 or sufficiently high ACT, SAT, or Math Placement Test score to qualify for Math 143.

  • CS 121 Computer Science II

    Total Credits: 4 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_121

    Current Catalog Description: Introduction to abstract data types and fundamental data structures: linked list, stacks, queues, trees, and graphs. Methods for implementing and algorithms for manipulation of these structures. Dynamics memory methods, sequential file processing, additional searching and sorting algorithms that result from using these data types, recursion, object-oriented programming. Three sessions a week; and one 2-hour lab a week. Prereq: CS 120. Coreq:  Math 176.

  • CS 127 Programming Language

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_127

    Current Catalog Description: Introduction to computer programming in a selected language. Prereq: Permission.

  • CS 130 Programming with Visual Basic

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_130

    Current Catalog Description: Introduction to fundamental problem solving techniques using the computer and the object oriented, event driven language Visual Basic. The course introduces structured programming concepts; the use of fundamental data types, including arrays and database structures; and eidting and program execution.

  • CS 150 Computer Organization and Architecture

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_150

    Current Catalog Description: 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.

Eligibility for 200-level Courses

Computer science courses offered at the 200-level presume the student has mastered the material covered in the 100-level courses required of CS majors.

Students majoring in computer science must earn a grade of C or better, with a 2.50 GPA or higher, in CS 120, 121, and 150 and a C or better in Math 176 before registration is permitted in 200-level CS courses.

Students majoring in computer engineering must earn a grade of B or better in CS 120, 121, 150, and a C or better in Math 176 for graduation and before registration is permitted in 200-level CS courses.

  • CS 210 Programming Languages

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_210

    Current Catalog Description: Major features of good programming languages, with primary emphasis on language features and their role in writing food software; programming language design alternative; various types of languages, including procedure, data-flow, functional and object-orientated languages. Prereq: CS 121

  • CS 240 Computer Operating Systems

    Total Credits: 3 cr

    Course Coordinator: Axel Krings

    URL: http://wiki.cs.uidaho.edu/index.php/CS_240

    Current Catalog Description: Overview of operating systems principles, concurrency, scheduling and dispatch, memory management, introduction to net-centric computing, communication and networking, OS security. Prereq: CS 121 and 150. Coreq: CS 270.

  • CS 270 System Software

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_270

    Current Catalog Description: Productivity tools such as make. Debugging tools. Linking and loading. Shell programming and scripting languages. Process management and inter-process communication. Concurrent programming using threads. Exception handling. Prereq: CS121 and CS150.

Eligibility for Upper Division Courses

Most upper-division computer science courses presume the student has mastered the material covered in the 100-level and 200-level courses required of CS majors .

Students majoring in computer science must earn a grade of C or better in CS 210, 240, 270, and Math 170 and 175 before registration is permitted in upper-division CS courses.

Students majoring in computer engineering must earn a grade of C or better in CS 210, 240, 270, and Math 170, 175, 176 for graduation and before registration is permitted in upper-division CS courses.

  • CS 324 Computer Graphics

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_324

    Current Catalog Description: Use of the computer to define, store, manipulate, and display 2-D and 3-D objects; 2-D curve fitting and 3-D surface development. Prereq: CS 213 or CS 121, and Math 330.

  • CS 336 Introduction to Information Assurance

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_336

    Current Catalog Description: 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. Prereq: CS 240.

  • CS 360 Database Systems

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_360

    Current Catalog Description: 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.  Prereq:  CS 240 and CS 270.

  • CS 383 Software Engineering

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_383

    Current Catalog Description: Current topics in development of software systems; software life cycle model, requirements definition, design, verification and validation, and project management techniques. Prereq: CS 270 or perm.

  • CS 385 Theory of Computation

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_385

    Current Catalog Description: See Math 385. Mathematical models of computation, including finite automata and Turing machines. Prereq: perm.

  • CS 386 Derivational Programming

    Total Credits: 3 cr

    Course Coordinator: Jim Alves-Foss

    URL: http://wiki.cs.uidaho.edu/index.php/CS_386

    Current Catalog Description: Introduction of a practical approach based on methodically developing programs from their specifications; focus on developing reliable programs with attention to real issues.

  • CS 395 Analysis of Algorithms

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_395

    Current Catalog Description: Same as Math 395. Measures of efficiency; standard methods and examples in the design and analysis of algorithms. Prereq: Math 175

  • CS 398 Computer Science Cooperative Internship

    Total Credits: 1-3 cr (Max 3)

    URL: http://wiki.cs.uidaho.edu/index.php/CS_398

    Current Catalog Description: 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 P/F. Prereq: perm.

  • CS 401/501 Contemporary Issues in CS

    Total Credits: 1 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_401

    Current Catalog Description: Ethical, legal, and intellectual property issues; current research topics; and other issues of importance to the professional computer scientist. Graded P/F.

  • CS 404 and 504 Special Topics Courses
  • CS 411/511 Parallel Programming

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_411/511

    Catalog Description: 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.

  • CS 412/512 Parallel Algorithms

    Total credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_412/512

    Catalog description: Parallel algorithm design; formal analysis of parallel algorithmic complexity; measures of parallel efficiency; relationship between algorithmic structure and parallel mapping strategies; the consequences of spatial- and temporal-locality. Additional projects/assignments required for graduate credit.

  • CS 415/515 Computational Biology Sequence Analysis

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_415/515

    Current Catalog Description: 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.

  • CS 420/520 Data Communication Systems

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_420/520

    Current Catalog Description: Concepts and terminology of data communications, equipment, protocols (including ISO/OSI and TCP/IP), architectures; transmission alternatives, regulatory issues and network management.  Prereq: CS 150 and CS 240.

  • CS 424/524 Advanced Computer Graphics

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_424/524

    Current Catalog Description: Graphical user interfaces; rendering for realism including shading, shadows and textures; fractals; raster displays, pixmaps, and antialiasing; 3D curves and surfaces; color theory; hidden surfaces; ray tracing; games. Additional work required for graduate credit..

  • CS 428 Games and Virtual Environments

    Total Credits: 3 cr

    Course Coordinator: Clinton Jeffery

    URL: http://wiki.cs.uidaho.edu/index.php/CS_428

    Current Catalog Description: Software design and programming issues involved in constructing computer games and multi-user virtual environments.

  • CS 438/538 Network Security

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_438/538

    Current Catalog Description: WSU Cpt S 425. Practical topics in network security; policy and mechanism, malicious code; intrusion detection, prevention, response; cryptographic techniques for privacy and integrity; emphasis on tradeoffs between risk of misuse, cost of prevention, and societal issues; concepts implemented in programming assignments.

  • CS 439/539 Applied Security Concepts

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_439/539

    Current Catalog Description: 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 reqd for grad cr. Recommended preparation: Good knowledge of C, operating system concepts and Unix. Prereq: CS 336 or Permission.

  • CS 441/541 Advanced Operating Systems

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_441/541

    Current Catalog Description: 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.

  • CS 445 Compiler and Translator Design

    Total Credits: 4 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_445

    Current Catalog Description: 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. Prereq: CS 210 and CS 385.

  • CS 447/547 Computer and Network Forensics

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_447/547

    Current Catalog Description: Competence in using established forensic methods in the handling of electronic evidence; rigorous audit/logging and date archival practices; prevention, detection, apprehension, and prosecution of security violators and cyber criminals.

  • CS 448/548 Survivable Systems and Networks

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_448/548

    Current Catalog Description: Computers and networks under malicious threat or attack. Attributes of survivability, trustworthiness, dependability and assurance. Threats to survivability, security, reliability and performance. Models and analytical methods to assess survivability, vulnerability, interdependence and risk. Systemic inadequacies and approaches for overcoming deficiencies. Literature review and case studies. Additional project/assignments required for graduate credit. Recommended Preparation: CS J449/J549 or CS J423.

  • CS 449/549 Fault-Tolerant Systems

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_449/549

    Current Catalog Description: Design, modeling, analysis and integration of hardware and software to achieve dependable computing systems employing on-line fault tolerance; theory and fundamental concepts of designing reliable systems; analytical evaluation techniques, faults and advances in ultra-reliable distributed systems, fault-tolerant software systems; case studies include the space Shuttle, Airbus, and Boeing fly-by-wire primary flight computers as well as systems in reliable data bases and financial markets.

  • CS 451/551 Advanced Computer Architecture

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_451/551

    Current Catalog Description: 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.

  • CS 452/552 Real-time Operating Systems

    Total credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_452/552

    Catalog description: 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 are required for graduate credit.

  • CS 470/570 Artificial Intelligence

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_470/570

    Current Catalog Description: Concepts and techniques involved in artificial intelligence. Lisp, goal-directed searching, history trees, inductive and deductive reasoning, natural language processing, and learning.

  • CS 472/572 Evolutionary Computation

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_472/572

    Current Catalog Description: Solving computation problems by "growing" solutions; simulates natural evolution using analogies of mutation, crossover, and other genetic transformations on representations of potential solutions; standard EC techniques such as genetic algorithms and evolutionary programming, mathematical explanation of why they work, and a survey of some applications; the focus is on solving real-world problems using projects.

  • CS 481 Senior Capstone Design

    Total Credits: 4 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_481

    Current Catalog Description: Application of formal design techniques to development of a large computer science project performed by students working in teams. Significant lab work reqd. Prereq: CS 384 or 480.

Eligibility for Graduate Courses

Graduate courses are available to students with graduate standing and to seniors who have been authorized by the College of Graduate Studies.

  • CS 500 Master's Research and Thesis
  • CS 507 Fundamentals of Research
  • CS 513 Concurrent Systems

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_513

    Catalog Description: Issues of parallel computer architecture considering a hardware/software approach; topics include convergence of parallel architectures, fundamental design issues, parallel programs, programming for performance, workload-driven evaluation, shared memory multiprocessors, snoopy-based multiprocessor design, scalable multiprocessors, cache coherence, hardware software tradeoffs, interconnection network design, latency tolerance, and future directions of concurrent systems.

  • CS 536 Advanced Information Assurance Concepts

    Total Credits: 3 cr

    Course Coordinator: James Alves-Foss

    URL: http://wiki.cs.uidaho.edu/index.php/CS_536

    Catalog Description: Cryptographic systems, coding and decoding of messages; network, database, and operating system security issues, capability and access-control mechanisms; current trends and research in mandatory and discretionary security policies. Additional projects/assignments reqd for grad cr. Prereq: CS 336

  • CS 576 Data Mining Techniques

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_576

    Catalog Description: This course will focus on the development of relevant tools, methods, and design of Knowledge from Data (KDD) Systems. Further, it will concentrate on the design and implementation of an advanced data mining system with expectations of optimal performance and flexibility.

  • CS 578 Neural Network Design

    Total Credits: 3 cr

    URL: http://wiki.cs.uidaho.edu/index.php/CS_578

    Current Catalog Description:  Same as CS578 & ME 578 & Neuroscience. 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. Prereq: perm. Graduate standing or instructor permission.

  • CS 580 Graduate Project
  • CS 600 Doctoral Research and Dissertation