Skip to Main Content

Information and Computer Sciences (ICS)

ICS 101 Digital Tools for the Information World (4)

Fundamental information technology concepts and computing terminology, productivity software for problem solving, computer technology trends and impact on individuals and society. Emphasizes the utilization of operating systems and the production of professional documents, spreadsheets, etc.

ICS 101A Digital Tools for the Information World (4)

Fundamental information technology concepts and computing terminology, productivity software for problem solving, computer technology trends and impact on individuals and society. Emphasizes the utilization of operating systems and the production of professional documents, spreadsheets, etc.

ICS 102 Introduction to Data Science (3)

Overview of the field of data science. Introduction to subjects such as data format, processing, visualization, and storage. Special emphasis on historical and wider context, and simple practical examples. Repeatable one time. A-F only.

ICS 103 Introduction to Computer Science Principles (3)

General course that provides a broad overview of computer science. Will address abstraction, data and information, algorithms, programming, the Internet and the global impact of computers.

ICS 110 (Alpha) Introduction to Computer Programming (3)

Basic concepts needed to write computer programs. Simple program design and implementation using a specific programming language; (C) C; (D) through animations; (P) Python. Each alpha repeatable unlimited times, but credit earned one time only. ((P) Cross-listed as DATA 110P)

ICS 111 Introduction to Computer Science I (4)

Overview of the fundamentals of computer science emphasizing problem solving, algorithm development, implementation, and debugging/testing using an object-oriented programming language. Pre: Recommended: computer experience.

ICS 111A Introduction to Computer Science I (4)

Overview of the fundamentals of computer science emphasizing problem solving, algorithm development, implementation, and debugging/testing using an object-oriented programming language. Pre: Recommended: computer experience.

ICS 141 Discrete Mathematics for Computer Science I (3)

Includes logic, sets, functions, matrices, algorithmic concepts, mathematical reasoning, recursion, counting techniques, and probability theory. Pre: MATH 215 or 241 or 251A.

ICS 210 Information Systems in Society (3)

Lecture/discussion critically explores sociopolitical dimensions of Information and Communication Technology (ICT), and the information professions. A-F only. Pre: departmental approval. (Once a year)

ICS 211 Introduction to Computer Science II (4)

(3 Lec, 1 3-hr. Lab) Reinforce and strengthen problemsolving skills using abstract data types and introduce software development practices. Emphasize the use of searching and sorting algorithms and their complexity, recursion, object-oriented programming, and data structures. Pre: 111 or consent.

ICS 211A Introduction to Computer Science II (4)

(3 Lec, 1 3-hr. Lab) Reinforce and strengthen problem-solving skills using abstract data types and introduce software development practices. Emphasize the use of searching and sorting algorithms and their complexity, recursion, object-oriented programming, and data structures. Pre: grade of “B” or higher in 111 or consent.

ICS 212 Program Structure (3)

Program organization paradigms, programming environments, implementation of a module from specifications, the C and C++ programming languages. Pre: 211 or consent.

ICS 215 Introduction to Scripting (3)

Introduction to scripting languages for the integration of applications and systems. Scripting in operating systems, web pages, server-side application integration, regular expressions, and event handling for languages such as Perl, JavaScript, PHP, Python, shell scripting. A-F only. Pre: 211 (or concurrent), or consent. (Once a year)

ICS 222 Basic Concepts of Computer Science (3)

What is the subject of computer science? What is a computer? Understand the basic models of computation and the concepts of computability, complexity, and network computation, and learn to use them in practice. A-F only. Pre: 141 (or concurrent).

ICS 235 Machine Learning Methods (3)

Introduction to contemporary mathematical methods for empirical inference, data modeling, and machine learning. A-F only. Pre: MATH 241, MATH 203, MATH 215, or MATH 251A. (Fall only) (Cross-listed as DATA 235)

ICS 241 Discrete Mathematics for Computer Science II (3)

Includes program correctness, recurrence relations and their solutions, relations and their properties, divide and conquer relations, graph theory, trees and their applications, Boolean algebra, introduction to formal languages and automata theory. Pre: 141 or consent.

ICS 290 Computer Science Careers: An Exploration of the Specialties of Computer Science (1)

Exploration of the specialties of computer science. Meets every two week for 2.5 hours to explore specific areas in computer science. CR/NC only. (Once a year)

ICS 296 Sophomore Project (1)

Part of a multi-year project-based courses sequence where students will work in teams on acquiring experience in a beginner-level design of a software project expected to be continued in ICS 396. CS majors only. A-F only. Pre: 111.

ICS 311 Algorithms (4)

(4 1-hr Lec) Design and correctness of algorithms, including divide-and-conquer, greedy and dynamic programming methods. Complexity
analyses using recurrence relations, probabilistic methods, and NP-completeness. Applications to order statistics, disjoint sets, B-trees and balanced trees, graphs, network flows, and string matching. Pre: 211, and [(241 or EE 362) and (MATH 216 or 242 or 252A)] or (MATH 301 and 372); or consent.

ICS 312 Machine-Level and Systems Programming (3)

Machine organization, machine instructions, addressing modes, assembler language, subroutine linkage, linking to higher-level languages, interface to operating systems, introduction to assemblers, loaders and compilers. Pre: 212 (or concurrent), (311 or EE 367), and 314, or consent.

ICS 313 Programming Language Theory (3)

Syntax, semantics, control structures, variable binding and scopes, data and control abstractions. Programming in functional (LISP) and logic (Prolog) programming styles. Pre: Pre: 212, (311 or EE 367), and 314, or consent.

ICS 314 Software Engineering I (3)

Problem analysis and design, team-oriented development, quality assurance, configuration management, project planning. These topics are covered in the sequence 314-414. Pre: 211, and 241 or (MATH 301 and 372), or consent.

ICS 321 Database Systems I (3)

Introduction to relational database systems, data modeling, query processing, transaction processing, storage, and indexing. Pre: (311 or EE 367) and 314, or consent.

ICS 331 Logic Design and Microprocessors (4)

(1 3-hr Lab) Basic machine architecture, microprocessors, bus organization, circuit elements, logic circuit analysis and design, microcomputer system design. Pre: 212, (311 or EE 367), and 314; or consent.

ICS 332 Operating Systems (3)

Operating system concepts and structure, processes and threads, CPU scheduling, memory management, scheduling, file systems, inter-process communication, virtualization, popular operating systems. A-F only. Pre: (311 or EE 367) and 314.

ICS 351 Network Design and Management (3)

Overview of the internet and its capabilities; introduction to HTTP, TCP/IP, ethernet, and wireless 802.11; routers, switches, and NAT; network and wireless security; practical experience in designing and implementing networks. Pre: (311 or EE 367) and 314, or consent. (Once a year)

ICS 355 Security and Trust I: Resource Protections (3)

Security and trust in computers, networks, and society. Security models. Access and authorization. Availability and Denial-of-Service. Trust processes and network interactions. Pre: 241 or (MATH 301 and 372).

ICS 361 Introduction to Artificial Intelligence Programming (3)

Introduction to the theory of Artificial Intelligence and the practical application of AI techniques in Functional (Common LISP and/or Scheme) and Logic (Prolog) programming languages. Students gain practical experience through programming assignments and projects. A-F only. Pre: (212 or 215) and (311 or EE 367) and 314, or consent.

ICS 369 Computational Media Systems (3)

Intermediate object-oriented programming within the context of interactive media systems and video game development. Topics: classes, objects, inheritance, polymorphism, abstract classes, interfaces, event-driven programming, vectors, geometric primitives, game mechanics, and relevant design patterns. EE, CENG, ICS, CM, THEA, DNCE majors only. A-F only. Pre: 111 or EE 160 or instructor approval. (Cross-listed as EE 369)

ICS 390 Computing Ethics for Lab Assistants (3)

A lecture/discussion/internship on ethical issues and instructional techniques for students assisting a laboratory section of ICS 101. The class uses multiple significant writing and oral presentation activities to help students learn course content. Pre: consent.

ICS 396 Junior Project (2)

Part of a multi-year project-based courses sequence where students will work in teams on acquiring experience in intermediate-level design, implementation and presentation of a software project that may have been initiated in ICS 296. CS majors only. A-F only. Pre: 314 or concurrent.

ICS 414 Software Engineering II (3)

Continuation of 314. Project management, quality, and productivity control, testing and validation, team management. Team-oriented software-implementation project. Pre: (311 or EE 367) and 314.

ICS 415 Introduction to Programming for the Web (3)

Introduction to emerging technologies for construction of World Wide Web (WWW)-based software. Covers programming and scripting languages used for the creation of WWW sites and client-server programming. Students will complete a medium-sized software project that uses languages and concepts discussed in class. Pre: (311 or EE 367) and 314, or consent.

ICS 419 The Science, Psychology and Philosophy of Systems Design (3)

Scientific, psychological and philosophical bases of systems design, including a survey of human-factors and ergonomic standards; the nature of innovation and creativity as it relates to systems design. Web-enhanced course. Pre: (311 or EE 367) and 314, or consent. (Once a year)

ICS 421 Database Systems II (3)

Very large database systems, data integration, data warehousing, designing big data systems, parallel query processing, distributed transactions. Pre: 321 or consent.

ICS 422 Network Science Methodology (3)

Computational and statistical methods for analyzing network models of social, technological, information, and biological networks. Introduction to relevant data analytics and graph analysis software packages. Pre: (311 or EE 367) or consent. (Cross-listed as DATA 422)

ICS 423 Data Security and Cryptography I (3)

Secret communication and confidentiality data storage. Elements of cryptography and cryptanalysis. Classical ciphers. Symmetric key cryptography. Public key cryptography. Data security in cyber space. Pre: 222 and 355.

ICS 424 Application Frameworks (3)

Experience producing applications with at least two different applications frameworks. A-F only. Pre: (311 or EE 367) and 314, or consent.

ICS 425 Computer Security and Ethics (3)

Theoretical results, security policy, encryption, key management, digital signatures, certificates, passwords. Ethics: privacy, computer crime, professional ethics. Effects of the computer revolution on society. A-F only. Pre: 355 or consent. (Once a year)

ICS 426 Computer System Security (3)

Information flow, confinement, information assurance, malicious programs, vulnerability analysis, network security, writing secure programs. A-F only. Pre: 355 or consent. (Once a year)

ICS 427 Programming Approaches to Software Quality Assurance (3)

Examination of best practices associated with developing and supporting software
applications with respect to potential security risks. Will augment software engineering practices learned in other courses with the basic principles of cybersecurity. Pre: 314 or consent.

ICS 428 Digital Forensics (3)

Provides students with the knowledge of underlying principles and skills to identify, preserve, and extract electronic evidence for further analysis. Pre: 355 or consent.

ICS 431 Computer Architecture (3)

Memory management, control flow, interrupt mechanisms, multiprocessor systems, special-purpose devices. Pre: 331 or EE 361/361L.

ICS 432 Concurrent and High-Performance Programming (3)

Principles of concurrent and high performance programming. Multi-threading in C and Java for shared-memory programming. Distributed memory programming with Java. Introduction to cluster computing. A-F only. Pre: 212 and 322 and (311 or EE 367) and 314, or consent. (Once a year)

ICS 434 Data Science Fundamentals (3)

Introduction to critical statistical and probabilistic concepts that underlie data science as well as tools that play a central role in the daily work of a data scientist. A-F only. Pre: 211 or consent. (Cross-listed as DATA 434)

ICS 435 Machine Learning Fundamentals (3)

Introduction to machine learning concepts with a focus on relevant ideas from computational neuroscience. Information processing and learning in the nervous system. Neural networks. Supervised and unsupervised learning. Basics of statistical learning theory. Pre: 235, or consent. Recommended: MATH 307. (Once a year) (Cross-listed as DATA 435)

ICS 438 Big Data Analytics (3)

Concepts, tools, and techniques for analyzing and mining massive data sets. Data cleaning and pre-processing. Data analysis and mining techniques. Big Data platforms. Big Data visualization. Pre: 321.

ICS 441 Theory of Computation (3)

Grammars, sequential machines, equivalence, minimalization, analysis and synthesis, regular expressions, computability, unsolvability, Gödel’s theorem, Turing machines. Pre: (311 or EE 367) and 314, or consent.

ICS 442 Analytical Models and Methods (3)

Applications of mathematical methods in computer science with emphasis on discrete mathematics, numerical computation, algebraic models, operations research. Pre: (311 or EE 367) and 314, or consent.

ICS 443 Parallel Algorithms (3)

Introduction to parallel models of computation and design and analysis of parallel algorithms. Pre: (311 or EE 367) and 314. (Fall only)

ICS 451 Data Networks (3)

Network analysis, architecture, digital signal analysis and design; circuit switching, packet switching, packet broadcasting; protocols and standards; local area networks; satellite networks; ALOHA channels; examples. Pre: 212 and (311 or EE 367) and 314, or consent.

ICS 452 Software Design for Robotics (3)

Sensors, actuators, signal processing, paradigms of robotic software design, introduction to machine learning, introduction to computer vision, and robot-to-human interaction. A-F only. Pre: two ICS 300-level courses or consent. Recommended: 312 and 313. (Once a year: spring)

ICS 455 Security and Trust II: Information Assurance (3)

Channel security. Trojan and noninterference. Basic concepts of cryptology. Cryptographic primitives. Protocols for authentication and key establishment. Pre: 222 and 355.

ICS 461 Artificial Intelligence (3)

Survey of artificial intelligence: natural language processing, vision and robotics, expert systems. Emphasis on fundamental
concepts: search, planning, and problem solving, logic, knowledge representation. Pre: (311 or EE 367) or consent.

ICS 462 Artificial Intelligence for Games (3)

Techniques to stimulate intelligence in video games: movement, pathfinding with A* search, decision/behavior trees, state machines, machine learning, tactics. Extend games with your own AI implementations; experience “shootout” contests for the best AI algorithm/implementation. Pre: 212 and (311 or EE 367) and 314 and (PHYS 151 or PHYS 170). (Alt. years)

ICS 464 Human Computer Interaction I (3)

Application of concepts and methodologies of human factors, psychology and software engineering to address ergonomic, cognitive, and social factors in the design and evaluation of human-computer systems. Pre: (311 or EE 367) and 314, or consent.

ICS 465 Introduction to Hypermedia (3)

Basic issues of interactive access to information in various formats on computers. Available hardware and software: editing, integration, programming. Implementation of a sample information system. Pre: (311 or EE 367) and 314.

ICS 466 Design for Mobile Devices (3)

Lecture introducing design issues, programming languages, operating systems and mark-up languages for internet-enabled mobile devices, such as cell phones and PDAs. A-F or Audit. Pre: (311 or EE 367) and 314, or consent. (Spring only)

ICS 469 Cognitive Science (3)

Introduces basic concepts, central problems, and methods from cognitive science. Identifies contributions from disciplines such as cognitive psychology, linguistics, artificial intelligence, philosophy, and neuroscience. Pre: (311 or EE 367) and 314, or consent.

ICS 471 Probability, Statistics, and Queuing (3)

A hands-on introduction to probability, statistical inference, regression, Markov chains, queuing theory. Use of an interactive statistical graphics environment such as R. Pre: (311 or EE 367) and 314, or consent.

ICS 475 Introduction to Bioinformatics Sequences and Genomes Analysis (3)

Introduction to bioinformatics to computer sciences students by focusing on how computer sciences techniques can be used for the storage, analysis, prediction and simulation of biological sequences (DNA, RNA and proteins). A-F only. Pre: (311 or EE 367) and 314, or consent. (Once a year)

ICS 476 Bioinformatics Algorithms and Tool Development (3)

Study of commonly used bioinformatic algorithms, with an emphasis on string, tree, and graph algorithms. Presentation of probabilistic and clustering methods. Implementation of the studied algorithms and design of applications. Pre: 475 or consent. (Once a year)

ICS 481 Introduction to Computer Graphics (3)

Fundamentals of computer graphics including graphics hardware, representation, manipulation, and display of two- and three-dimensional objects, use of commercial software. Pre: (MATH 216, MATH 242, or MATH 252A) and (311 or EE 367) and 314; or consent.

ICS 483 Computer Vision (3)

Introductory course in computer vision. Topics include image formation, image processing and filtering, edge detection, texture analysis and synthesis, binocular stereo, segmentation, tracking, object recognition and applications. A-F only. Pre: 212 and (311 or EE 367) and 314, or consent. Once a year.

ICS 484 Data Visualization (3)

Introduction to data visualization through practical techniques for turning data into images to produce insight. Topics include: information visualization, geospatial visualization, scientific visualization, social network visualization, and medical visualization. Junior standing or higher. Pre: 110(Alpha) or 111 or CINE/ACM 215. (Cross-listed as CINE/ACM 484 and DATA 484)

ICS 485 Video Game Design and Development (3)

Students will team design, build, and demonstrate video games or related interactive entertainment environments and applications. Topics will include emerging computer science techniques relevant to the development of these types of environments. Junior standing or higher. Pre: any 110(Alpha) or 111 or CINE/ACM 215. (Cross-listed as CINE/ACM 487)

ICS 486 Virtual and Augmented Reality Programming (3)

Students will learn to develop virtual reality and augmented reality applications with
turnkey tools as well as through programming. Prior programming experience is not required for this course. Pre: any 110(Alpha) or 111 or CINE/ACM 215. (Cross-listed as CINE/ACM 419).

ICS 491 Special Topics (3)

Reflects special interests of faculty. Oriented toward juniors and seniors. Repeatable one time for BS/CS students. Pre: at least two 300-level ICS classes or consent.

ICS 495 Special Topics in Security (3)

Special topics in security oriented toward juniors and seniors. Repeatable unlimited times. Pre: at least two 300-level ICS courses or consent.

ICS 496 Capstone Project (3)

Project-based course where students work in teams on a software project. Knowledge acquired in the computer science curriculum will be applied to design and implement a software product with potential real-world applicability. Repeatable one time. CS majors only. Senior standing or higher. A-F only. Pre: (311 or EE 367) and 314.

ICS 499 Computer Project (V)

Individual or small group projects in system design or application under faculty supervision. Pre: consent.

ICS 606 Intelligent Autonomous Agents (3)

Theory, methods and practical applications of autonomous agent systems, including common applications of both software and hardware (robotic) agents. In-depth practical experience with autonomous agents through programming assignments and projects. Pre: 313 or EE 467 (or equivalent), graduate standing; or consent. (Once a year) (Cross-listed as EE 606)

ICS 611 Compiler Theory and Construction (3)

Design and implementation of compilers, syntactic and semantic descriptions of programming languages, algorithms for syntactic analysis and object code generation. Pre: 312 or consent.

ICS 612 Theory of Operating Systems (3)

Advanced study in operating systems theory and design with emphasis on case studies and distributed systems.

ICS 613 Advanced Software Engineering (3)

Fundamental software engineering procedures, including planning, estimation, design, testing, process definition and improvement, and software quality assurance. Measurement techniques are used to support empirically-driven software process improvement throughout the course. Pre: graduate standing, or consent.

ICS 614 Medical Informatics I (3)

Introduction to the field of medical informatics, which is found at the intersection of clinical science, public health, information science, computer technology and communications technology. Concentration on current issues. Pre: consent.

ICS 616 Information Architecture and Web Design (3)

User-centered design of websites; survey Information Architecture (IA) systems (organization, navigation, labeling, searching); gain experience in methodologies for creating IA, tools for IA, web standards and usability tests. ICS and LIS majors only. A-F only. Pre: graduate standing in ICS or LIS or related field or consent. (Once a year)

ICS 621 Analysis of Algorithms (3)

Analysis and design of algorithms: modeling, comparison, measures, applications. Pre: graduate standing, or consent.

ICS 622 Network Science (3)

Modeling human-made and natural systems as networks to understand their structure and dynamics. Computational and statistical methods and research results they enabled. Use of network analysis software. Applications to topics of interest to students.

ICS 623 Advanced Cryptography (3)

Taxonomy of security properties: methods for defining and proving security. Randomness, pseudorandomness, and indistinguishability. Functional encryption and obfuscation. Zero knowledge. Pre: graduate standing, or consent.

ICS 624 Advanced Data Management (3)

Exploration of information retrieval and object-relational tools and methods for the management of distributed multimedia database systems. Pre: graduate standing, or consent.

ICS 632 Principles of High Performance Computing (3)

Principles of high performance computing for single-processor and parallel architectures. Detailed coverage of parallel architectures and exposure to shared-memory, distributed-memory, and hybrid parallelism. Hands-on experience with message-passing and multithreaded programming. A-F only. Pre: graduate standing in computer science or closely related field, or consent. (Once a year)

ICS 635 Machine Learning (3)

Introduction to key theoretical concepts of machine learning. Practical experience with decision free methods, artificial neural networks. Bayesian belief networks and contemporary statistical methods including regression, clustering and classification. Pre: consent. (Once a year)

ICS 636 Information Theory in Machine Learning (3)

Basics of information processing and learning in the brain; neural networks; learning algorithms based on information maximization; applications in molecular biology and bioinformatics. A-F only. Pre: graduate standing in computer science or mathematics background, or consent. (Once a year)

ICS 637 Deep Learning with Neural Networks (3)

Graduate course on deep learning with artificial neural networks. Provides practical techniques for modeling image, video, text, and graph data with supervised, unsupervised, and reinforcement learning approaches. Includes instruction in the latest software frameworks. Graduate students only. Pre: 635 (or concurrent) or consent.

ICS 641 Advanced Theory of Computation (3)

Advanced topics in formal languages, automata, computability, computational complexity. Pre: 441 or consent.

ICS 643 Advanced Parallel Algorithms (3)

Design and analysis of parallel algorithms, with emphasis on advanced techniques and latest advances in parallel algorithms. Pre: graduate standing, or consent.

ICS 651 Computer Networks (3)

Elementary principles of modern computer networking. Detailed coverage of overall architecture and the physical, data link, and network layers, with emphasis on the network layer. ICS majos only. Pre: graduate standing in ICS, or consent.

ICS 655 Security and Trust III: Cyber Security and Commerce (3)

Tools and methods for security managers. Tools and methods to secure and monetize services and applications. Network as a computer and as a market. Problems of cyber war, cyber crime, cyber bullying. Graduate students only. (Spring only)

ICS 660 Computer Architecture I (3)

Models of computation, high-performance processors, pipelined machines, RISC processors, VLIW, superscalar and fine-grain parallel machines. Data-flow architectures. Hardware/software tradeoffs. Pre: EE 461. (Cross-listed as EE 660)

ICS 661 Advanced Artificial Intelligence (3)

Current issues in artificial intelligence, including expert systems, knowledge representation, logic programming, learning, natural language processing. Pre: graduate standing, or consent.

ICS 663 Pattern Recognition (3)

Nature of the problem in pattern recognition and clustering; explanation of various algorithms. Pre: graduate standing, or consent.

ICS 664 Human-Computer Interaction II (3)

Studies of human performance in designing and using information systems. Emphasizes concepts and methodologies from human factors, psychology, and software engineering relating to human performance. Pre: graduate standing, or consent.

ICS 665 User Interfaces and Hypermedia (3)

Advanced concepts in construction of interfaces between computers and their users. Hypermedia information structures, guidelines, problems, and tradeoffs. Discussion of selected readings, implementation of prototypes. Pre: 465 or consent.

ICS 667 HCI Design Methods (3)

Advanced analytical and empirical methods for the design and evaluation of usable, useful, and robust human computer interfaces. Students will apply selected methodologies to a major system design project. Pre: 464 or 465, or consent.

ICS 668 Social Informatics (3)

An advanced introduction to the design of human-computer systems and other technological artifacts for supporting human collaboration in learning, work and social contexts, and to theoretical perspectives and empirical studies of collaboration that inform such design. A-F only. Pre: 464 or 465 or 664 or 665 or 667 or LIS 677; or consent.

ICS 669 Social Computing (3)

Participative analysis of online communities and user-generated content collections. Theoretical and practical aspects of online interaction, identity, trust, and virtual social capital. A-F only. (Once a year)

ICS 674 Evolutionary Computation I: Survey of Methods (3)

Evolutionary computation surveys in the field to prepare students for research. Topics include diverse engineering applications, theory, and concepts including search spaces, representation, objective functions, variation operators, selection, and population based search. Pre: 211 (B or better) and 241 (C or better) and admitted to a graduate program or capable of graduate-level work in computer sciences, or consent. (Once a year: fall)

ICS 675 Bioinformatics: Sequences Analysis (3)

To expose students to bioinformatics at the biological sequences analysis level (DNA, RNA, proteins). Several bioinformatics methods and algorithms are introduced. Students are required to present one paper and to participate in a small group project. A-F only. . Pre: graduate standing, or consent. (Once a year)

ICS 676 Bioinformatics: Microarrays (3)

Introduction to the basic principles of biology relevant for microarray gene expression data and to Bio-conductor. Collaborative open-source project to develop a modular general framework for the analysis of cDNA arrays and gene chips. A-F only. Pre: 311 or background in biology, or consent. (Once a year)

ICS 681 Computer Graphics (3)

Selected advanced topics in computer graphics. Substantial project required. Pre: 481 or consent.

ICS 682 Numerical Computation (3)

Selected topics in numerical analysis, mathematical software, and scientific computation; examples include sparse matrix methods, finite element methods, mathematical programming. Pre: consent.

ICS 683 Advanced Computer Vision (3)

Fundamental problems and core concepts and techniques in computer vision, covering both theoretical and practical issues in the field. A-F only. Pre: graduate standing, or consent. (Once a year)

ICS 684 Advanced Data Visualization (3)

Explores advanced techniques in data visualization by surveying visualization techniques from the past 5-10 years, and designing and developing data visualizations leveraging those techniques. Graduate students only. (Fall only)

ICS 685 Virtual and Augmented Reality (3)

Students will learn the science, engineering, art, and applications of virtual reality and augmented reality, with an emphasis on the construction of working virtual environments. Graduate students only. (Fall only)

ICS 686 Digital Video Information (3)

Principles and techniques of technical and context analysis of digital video information. Video capture and editing tools, compression and analysis algorithms, visual culture, narrative structure, juxtaposition of multimedia elements and their effects on information transmission. Pre: graduate standing or consent. (Alt. years)

ICS 690 Seminar in ICS (1)

Series of talks on advanced research topics. Repeatable unlimited times. CR/NC only.

ICS 691 (Alpha) Topics in Computer Science (3)

Reflects special interests of faculty in various areas of computer science. (B) area 1; (C) area 2; (D) area 3; (E) area 4; (G) general. Repeatable unlimited times in different topics and different areas. Pre: consent.

ICS 692 Special Topics Seminar (V)

Seminar discussing special topics in information and computer science. Topics and number of credits vary. Repeatable unlimited times.

ICS 695 Advanced Special Topics in Security (3)

Current topics and upcoming issues relevant to the field of information assurance and cyber security. Repeatable unlimited times. (Alt. years: spring)

ICS 699 Directed Reading/Research (V)

Repeatable unlimited times. Pre: graduate standing and consent.

ICS 700 Thesis Research (V)

Research for master’s thesis. Repeatable unlimited times.

ICS 800 Dissertation Research (V)

Research for doctoral dissertation. Repeatable eight times. Pre: candidacy for PhD in computer science.