2023-24 Edition

Donald Bren School of Information and Computer Sciences

undefined

Marios C. Papaefthymiou, Dean
6210 Donald Bren Hall
Academic Counseling: 949-824-5156
http://www.ics.uci.edu

The Donald Bren School of Information and Computer Sciences (ICS) embodies excellence, creativity, and collaborative innovation in computer science and information technology. As the only independent computing school in the University of California system, it is well-positioned to continue its tradition of exploring and advancing the boundaries of a broad, multidisciplinary field on a global scale.

ICS faculty have extensive training in traditional computer science, as well as engineering, mathematics and statistics, and the social sciences. The School’s stand-alone structure, as opposed to being part of an engineering school, enables the faculty to take the broadest possible view of computer science and information technology. This breadth is reflected in the diverse set of academic degree options for undergraduate and graduate students, some of which are interdisciplinary and jointly administered with other academic units.

The School’s three departments — Computer Science, Informatics, and Statistics — fuel a wide range of instructional and research efforts, including: design of algorithms and data structures; computer architecture and embedded computer systems; networked and distributed systems; systems software; social and mobile computing; artificial intelligence, machine learning and data mining; computer games and virtual worlds; databases and information retrieval; computer graphics and visualization; bioinformatics, computational biology and genomics; computer-supported cooperative work, human-centered computing and human-computer interaction; security and privacy; software engineering; managerial and social aspects of computing technology; and statistics. The vibrant ICS community continues to explore innovative topics ranging from building complete computer systems on chips smaller than a human fingernail to developing user-interface systems that allow workers on opposite sides of the world to collaborate effectively. ICS research continues to focus on how computing and information technology can be used to solve a broad set of real-world problems, such as improving how first responders communicate during a crisis, optimizing transportation systems, analyzing data to expedite biological research, and improving network security.

ICS faculty actively lead and participate in a variety of research laboratories, institutes and centers, including the Institute for Genomics and Bioinformatics; Institute for Software Research; Institute for Virtual Environments and Computer Games; California Institute for Telecommunications and Information Technology (Calit2); Data Science Initiative; Center for Machine Learning and Intelligent Systems; Center for Digital Transformation; Center for Emergency Response Technologies; Center for Algorithms and Theory of Computation; Center for Research in Sustainability, Collapse-Preparedness & Information Technology; Secure Computing and Networking Center; Center for Ethnography; Social & Technological Action Research Group; Secure Systems and Software Laboratory; Software Engineering and Analysis Lab; Computational Vision Lab; Transformative Play Lab; Laboratory for Ubiquitous Computing and Interaction; Cybersecurity Policy & Research Institute (CPRI); Institute for Future Health; HPI Research Center in Machine Learning and Data Science at UCI; and the Steckler Center for Responsible, Ethical, and Accessible Technology (CREATE).

Faculty and student-driven research in ICS is supported through a variety of grants, gifts, and contracts from public and private institutions such as the State of California, the U.S. Department of Education, various U.S. defense agencies, the National Science Foundation, the National Institutes of Health, NASA, and various companies, including The Aerospace Corporation, Amazon, Boeing, Disney, Experian, Google, IBM, Intel, Microsoft, Samsung, Facebook, and Yahoo!

Faculty and alumni of ICS have contributed some of computing’s most significant advancements, including revolutionizing computer-aided drafting techniques; the creation of the current Hypertext Transfer Protocol (HTTP/1.1); development of the Internet standards for HTTP and Uniform Resource Identifiers (URI); the founding of the Apache HTTP Server Project that produces the software for more than 60 percent of public Internet websites; and the creation of the Domain Name System (DNS) that translates Web and e-mail addresses into the numeric system used to route information along the Internet.

ICS is committed to increasing diversity in the computing and information technology fields. The Stacey Nicholas Office of Access and Inclusion was created as a joint initiative between ICS and UCI’s Samueli School of Engineering to support the recruitment, retention, and graduation of undergraduate and graduate students from populations underrepresented in engineering and computer science. The School is also an active partner of the National Center for Women & Information Technology (NCWIT), whose overarching goal is parity in the professional information technology workforce, and a committed BRAID (Building, Recruiting And Inclusion for Diversity) Institution, working to increase the percentage of women and students of color majoring in computer science.

Honors

Honors at graduation, e.g., cum laude, magna cum laude, summa cum laude, are awarded to approximately the top 16 percent of the graduating seniors. A general criterion is that a student must have completed at least 72 units in residence at the University of California. The student’s cumulative record at the end of the final quarter is the basis for consideration of awarding Latin Honors. Other important factors are considered, please visit Honors Recognition.

Careers

Graduates of the Donald Bren School of Information and Computer Sciences go on to pursue a variety of careers in both industry and academia in the areas of cutting-edge technology, science and business. With the goal of solving real-world problems with a global impact, ICS graduates find limitless opportunities as leaders in virtually every domain—from aerospace, automotive, biomedical, business information management, consumer products, cybersecurity, data science, engineering, entertainment, environmental, finance, gaming, national defense, pharmacology, and software engineering. ICS graduates often find jobs as members of research and development teams—building advanced technologies; designing software and hardware systems; analyzing and securing data; and specifying, designing, and maintaining computing infrastructures for a variety of institutions—while others venture off to form successful start-up companies or work as independent consultants. It is also common for ICS graduates to spend a few years in their related industry before moving into management or advanced technical positions, while others find that the undergraduate educational experience in ICS is the perfect stepping-stone for pursuing graduate studies in various computer science, informatics and statistics degrees, or venturing off into other academic areas such as medicine, law, engineering, or management.

Faculty

Elena Agapie, Ph.D. University of Washington, Assistant Professor of Informatics (human-computer interaction, human-centered design, social computing, computer supported cooperative work, health informatics)
Iftekhar Ahmed, Ph.D. Oregon State University, Assistant Professor of Informatics (data mining, software engineering, software testing and analysis, software maintenance, empirical studies)
Mohammad Al Faruque, Ph.D. University of Kaiserslautern, Chair of Emulex Career Development and Professor of Electrical Engineering and Computer Science; Computer Science; Mechanical and Aerospace Engineering (cyber-physical systems, internet of things, embedded systems, CPS security)
Jonathan Alexander, Ph.D. Louisiana State University, Director of Humanities Core and Chancellor's Professor of English; Culture and Theory; Education; Gender and Sexuality Studies; Informatics (gender and sexuality studies, language/writing/rhetoric, film/TV/new media, 20th- and 21st- century American, creative writing, literary journalism)
Shannon L. Alfaro, M.S. University of California, Irvine, Continuing Lecturer of Computer Science (design/analysis of combinational and sequential systems using SSI/MSI/LSI modules, hardware/firmware implementation of algorithms)
Nader Bagherzadeh, Ph.D. University of Texas at Austin, Professor of Electrical Engineering and Computer Science; Computer Science (parallel processing, computer architecture, computer graphics, memory systems, 3-D ICs, heterogeneous computing, low-power processing)
Brigitte Baldi, Ph.D. Massachusetts Institute of Technology, Lecturer of Statistics
Pierre F. Baldi, Ph.D. California Institute of Technology, Director of the Institute for Genomics and Bioinformatics and Distinguished Professor of Computer Science; Biological Chemistry; Biomedical Engineering; Mathematics (artificial intelligence and machine learning, biomedical informatics, databases and data mining, environmental informatics, statistics and statistical theory)
Mark Baldwin, Ph.D. University of California, Irvine, Lecturer of Informatics
Scott Bartell, Ph.D. University of California, Davis, Professor of Environmental and Occupational Health; Health, Society, and Behavior; Population Health and Disease Prevention; Statistics
Veronica Berrocal, Ph.D. University of Washington, Professor of Statistics
Lubomir Bic, Ph.D. University of California, Irvine, Professor Emeritus of Computer Science (parallel and distributed computing, mobile agents, networks, and distributed systems)
Matthew Bietz, Ph.D. University of Michigan, Lecturer of Informatics
Rebecca W. Black, Ph.D. University of Wisconsin-Madison, Professor of Informatics; Education (digital media and learning, fan studies)
Geoffrey C. Bowker, Ph.D. University of Melbourne, Professor Emeritus of Informatics (values in design, social studies of databases, science and technology studies)
Elaheh Bozorgzadeh, Ph.D. University of California, Los Angeles, Professor of Computer Science (computer architecture and design, design automation and synthesis for embedded systems, VLSI CAD, reconfigurable computing)
Stacy Branham, Ph.D. Virginia Tech, Assistant Professor of Informatics (human-computer interaction, design, assistive technology, safe and brave space, well-being, disability, feminism, marginality, inclusion, interdependence)
Anton Burtsev, Ph.D. University of Utah, Assistant Adjunct Professor of Computer Science (novel low-latency datacenters, microkernels, virtualization, datacenter environments)
Carter Butts, Ph.D. Carnegie Mellon University, Chancellor's Professor of Sociology; Computer Science; Electrical Engineering and Computer Science; Statistics (mathematical sociology, social networks, quantitative methodology, human judgment and decision making, economic sociology)
Hengrui Cai, Ph.D. North Carolina State University, Assistant Professor of Statistics
Michael Carey, Ph.D. University of California, Berkeley, Donald Bren Professor of Information & Computer Sciences and Distinguished Professor of Computer Science (databases and data mining, parallel and distributed systems)
Peter Chang, M.D. Northwestern University, Assistant Professor in Residence of Radiological Sciences; Computer Science; Pathology and Laboratory Medicine
Qi Alfred Chen, Ph.D. University of Michigan, Assistant Professor of Computer Science; Electrical Engineering and Computer Science (smart systems and IoT)
Yunan Chen, Ph.D. Drexel University, Associate Professor of Informatics; Population Health and Disease Prevention (medical informatics, human computer interaction)
Roderic N. Crooks, Ph.D. University of California, Los Angeles, Assistant Professor of Informatics (science and technology studies, education technology, critical data studies, data visualization, community archives)
Rina Dechter, Ph.D. University of California, Los Angeles, UCI Chancellor's Professor of Computer Science (automated reasoning, knowledge-representation, planning and learning)
Brian Demsky, Ph.D. Massachusetts Institute of Technology, Professor of Computer Science; Electrical Engineering and Computer Science (software reliability, security, software engineering, compilation, parallel software, program analysis, and program understanding)
Darren Denenberg, Ph.D. University of Maryland, Lecturer of Informatics
Michael B. Dillencourt, Ph.D. University of Maryland, College Park, Professor of Computer Science (algorithms and complexity, networks and distributed systems, data structures, computational geometry, graph algorithms)
John Christopher Dobrian, Ph.D. University of California, San Diego, Professor of Music; Informatics
Rainer B. Doemer, Ph.D. Dortmund University, Professor of Electrical Engineering and Computer Science; Computer Science (system-level design, embedded computer systems, design methodologies, specification and modeling languages, advanced parallel simulation, integration of hardware and software systems)
Mine Dogucu, Ph.D. Ohio State University, Assistant Professor of Teaching of Statistics
Shayan Doroudi, Ph.D. Carnegie Mellon University, Assistant Professor of Education; Informatics (learning analytics, learning sciences, educational technology)
James P. Dourish, Ph.D. University College London, Steckler Endowed Chair in Information and Computer Science and Chancellor's Professor of Informatics (human-computer interaction, computer-supported cooperative work)
Nikil D. Dutt, Ph.D. University of Illinois at Urbana–Champaign, UCI Distinguished Professor of Computer Science; Cognitive Sciences; Electrical Engineering and Computer Science (embedded systems, computer architecture, electronic design automation, software systems, brain-inspired architectures and computing)
Magda S. El Zarki, Ph.D. Columbia University, Professor of Computer Science; Informatics (telecommunications, networks, wireless communication, video transmission)
David A. Eppstein, Ph.D. Columbia University, UCI Chancellor's Professor of Computer Science (algorithms and complexity; computer graphics and visualization; geometric optimization)
Daniel Epstein, Ph.D. University of Washington, Assistant Professor of Informatics; Computer Science (human-computer interaction, personal informatics, ubiquitous computing, social computing, health informatics)
Julian Feldman, Ph.D. Carnegie Institute of Technology, Professor Emeritus of Computer Science
Charless C. Fowlkes, Ph.D. University of California, Berkeley, Professor of Computer Science; Cognitive Sciences (artificial intelligence, computer vision, machine learning, computational biology)
Roy Fox, Ph.D. The Hebrew University of Jerusalem, Assistant Professor of Computer Science (theory and applications of reinforcement learning, dynamical systems, information theory, robotics)
Michael S. Franz, Ph.D. Swiss Federal Institute of Technology in Zurich, UCI Chancellor's Professor of Computer Science; Electrical Engineering and Computer Science (systems software, particularly compilers and virtual machines, trustworthy computing, software engineering)
Daniel H. Frost, M.S. University of California, Irvine, Professor of Teaching Emeritus of Computer Science (artificial intelligence, software engineering, computer graphics, teaching of programming)
Richard Futrell, Ph.D. Massachusetts Institute of Technology, Assistant Professor of Computer Science; Language Science (language processing, Bayesian modeling, NLP)
Sergio Gago-Masague, Ph.D., Assistant Professor of Teaching of Computer Science (pervasive computing, user-centric software design, human computer interaction, serious games)
Joshua Garcia, Ph.D. University of Southern California, Assistant Professor of Informatics (software engineering, software security, software analysis and testing, software architecture, software maintenance)
Irene Gassko, Ph.D. Boston University, Lecturer of Computer Science
Jean-Luc Gaudiot, Ph.D. University of California, Los Angeles, Distinguished Professor of Electrical Engineering and Computer Science; Computer Science (parallel processing, computer architecture, processor architecture)
Daniel L. Gillen, Ph.D. University of Washington, Department Chair and Chancellor's Professor of Statistics; Epidemiology and Biostatistics
Tony D. Givargis, Ph.D. University of California, Riverside, Professor of Computer Science (embedded systems, platform-based system-on-a-chip design, low-power electronics)
Michael T. Goodrich, Ph.D. Purdue University, UCI Chancellor's Professor of Computer Science (computer security, algorithm design, data structures, Internet algorithmics, geometric computing, graphic drawing)
Richard H. Granger, Ph.D. Yale University, Professor Emeritus of Computer Science
Vijay Gurbaxani, Ph.D. University of Rochester, Taco Bell Chair in Information Technology Management and Professor of Paul Merage School of Business; Informatics (economics of information systems management, impact of information technology on organization and market structure)
Matthew Harding, Ph.D. Massachusetts Institute of Technology, Professor of Economics; Statistics
Ian G. Harris, Ph.D. University of California, San Diego, Professor of Computer Science; Electrical Engineering and Computer Science (hardware/software covalidation, manufacturing test)
Gillian Hayes, Ph.D. Georgia Institute of Technology, Robert A. and Barbara L. Kleist Professor of Informatics; Education (interactive and collaborative technology, human-computer interaction, computer-supported cooperative work, educational technology, ubiquitous computing)
Wayne B. Hayes, Ph.D. University of Toronto, Associate Professor of Computer Science (biomedical informatics and computational biology, computer vision, scientific and numerical computing)
Dan S. Hirschberg, Ph.D. Princeton University, Professor of Computer Science (analyses of algorithms, concrete complexity, data structures, models of computation)
Mustafa Ibrahim, M.S. California State University, Lecturer of Computer Science (software engineering)
Alexander T. Ihler, Ph.D. Massachusetts Institute of Technology, Professor of Computer Science (artificial intelligence and machine learning, probabilistic models, sensor networks, and distributed systems)
Mohsen Imani, Ph.D. University of California, San Diego, Assistant Professor of Computer Science (computer networking and systems)
Sandra S. Irani, Ph.D. University of California, Berkeley, Professor of Computer Science (algorithms and complexity)
Jesse Colin Jackson, M.Arch. University of Toronto, Associate Dean for Creative Research and Director of the Minor in Digital Arts and Associate Professor of Art; Informatics (media art, architecture, design, informatics)
Ramesh Chandra Jain, Ph.D. Indian Institute of Technology Kharagpur, Donald Bren Professor of Information & Computer Sciences and Distinguished Professor of Computer Science (computer vision, multimedia computing, image databases, machine vision, intelligent systems)
Stanislaw M. Jarecki, Ph.D. Massachusetts Institute of Technology, Professor of Computer Science (algorithms and complexity, applies and distributed cryptograph)
Ivan G. Jeliazkov, Ph.D. Washington University, Associate Professor of Economics; Statistics
Wesley O. Johnson, Ph.D. University of Minnesota, Professor Emeritus of Statistics
James Jones, Ph.D. Georgia Institute of Technology, Associate Professor of Informatics (software engineering, software testing and analysis, debugging and fault localization, static and dynamic analysis, software visualization)
Scott A. Jordan, Ph.D. University of California, Berkeley, Professor of Computer Science; Electrical Engineering and Computer Science (pricing and differentiated services in the Internet, resource allocation in wireless networks, telecommunications policy)
Sang-Woo Jun, Ph.D. Massachusetts Institute of Technology, Assistant Professor of Computer Science (computer systems architecture, hardware acceleration, non-volatile memory)
Sangeetha A. Jyothi, Ph.D. University of Illinois, Urbana-Champaign, Assistant Professor of Computer Science (computer networking and systems)
Kalev Kask, Ph.D. University of California, Irvine, Lecturer of Computer Science (artificial intelligence focusing on automated reasoning, graphical models)
David G. Kay, J.D. Loyola Marymount University, Professor Emeritus of Teaching of Informatics; Computer Science (computer law, computer science education)
Solmaz S. Kia, Ph.D. University of California, Irvine, Associate Professor of Mechanical and Aerospace Engineering; Computer Science (systems and control, decentralized/distributed algorithm design for multi-agent systems, cooperative robotics)
Dennis F. Kibler, Ph.D. University of California, Irvine, Professor Emeritus of Computer Science (artificial intelligence and machine learning, gene regulation, biological genomes)
Raymond O. Klefstad, Ph.D. University of California, Irvine, Associate Professor of Teaching of Computer Science (embedded systems, networks and distributed systems, programming languages and systems)
Alfred Kobsa, Ph.D. University of Vienna, Professor Emeritus of Informatics; Computer Science (user modeling, human-computer interaction, artificial intelligence, cognitive science, interdisciplinary computer science)
Peter Krapp, Ph.D. University of California, Santa Barbara, Professor of Film and Media Studies; English; European Languages and Studies; Informatics; Music; Visual Studies (secret communications and cybernetics [cryptologic history], cultural memory and media history [games and simulations, history of computing], aesthetic communication [title design, film music])
Jeffrey L. Krichmar, Ph.D. George Mason University, Professor of Cognitive Sciences; Computer Science (computational neuroscience, robotics, artificial intelligence, neural networks)
Alberto Garcez De Oliveira Krone Martins, Ph.D. University of Michigan, Lecturer of Informatics
Fadi J. Kurdahi, Ph.D. University of Southern California, Director, Center for Embedded Computer Systems and Associate Dean for Graduate and Professional Studies and Professor of Electrical Engineering and Computer Science; Computer Science (embedded and cyber-physical systems, VLSI system design, design automation of digital systems)
Richard H. Lathrop, Ph.D. Massachusetts Institute of Technology, Professor of Computer Science (modeling structure and function, machine learning, intelligent systems and molecular biology, protein structure/function prediction)
Marco Levorato, Ph.D. University of Padua, Associate Professor of Computer Science; Electrical Engineering and Computer Science (artificial intelligence and machine learning, networks and distributed systems, statistics and statistical theory, stochastic modeling, signal processing)
Chen Li, Ph.D. Stanford University, Professor of Computer Science (databases and text processing, multimedia databases, data integration)
Kwei-Jay Lin, Ph.D. University of Maryland, College Park, Professor Emeritus of Electrical Engineering and Computer Science; Computer Science (real-time systems, distributed systems, service-oriented computing)
Cristina V. Lopes, Ph.D. Northeastern University, Professor of Informatics (programming languages, acoustic communications, operating systems, software engineering)
George S. Lueker, Ph.D. Princeton University, Professor Emeritus of Computer Science (algorithms and complexity)
Scott Mahlke, Ph.D. University of Illinois at Urbana-Champaign, Professor of Computer Science (custom-fit architectures for energy efficiency and reliability, compilers and run-time systems)
Aditi Majumder, Ph.D. University of North Carolina at Chapel Hill, Professor of Computer Science (novel displays and cameras for computer graphics and visualization, human-computer interaction, applied computer vision)
Sam Malek, Ph.D. University of Southern California, Associate Professor of Informatics (software engineering, software architecture, software security, software analysis and testing)
Stephan Mandt, Ph.D. University of Cologne, Associate Professor of Computer Science; Statistics (artificial intelligence and machine learning, probabilistic modeling, Bayesian deep learning, variational inference)
Gloria J. Mark, Ph.D. Columbia University, Professor of Informatics (computer-supported cooperative work, human-computer interaction)
Athina Markopoulou, Ph.D. Stanford University, Professor of Electrical Engineering and Computer Science; Computer Science (networking: including network protocols, network measurement and analysis, mobile systems and mobile data analysis, network security and privacy)
Melissa Mazmanian, Ph.D. Massachusetts Institute of Technology, Chancellor's Fellow and Professor of Informatics; Paul Merage School of Business (computer-mediated communication, organization studies, information and communication technologies in practice, social response to emerging technologies, work/non-work negotiations in the information age)
Gopi Meenakshisundaram, Ph.D. University of North Carolina at Chapel Hill, Professor of Computer Science (geometry and topology for computer graphics, image-based rendering, object representation, surface reconstruction, collision detection, virtual reality, telepresence)
Sharad Mehrotra, Ph.D. University of Texas at Austin, Professor of Computer Science (databases and data mining, multimedia computing, networks and distributed systems)
Milena Mihail, Ph.D. Harvard University, Associate Professor of Computer Science (randomization, expander graphs, Markov chains, network design)
Volodymyr Minin, Ph.D. University of California, Los Angeles, Professor of Statistics
Eric D. Mjolsness, Ph.D. California Institute of Technology, Professor of Computer Science; Mathematics (artificial intelligence and machine learning, biomedical informatics and computational biology, applied mathematics, mathematical biology, modeling languages)
Bin Nan, Ph.D. University of Washington, Chancellor's Professor of Statistics; Epidemiology and Biostatistics
Bonnie A. Nardi, Ph.D. University of California, Irvine, Professor Emeritus of Informatics (computer-supported collaborative work, human-computer interaction, computer-mediated communication, user studies methods, activity theory, cultural responses to technology development)
Emily Navarro, Ph.D. University of California, Irvine, Lecturer of Informatics
Faisal Nawab, Ph.D. University of California, Santa Barbara, Assistant Professor of Computer Science (databases and data mining, networks and distributed systems)
Alexandru Nicolau, Ph.D. Yale University, Professor of Computer Science (architecture, parallel computation, programming languages and compilers)
Trina M. Norden-Krichmar, Ph.D. University of California, San Diego, Associate Professor of Epidemiology and Biostatistics; Biological Chemistry; Computer Science; Pharmaceutical Sciences
Candice Odgers, Ph.D. University of Virginia, Professor of Psychological Science; Criminology, Law and Society; Informatics (developmental and quantitative psychology; social inequalities and child health; new technologies and adolescent development)
Gary Olson, Ph.D. Stanford University, Professor Emeritus of Informatics (interactive and collaborative technology, human-computer interaction, computer-supported cooperative work)
Judith Olson, Ph.D. University of Michigan, Professor Emeritus of Informatics (interactive and collaborative technology, human-computer interaction, computer-supported cooperative work)
Ioannis Panageas, Ph.D. Georgia Institute of Technology, Assistant Professor of Computer Science (algorithms and complexity artificial intelligence and machine learning)
Marios Papaefthymiou, Ph.D. Massachusetts Institute of Technology, Ted and Janice Smith Family Foundation Dean and Professor of Computer Science (computer architecture and design, networks and distributed systems)
Richard Pattis, M.S. Stanford University, Professor of Teaching of Computer Science; Informatics (MicroWorlds for teaching programming, debugging, computational tools for non-computer scientists)
Simon G. Penny, M.F.A. Sydney College of the Arts, Professor of Art; Informatics (informatics, robotic sculpture, interactive environments, electronic media)
Kylie Peppler, Ph.D. University of California, Los Angeles, Professor of Informatics; Education (learning sciences, design, maker culture, arts, game design, computer programming, wearables)
Anne Marie Piper, Ph.D. University of California, San Diego, Associate Professor of Informatics (human-computer interaction, computer-supported cooperative work, assistive technology, accessibility, design)
Tianchen Qian, Ph.D. Johns Hopkins University, Assistant Professor of Statistics
Annie Qu, Ph.D. The Pennsylvania State University, Chancellor's Professor of Statistics
David F. Redmiles, Ph.D. University of Colorado Boulder, Professor of Informatics (computer-supported cooperative work, human computer interaction, software engineering, globally distributed development teams, user interfaces, software tools)
Amelia C. Regan, Ph.D. University of Texas at Austin, Professor of Computer Science (algorithm development and complexity, networks and distributed systems, network optimization)
Stephanie Reich, Ph.D. Vanderbilt University, Professor of Education; Informatics; Psychological Science (child development, parenting, peer interactions, media, program evaluation)
Debra J. Richardson, Ph.D. University of Massachusetts, Professor Emeritus of Informatics (software engineering, program testing, life-cycle validation, software environments)
Bonnie (Bo) Ruberg, Ph.D. University of California, Berkeley, Assistant Professor of Film and Media Studies; Informatics (digital media, game studies, technology, Queer studies, LGBTQ studies, gender studies, video games, feminism, digital humanities)
Katie Salen Tekinbaş, M.F.A. Rhode Island School of Design, Professor of Informatics (game design, connected learning design, human-computer interaction)
Ardalan Amiri Sani, Ph.D. Rice University, Assistant Professor of Computer Science; Electrical Engineering and Computer Science (involves building efficient, high performance, and reliable systems)
Isaac D. Scherson, Ph.D. Weizmann Institute of Science, Professor of Computer Science (parallel computing architectures, massively parallel systems, parallel algorithms, interconnection networks, performance evaluation)
Stephen Schueller, Ph.D. University of Pennsylvania, Associate Professor of Psychological Science; Informatics (clinical psychology, depression, mHealth, technology, implementation science, treatment and prevention, positive psychology)
Patricia Seed, Ph.D. University of Wisconsin-Madison, Professor of History; Informatics (mapping: history and design, game design, navigation)
Babak Shahbaba, Ph.D. University of Toronto, Chancellor's Fellow and Professor of Statistics; Computer Science
Weining Shen, Ph.D. North Carolina State University, Associate Professor of Statistics
Phillip C-Y Sheu, Ph.D. University of California, Berkeley, Professor of Electrical Engineering and Computer Science; Biomedical Engineering; Computer Science (semantic computing, robotic computing, artificial intelligence, biomedical computing, multimedia computing)
Michael Shindler, Ph.D. University of California, Los Angeles, Assistant Professor of Teaching of Computer Science (theory and machine learning, computer science education)
Sameer Singh, Ph.D. University of Massachusetts Amherst, Associate Professor of Computer Science; Electrical Engineering and Computer Science; Language Science (artificial intelligence and machine learning, databases and data mining, scientific and numerical computing)
Padhraic J. Smyth, Ph.D. California Institute of Technology, Chancellor's Professor of Computer Science; Education; Statistics (artificial intelligence and machine learning, pattern recognition, applied statistics, data mining, information theory)
Kurt Squire, Ph.D. Indiana University, Professor of Informatics; Education (video game design, games for learning, mobile technologies, civic engagement, place-based learning)
Thomas A. Standish, Ph.D. Carnegie Institute of Technology, Professor Emeritus of Information and Computer Sciences (software testing and analysis, software semantics and epistemology, programming and cognition, software comprehension)
Constance Steinkuehler, Ph.D. University of Wisconsin-Madison, Professor of Informatics; Education (video games for impact, game-mediated cognition and learning, online social interaction, video games and policy)
Hal S. Stern, Ph.D. Stanford University, Chancellor's Professor of Statistics; Cognitive Sciences
Mark Steyvers, Ph.D. Indiana University, Professor of Cognitive Sciences; Computer Science; Psychological Science (higher-order cognition, learning, metacognition, hybrid human-AI systems, computational modeling)
Erik B. Sudderth, Ph.D. Massachusetts Institute of Technology, Professor of Computer Science; Statistics (artificial intelligence and machine learning, computer vision, statistics and statistical theory)
Theresa Tanenbaum, Ph.D. Simon Fraser University, Assistant Professor of Informatics (digital games and narrative, tangible and wearable interaction, maker and DIY culture, nonverbal communication and virtual worlds)
Richard N. Taylor, Ph.D. University of Colorado Boulder, Professor Emeritus of Informatics (software engineering, user interfaces, environments, team support)
Alexander W. Thornton, B.S. University of California, Irvine, Continuing Lecturer of Computer Science
William M. Tomlinson, Ph.D. Massachusetts Institute of Technology, Professor of Informatics; Education (environmental informatics, educational technology, computer graphics/visualization/digital arts)
Gene Y. Tsudik, Ph.D. University of Southern California, UCI Chancellor's Professor of Computer Science (computer and network security and privacy; applied cryptography)
Jessica Utts, Ph.D. Pennsylvania State University, Professor Emeritus of Statistics
André W. Van der Hoek, Ph.D. University of Colorado Boulder, Professor of Informatics (software engineering)
Joachim S. Vandekerckhove, Ph.D. University of Leuven, Professor of Cognitive Sciences; Logic and Philosophy of Science; Statistics (response time modeling, model fitting, computational statistics, psychometrics, bayesian statistics)
Vijay Vazirani, Ph.D. University of California, Berkeley, Distinguished Professor of Computer Science (algorithms and complexity, scientific and numerical computing)
Alexander Veidenbaum, Ph.D. University of Illinois at Urbana-Champaign, Professor of Computer Science (computer architecture, embedded systems, compilers, programming languages and systems, database and data mining)
Nalini Venkatasubramanian, Ph.D. University of Illinois at Urbana-Champaign, Professor of Computer Science (multimedia computing, networks and distributed systems, global information infrastructure, multiple resource management services)
Mark J. Warschauer, Ph.D. University of Hawaii at Manoa, Professor of Education; Informatics (language, literacy, technology, STEM)
Jennifer Wong-Ma, Ph.D. University of California, Los Angeles, Associate Professor of Teaching of Computer Science (computer architecture and design, embedded systems, hardware intellectual property protection, statistical optimization)
Xaiohui Xie, Ph.D. Massachusetts Institute of Technology, Professor of Computer Science; Developmental and Cell Biology (computational biology, bioinformatics, genomics, neural computation, machine learning)
Xiangmin Xu, Ph.D. Vanderbilt University, Chancellor's Fellow and Professor of Anatomy and Neurobiology; Biomedical Engineering; Computer Science
Yaming Yu, Ph.D. Harvard University, Associate Professor of Statistics
Zhaoxia Yu, Ph.D. William Marsh Rice University, Professor of Statistics; Epidemiology and Biostatistics
Charles S. Zender, Ph.D. University of Colorado Boulder, Professor of Earth System Science; Computer Science
Jing Zhang, Ph.D. University of Southern California, Assistant Professor of Computer Science (artificial intelligence and machine learning, biomedical informatics and computational biology)
Hong-Kai Zhao, Ph.D. University of California, Los Angeles, Chancellor's Professor Emeritus of Mathematics; Computer Science (applied and computational mathematics, inverse problems and imaging)
Shuang Zhao, Ph.D. Cornell University, Assistant Professor of Computer Science (computer graphics with a focus on material appearance modeling and physically-based rendering)
Kai Zheng, Ph.D. Carnegie Mellon University, Associate Professor of Informatics (health informatics, human factors and human-computer interaction, technology adoption and acceptance, outcomes and evaluation)
Hadar Ziv, Ph.D. University of California, Irvine, Associate Professor of Teaching of Informatics (software testing, requirements engineering, Bayesian modeling)

Computer Science Courses

COMPSCI 103. Advanced Programming and Problem Solving with C++. 4 Units.

Advanced programming language concepts for more complex, higher performance software design. Builds depth of programming skills in C++ as a foundation for upper-division courses and projects. Focuses on strengthening programming, debugging, and problem solving skills.

Prerequisite: I&C SCI 45C

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 111. Digital Image Processing. 4 Units.

Introduction to the fundamental concepts of digital signal and image processing as applicable in areas such as multimedia, graphics, AI, data mining, databases, vision, or video games. Topics include image representation, space- and frequency-domain transformations, filters, segmentation, and compression.

Prerequisite: (I&C SCI 46 or CSE 46) and I&C SCI 6D and (MATH 3A or I&C SCI 6N). I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better. I&C SCI 6D with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 112. Computer Graphics. 4 Units.

Introduction to the fundamental principles of 3D computer graphics including polygonal modeling, geometric transformations, visibility algorithms, illumination models, texturing, and rasterization. Use of an independently-learned 3D graphics API to implement these techniques.

Prerequisite: I&C SCI 46 and (MATH 3A or I&C SCI 6N). I&C SCI 46 with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 113. Computer Game Development. 4 Units.

Introduction to the principles of interactive 2D and 3D computer game development. Concepts in computer graphics, algorithms, software engineering, art and graphics, music and sound, story analysis, and artificial intelligence are presented and are the basis for student work.

Prerequisite: COMPSCI 112 or COMPSCI 171 or IN4MATX 121 or ART 106B or I&C SCI 163 or I&C SCI 166

Same as IN4MATX 125.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 114. Projects in Advanced 3D Computer Graphics. 4 Units.

Projects in advanced 3D graphics such as illumination, geometric modeling, visualization, and animation. Topics include physically based and global illumination, solid modeling, curved surfaces, multiresolution modeling, image-based rendering, basic concepts of animation, and scientific visualization.

Prerequisite: COMPSCI 112 and (I&C SCI 45C or CSE 45C). I&C SCI 45C with a grade of C or better. CSE 45C with a grade of C or better. Recommended: COMPSCI 161 or CSE 161 or COMPSCI 164 or COMPSCI 165.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 115. Computer Simulation. 4 Units.

Discrete event-driven simulation; continuous system simulation; basic probability as pertaining to input distributions and output analysis; stochastic and deterministic simulation; static and dynamic system simulation.

Prerequisite: I&C SCI 6B and (I&C SCI 6N or MATH 3A) and (STATS 67 or STATS 7) and STATS 120A and I&C SCI 51 and IN4MATX 43. I&C SCI 6B with a grade of C or better. I&C SCI 6N with a grade of C or better. MATH 3A with a grade of C or better. STATS 67 with a grade of C or better. STATS 7 with a grade of C or better. STATS 120A with a grade of C or better. I&C SCI 51 with a grade of C or better. IN4MATX 43 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 116. Computational Photography and Vision. 4 Units.

Introduces the problems of computer vision through the application of computational photography. Specific topics include photo-editing (image warping, compositing, hole filling), panoramic image stitching, and face detection for digital photographs.

Prerequisite: I&C SCI 6D and (MATH 6G or MATH 3A or I&C SCI 6N) and MATH 2B and (I&C SCI 46 or CSE 46). I&C SCI 6D with a grade of C or better. MATH 6G with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better. MATH 2B with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 117. Project in Computer Vision. 4 Units.

Students undertake construction of a computer vision system. Topics include automatically building 3D models from photographs, searching photo collections, robot navigation, and human motion tracking.

Prerequisite: I&C SCI 6D and (MATH 3A or I&C SCI 6N) and MATH 2B and (I&C SCI 46 or CSE 46) and (COMPSCI 112 or COMPSCI 116 or COMPSCI 171 or COMPSCI 178). I&C SCI 6D with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better. MATH 2B with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 118. Introduction to Virtual Reality. 4 Units.

Introduces virtual reality systems and software. Topics include computer graphics pipeline, human visual system and perception, head mounted displays, image formation, sensors and tracking, and 3D sound. Students use a popular cross-platform game engine to create VR environments.

Prerequisite: (I&C SCI 6N or MATH 3A) and I&C SCI 33

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 121. Information Retrieval. 4 Units.

An introduction to information retrieval including indexing, retrieval, classifying, and clustering text and multimedia documents.

Prerequisite: (I&C SCI 45C or I&C SCI 45J) and (STATS 7 or STATS 67). I&C SCI 45C with a grade of C or better. I&C SCI 45J with a grade of C or better

Same as IN4MATX 141.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 122A. Introduction to Data Management. 4 Units.

Introduction to the design of databases and the use of database management systems (DBMS) for applications. Topics include entity-relationship modeling for design, relational data model, relational algebra, relational design theory, and Structured Query Language (SQL) programming.

Prerequisite: I&C SCI 33 or EECS 114. I&C SCI 33 with a grade of C or better

Same as EECS 116.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 122B. Project in Databases and Web Applications. 4 Units.

Introduces students to advanced database technologies and web applications. Topics include database connectivity (ODBC/JDBC), extending databases using stored procedures, database administration, web servers, web programming languages (Java servlets, XML, Ajax, and mobile platforms).

Prerequisite: (COMPSCI 122A or EECS 116) and (I&C SCI 45J or AP Computer Science A). AP Computer Science A with a minimum score of 4

Overlaps with COMPSCI 137, IN4MATX 124.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 122C. Principles of Data Management. 4 Units.

Covers fundamental principles underlying data management systems. Content includes key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.

Prerequisite: COMPSCI 122A and (I&C SCI 53 or COMPSCI 143A)

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 222.

COMPSCI 122D. Beyond SQL Data Management. 4 Units.

Survey of modern data management and analysis technologies beyond relational (SQL) database management. Topics include semistructured data, NoSQL databases, big data analysis, and text search/query engines. Additional topics vary and may include data frames, streaming data, and/or time-series data.

Prerequisite: I&C SCI 46 and I&C SCI 51 and (COMPSCI 122A or EECS 116)

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Majors have first consideration for enrollment. Computer Science and Engineering and all School of ICS majors have second right of consideration.

COMPSCI 125. Next Generation Search Systems. 4 Units.

Discusses concepts and techniques related to all aspects of search systems. After considering basic search technology and the state-of-art systems, rapidly developing techniques for multimedia search, local search, event-search, and video-on-demand are explored.

Prerequisite: (I&C SCI 45C or I&C SCI 45J) and (STATS 7 or STATS 67). I&C SCI 45C with a grade of C or better. I&C SCI 45J with a grade of C or better

Restriction: Upper-division students only. Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 131. Parallel and Distributed Computing. 4 Units.

Parallel and distributed computer systems. Parallel programming models. Common parallel and distributed programming issues. Specific topics include parallel programming, performance models, coordination and synchronization, consistency and replication, transactions, fault tolerance.

Prerequisite: I&C SCI 53 or COMPSCI 143A

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 132. Computer Networks. 4 Units.

Computer network architectures, protocols, and applications. Internet congestion control, addressing, and routing. Local area networks. Multimedia networking.

Prerequisite: EECS 55 or STATS 67

Same as EECS 148.

Restriction: Computer Engineering Majors have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 133. Advanced Computer Networks. 4 Units.

Fundamental principles in computer networks are applied to obtain practical experience and skills necessary for designing and implementing computer networks, protocols, and network applications. Various network design techniques, simulation techniques, and UNIX network programming are covered.

Prerequisite: COMPSCI 132 or EECS 148

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 134. Computer and Network Security. 4 Units.

Overview of modern computer and networks security, attacks, and countermeasures. Authentication, identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Also covers secure e-commerce and applications of public key methods, digital certificates, and credentials.

Prerequisite: (COMPSCI 132 or EECS 148) and COMPSCI 161 and I&C SCI 53

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 137. Internet Applications Engineering. 4 Units.

Concepts in Internet applications engineering with emphasis on the Web. Peer-to-Peer and Interoperability. Topics include HTTP and REST, Remote Procedure/Method Calls, Web Services, data representations, content distribution networks, identity management, relevant W3C/IETF standards, and relevant new large-scale computing styles.

Prerequisite: (COMPSCI 132 or EECS 148) and I&C SCI 45J

Same as IN4MATX 124.
Overlaps with COMPSCI 122B.

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 141. Concepts in Programming Languages I. 4 Units.

In-depth study of several contemporary programming languages stressing variety in data structures, operations, notation, and control. Examination of different programming paradigms, such as logic programming, functional programming and object-oriented programming; implementation strategies, programming environments, and programming style.

Prerequisite: (I&C SCI 51 or CSE 31 or EECS 31) and (I&C SCI 46 or CSE 46). I&C SCI 51 with a grade of C or better. CSE 31 with a grade of C or better. EECS 31 with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Same as IN4MATX 101.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 142A. Compilers and Interpreters. 4 Units.

Introduction to the theory of programming language processors covering lexical analysis, syntax analysis, semantic analysis, intermediate representations, code generation, optimization, interpretation, and run-time support.

Prerequisite: CSE 141 or COMPSCI 141 or IN4MATX 101

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 142B. Language Processor Construction. 4 Units.

Project course which provides working laboratory experience in construction and behavior of compilers and interpreters. Students build actual language processors and perform experiments which reveal their behaviors.

Prerequisite: COMPSCI 142A or CSE 142

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 143A. Principles of Operating Systems. 4 Units.

Principles and concepts of process and resource management, especially as seen in operating systems. Processes, memory management, protection, scheduling, file systems, and I/O systems are covered. Concepts illustrated in the context of several well-known systems.

Prerequisite: (I&C SCI 46 or CSE 46) and (I&C SCI 51 or EECS 31 or CSE 31)

Overlaps with EECS 111.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 143B. Project in Operating System Organization. 4 Units.

Detailed specification and design of critical components of an actual operating system including a memory manager, a process server, and a file/IO subsystem. Hardware/software tradeoffs. Emphasis on logical organization of system and communication.

Prerequisite: COMPSCI 143A

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 145. Embedded Software. 6 Units.

Principles of embedded computing systems: embedded systems architecture, hardware/software components, system software and interfacing, real-time operating systems, hardware/software co-development, and communication issues. Examples of embedded computing in real-world application domains. Simple programming using an embedded systems development environment.

Prerequisite: (CSE 46 or I&C SCI 46) and (I&C SCI 51 or EECS 31 or CSE 31)

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 146. Programming in Multitasking Operating Systems. 4 Units.

User- and systems-level programming of modern Internet-connected, multi-user, multitasking operating systems. Shells, scripting, filters, pipelines, programmability, extensibility, concurrency, inter-process communication. Concrete examples of a modern operating system (such as, but not necessarily, Unix programmed in C) are used.

Prerequisite: (I&C SCI 46 or CSE 46) and I&C SCI 51. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better. I&C SCI 51 with a grade of C or better. Recommended: COMPSCI 143A.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 147. Internet of Things (IoT) Software and Systems. 4 Units.

Introduction to the Internet of Things (IoT) from a systems and software perspective. IoT ecosystem including sensors, embedded CPUs, networking protocols, software, cloud services, and security and privacy requirements. IoT use cases, system design, and programming project.

Prerequisite: I&C SCI 33 or CSE 43

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 151. Digital Logic Design. 4 Units.

Boolean algebra. Design/analysis of combinational and sequential systems using SSI/MSI/LSI modules. Number systems. Error detecting and correction codes. Arithmetic algorithms. Hardware/ firmware implementation of algorithms.

Prerequisite: (I&C SCI 33 or CSE 43) and I&C SCI 51 and I&C SCI 6B and I&C SCI 6D. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better. I&C SCI 51 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 152. Computer Systems Architecture. 4 Units.

Design of computer elements; ALU, control unit, and arithmetic circuits. Memory hierarchy and organization. Caches. Function unit sharing and pipelining. I/O and interrupt processing. RTL and behavioral modeling using hardware description languages. Microprocessor organization and implementation techniques.

Prerequisite: COMPSCI 151

Overlaps with I&C SCI 160, EECS 112.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 153. Logic Design Laboratory. 4 Units.

Introduction to standard integrated circuits. Construction and debugging techniques. Design of digital systems using LSI and MSI components. Practical use of circuits in a laboratory environment, including implementation of small digital systems such as arithmetic modules, displays, and timers.

Prerequisite: COMPSCI 151

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 154. Computer Design Laboratory. 4 Units.

Underlying primitives of computer instruction sets. Principles of microprogramming. Microprogramming. Microprograms written for one or more systems. Typical microprogramming applications discussed and implemented or simulated.

Prerequisite: COMPSCI 151

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 161. Design and Analysis of Algorithms. 4 Units.

Techniques for efficient algorithm design, including divide-and-conquer and dynamic programming, and time/space analysis. Fast algorithms for problems applicable to networks, computer games, and scientific computing, such as sorting, shortest paths, minimum spanning trees, network flow, and pattern matching.

Prerequisite: (I&C SCI 46 or CSE 46) and I&C SCI 6B and I&C SCI 6D and MATH 2B. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Software Engineering Majors have first consideration for enrollment. Data Science Majors have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment. Computer Science Majors have first consideration for enrollment. Business Information Management, Computer Game Science, and Informatics majors have second right of consideration.

COMPSCI 162. Formal Languages and Automata. 4 Units.

Formal aspects of describing and recognizing languages by grammars and automata. Parsing regular and context-free languages. Ambiguity, nondeterminism. Elements of computability; Turning machines, random access machines, undecidable problems, NP-completeness.

Prerequisite: (I&C SCI 46 or CSE 46) and MATH 2B and I&C SCI 6B and I&C SCI 6D. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Same as LSCI 102.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Cognitive Sciences Majors have first consideration for enrollment. Language Science Majors have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 163. Graph Algorithms. 4 Units.

Algorithms for solving fundamental problems in graph theory. Graph representations, graph traversal, network flow, connectivity, graph layout, matching problems.

Prerequisite: COMPSCI 161 or CSE 161

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 265.

COMPSCI 164. Computational Geometry and Geometric Modeling. 4 Units.

Algorithms and data structures for computational geometry and geometric modeling, with applications to game and graphics programming. Topics: convex hulls, Voronoi diagrams, algorithms for triangulation, motion planning, and data structures for geometric searching and modeling of 2D and 3D objects.

Prerequisite: I&C SCI 46 or CSE 46. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 165. Project in Algorithms and Data Structures. 4 Units.

Design, implementation, execution, and analysis of algorithms for problems such as sorting, searching, data compression, and data encryption. Time-space-structure trade-offs.

Prerequisite: COMPSCI 161 or CSE 161. Recommended: I&C SCI 45C OR CSE 45C.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Majors have first consideration for enrollment. Computer Science and Engineering majors and all School of ICS majors have second right of consideration.

COMPSCI 166. Quantum Computation and Information. 4 Units.

Basic models for quantum computation and their foundations in quantum mechanics. Quantum complexity classes and quantum algorithms, including algorithms for factoring and quantum simulation. Introduction to quantum information theory and quantum entanglement.

Prerequisite: (I&C SCI 6N or MATH 3A) and (COMPSCI 161 or PHYSICS 113A). I&C SCI 6N with a grade of C+ or better. MATH 3A with a grade of C+ or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 264.

COMPSCI 167. Introduction to Applied Cryptography. 4 Units.

An introduction to the essential aspects of applied cryptography, as it is used in practice. Topics include classical cryptography, block ciphers, stream ciphers, public-key cryptography, digital signatures, one-way hash functions, basic cryptographic protocols, and digital certificates and credentials.

Prerequisite: COMPSCI 161 or CSE 161

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 169. Introduction to Optimization. 4 Units.

A broad introduction to optimization. Unconstrained and constrained optimization. Equality and inequality constraints. Linear and integer programming. Stochastic dynamic programming.

Prerequisite: (I&C SCI 6N or MATH 3A) and (STATS 67 or (STATS 7 and STATS 120A))

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 268.

COMPSCI 171. Introduction to Artificial Intelligence. 4 Units.

Different means of representing knowledge and uses of representations in heuristic problem solving. Representations considered include predicate logic, semantic nets, procedural representations, natural language grammars, and search trees.

Prerequisite: ((STATS 7 and STATS 120A) or STATS 67) and I&C SCI 46 and MATH 2B

Overlaps with EECS 118.

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 172B. Neural Networks and Deep Learning . 4 Units.

Neural network and deep learning from multiple perspectives. Theory of parallel distributed processing systems, algorithmic approaches for learning from data in various manners, applications to difficult problems in AI from computer vision, to natural language understanding, to bioinformatics and chemoinformatics.

Prerequisite: (STATS 120A and STATS 120B) or MATH 121A or COMPSCI 178 or COMPSCI 273A

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 274C.

COMPSCI 172C. Artificial Intelligence Frontiers: Technical, Ethical, and Societal. 4 Units.

Explores the frontiers of artificial intelligence and related technologies with a focus on the underlying ethical, legal, and societal challenges and opportunities they create. Encourages critical thinking about these issues.

Prerequisite: COMPSCI 171 and COMPSCI 172B. Recommended: COMPSCI 178

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 274D.

COMPSCI 175. Project in Artificial Intelligence. 4 Units.

Construction of a working artificial intelligence system. Evaluation of capabilities of the system including impact of knowledge representation.

Prerequisite: COMPSCI 171 and COMPSCI 178

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 177. Applications of Probability in Computer Science. 4 Units.

Application of probability to real-world problems in computer science. Typical topics include analysis of algorithms and graphs, probabilistic language models, network traffic modeling, data compression, and reliability modeling.

Prerequisite: MATH 2B and STATS 67 and I&C SCI 6B and I&C SCI 6D and (MATH 3A or I&C SCI 6N)

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 178. Machine Learning and Data-Mining. 4 Units.

Introduction to principles of machine learning and data-mining applied to real-world datasets. Typical applications include spam filtering, object recognition, and credit scoring.

Prerequisite: I&C SCI 6B and I&C SCI 6D and (I&C SCI 6N or MATH 3A) and MATH 2B and (STATS 67 or (STATS 7 and STATS 120A))

Overlaps with EECS 125.

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 179. Algorithms for Probabilistic and Deterministic Graphical Models. 4 Units.

Graphical model techniques dealing with probabilistic and deterministic knowledge representations. Focuses on graphical models such as constraint networks, Bayesian networks, and Markov networks that have become a central paradigm for knowledge representation and reasoning in AI and general computer science.

Prerequisite: COMPSCI 171

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

COMPSCI 180A. Project in Computer Science. 4 Units.

Students to solve a substantial real-world problem with knowledge gained from many areas in computer science. Project has a focus on computer science but can overlap with neighbor disciplines.

Prerequisite: I&C SCI 46

Grading Option: In Progress (Letter Grade with P/NP).

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 180B. Project in Computer Science. 4 Units.

Students to solve a substantial real-world problem with knowledge gained from many areas in computer science. Project has a focus on computer science but can overlap with neighbor disciplines.

Prerequisite: COMPSCI 180A. In Progress (IP) grade for COMPSCI 180A is also accepted.

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 183. Introduction to Computational Biology. 4 Units.

The use of theories and methods based on computer science, mathematics, and physics in molecular biology and biochemistry. Basics in biomolecular modeling. Analysis of sequence and structural data of biomolecules. Analysis of biomolecular functions.

Prerequisite: MATH 2D or MATH 3A or STATS 7 or STATS 8

Same as BME 132, BIO SCI M123.

Concurrent with MOL BIO 223 and BME 232.

COMPSCI 184A. Artificial Intelligence in Biology and Medicine. 4 Units.

Introduction to computational methods in molecular biology, aimed at those interested in learning about this interdisciplinary area. Covers computational approaches to understanding and predicting the structure, function, interactions, and evolution of DNA, RNA, proteins, and related molecules and processes.

Prerequisite: I&C SCI 6N or MATH 3A

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 284A.

COMPSCI 184C. Computational Systems Biology. 4 Units.

Computational inference and modeling of gene regulation networks, signal transduction pathways, and the effects of regulatory networks in cellular processes, development, and disease. Introduction of required mathematical, computational, and data handling tools.

Prerequisite: COMPSCI 184A

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

Concurrent with COMPSCI 284C.

COMPSCI 189. Project in Bioinformatics. 4 Units.

Teaches problem definition and analysis, data representation, algorithm design, component integration, solution validation, and testability with teams specifying, designing, building, and testing a solution to a bioinformatics problem. Lectures include engineering values, discussions, and ethical ramifications of biomedical computing issues.

Prerequisite: COMPSCI 184A. COMPSCI 184A with a grade of C or better

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 190. Special Topics in Information and Computer Science. 4 Units.

Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.

Prerequisite: Prerequisites vary.

Repeatability: Unlimited as topics vary.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI H198. Honors Research. 4 Units.

Directed independent research in computer science for honors students.

Repeatability: May be repeated for credit unlimited times.

Restriction: Campuswide Honors Collegium students only. Bren School of ICS Honors students only. Upper-division students only.

COMPSCI 199. Individual Study. 2-5 Units.

Individual research or investigation with Computer Science faculty.

Repeatability: May be repeated for credit unlimited times.

COMPSCI 200S. Seminar in Computer Science Research. 1 Unit.

Graduate colloquium series. Includes weekly talks by notable computer scientists.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

COMPSCI 201. Foundations of Cryptographic Protocols. 4 Units.

Explores fundamental cryptographic tools, including encryption, signatures, and identification schemes. Students are introduced to the provable security paradigm of modern cryptography, focusing on understanding of security properties provided by cryptographic tools, and on proving security (or insecurity) of cryptographic constructions.

Prerequisite: COMPSCI 260 or COMPSCI 263. COMPSCI 260 with a grade of B- or better. COMPSCI 263 with a grade of B- or better

COMPSCI 201P. Computer Security. 4 Units.

Introduction to computer security, including systems, technology, and management. Topics include authorization, authentication, data integrity, malware, operating systems security, network security, web security, and basic cryptography.

Prerequisite: Knowledge of Python or C++ programming is required.

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 202. Applied Cryptography. 4 Units.

Design and analysis of algorithms for applied cryptography. Topics include symmetric and asymmetric key encryption, digital signatures, one-way hash functions, digital certificates and credentials, and techniques for authorization, non-repudiation, authentication, identification, data integrity, proofs of knowledge, and access control.

Prerequisite: COMPSCI 260 and COMPSCI 263. COMPSCI 260 with a grade of B- or better. COMPSCI 263 with a grade of B- or better

COMPSCI 202P. Applied Cryptography . 4 Units.

Design and analysis of algorithms for applied cryptography. Topics include symmetric and asymmetric key encryption, digital signatures, one-way hash functions, digital certificates and credentials, and techniques for authorization, non-repudiation, authentication, identification, data integrity, proofs of knowledge, and access control.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 203. Network and Distributed Systems Security. 4 Units.

Modern computer and networks security: attacks and countermeasures, authentication, identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Group communication and multicast security techniques. Covers secure e-commerce and applications of public key methods, digital certificates, and credentials.

Prerequisite: EECS 148 or COMPSCI 132

Same as NET SYS 240.

COMPSCI 203P. Network Security. 4 Units.

Introduction to network security, including network threats and attacks, as well as defenses against such attacks. Topics include network infrastructure security, mobile and Wi-Fi security, spam, phishing, firewalls, anonymity, secure email, secure and private cloud computing, and web security.

Prerequisite: COMPSCI 201P or COMPSCI 202P. COMPSCI 201P with a grade of B- or better. COMPSCI 202P with a grade of B- or better

Restriction: Graduate students only. Master of Computer Science Degree students only.

COMPSCI 205. Computer and Systems Security . 4 Units.

Lecture and discuss latest security research in software, OS, protocols, mobile devices, machine learning, sensors, and emerging IoT/CPS systems such as smart home and smart transportation. Students perform research projects and gain hands-on experience evaluating and designing secure systems.

Prerequisite: COMPSCI 134 and COMPSCI 142A and COMPSCI 143A

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

COMPSCI 206. Principles of Scientific Computing. 4 Units.

Overview of widely used principles and methods of numerical and scientific computing, including basic concepts and computational methods in linear algebra, optimization, and probability.

Prerequisite: Basic courses in multivariate calculus, linear algebra, and probability.

Overlaps with STATS 230.

COMPSCI 206P. Principles of Scientific Computing. 4 Units.

Overview of widely used principles and methods of numerical and scientific computing, including basic concepts and computational methods in floating-point, linear algebra, optimization, simulation, modeling, and probability/statistics as it relates to model evaluation.

Prerequisite: Basic knowledge of multivariate calculus, linear algebra, and familiarity with MATLAB.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 210P. Computer Graphics and Visualization . 4 Units.

Interactive 3D graphics rendering pipeline, illumination and shading, ray tracing, texture-, bump-, mip-mapping, hidden surface removal, anti-aliasing, multiresolution representations, volume rendering techniques, iso-surface extraction.

Prerequisite: Familiarity with linear algebra is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 211A. Visual Computing. 4 Units.

Fundamentals of image processing (convolution, linear filters, spectral analysis), vision geometry (projective geometry, camera models and calibration, stereo reconstruction), radiometry (color, shading, illumination, BRDF), and visual content synthesis (graphics pipeline, texture- bump-, mip-mapping, hidden surface removal, anti-aliasing).

COMPSCI 211B. Computer Graphics and Visualization. 4 Units.

Interactive 3D graphics rendering pipeline, illumination and shading, ray tracing, texture-, bump-, mip-mapping, hidden surface removal, anti-aliasing, multiresolution representations, volume rendering techniques, iso-surface extraction.

Prerequisite: COMPSCI 211A. COMPSCI 211A with a grade of B- or better

COMPSCI 211C. Realistic Image Synthesis. 4 Units.

Provides an in-depth overview on a core sub-field of computer graphics. Graduate students who take this course are better prepared for conducting research on the related topics in computer graphics, vision, and scientific computing.

Restriction: School of Info & Computer Sci students only. Graduate students only.

COMPSCI 211P. Visual Computing . 4 Units.

Develops a comprehensive understanding of fundamentals of image processing (convolution, linear filters, spectral analysis), vision geometry (projective geometry, camera models and calibration, stereo reconstruction), radiometry (color, shading, illumination, BRDF), visual content synthesis (graphics pipeline, texture- bump-, mip-mapping, hidden surface, anti-aliasing).

Prerequisite: Undergraduate-level familiarity with Linear algebra (matrices and operations), eigenvalue, eigenvectors, linear regression; basic of algorithms; programming in C/C++.

Restriction: Master of Computer Science Degree students only.

COMPSCI 212. Multimedia Systems and Applications. 4 Units.

Organization and structure of modern multimedia systems; audio and video encoding/compression; quality of service concepts; scheduling algorithms for multimedia; resource management in distributed and multimedia systems; multimedia protocols over high-speed networks; synchronization schemes; multimedia applications; and teleservices.

Prerequisite: COMPSCI 143A and COMPSCI 161. B.S. degree in Computer Science is also accepted. Recommended: COMPSCI 131 and COMPSCI 132 and COMPSCI 133.

COMPSCI 213. Introduction to Visual Perception. 4 Units.

Introduction to the process of human visual perception. Offers the physiological and psychophysical approach to understand vision, introducing concepts of perception of color, depth, movement. Examples of quantification and application of these models in computer vision, computer graphics, multimedia, HCI.

Prerequisite: MATH 121A

COMPSCI 216. Image Understanding. 4 Units.

The goal of image understanding is to extract useful semantic information from image data. Course covers low-level image and video processing techniques, feature descriptors, segmentation, objection recognition, and tracking.

Prerequisite: I&C SCI 6D and (I&C SCI 6N or MATH 6G or MATH 3A) and MATH 2B and I&C SCI 46

COMPSCI 217. Light and Geometry in Computer Vision. 4 Units.

Examines the issues of light transport and multiview geometry in computer vision. Applications include camera calibration, 3D understanding, stereo reconstruction, and illumination estimation.

Prerequisite: I&C SCI 6D and (I&C SCI 6N or MATH 6G or MATH 3A) and MATH 2B and I&C SCI 46 and COMPSCI 211A. COMPSCI 211A with a grade of B- or better

COMPSCI 219S. Seminar in Graphics and Visualization. 2 Units.

Current research and research trends in computer graphics, visualization, virtual/augmented reality, and other visual computing topics.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: School of Info & Computer Sci students only. Graduate students only.

COMPSCI 220P. Databases and Data Management. 4 Units.

Introduction to the design of databases and the use of database management systems (DBMS) for managing and utilizing data. Topics include entity-relationship modeling for design, relational data model, relational algebra, relational schema design, and use of SQL (Structured Query Language).

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 221. Information Retrieval, Filtering, and Classification. 4 Units.

Algorithms for the storage, retrieval, filtering, and classification of textual and multimedia data. The vector space model, Boolean and probabilistic queries, and relevance feedback. Latent semantic indexing; collaborative filtering; and relationship to machine learning methods.

Prerequisite: COMPSCI 161 and COMPSCI 171 and (I&C SCI 6N or MATH 3A or MATH 6G)

Same as SWE 225.

Restriction: Graduate students only.

COMPSCI 222. Principles of Data Management. 4 Units.

Covers fundamental principles underlying data management systems. Content includes key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.

Prerequisite: COMPSCI 122A and (I&C SCI 53 or COMPSCI 143A)

Concurrent with COMPSCI 122C.

COMPSCI 222P. Principles of Data Management. 4 Units.

Covers fundamental principles underlying data management systems. Understanding and implementation of key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.

Prerequisite: Required: C++ programming skills, understanding of data structures and algorithms.

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 223. Transaction Processing and Distributed Data Management. 4 Units.

Covers fundamental principles underlying transaction processing including database consistency, concurrency control, database recovery, and fault-tolerance. Includes transaction processing in centralized, distributed, parallel, and client-server environments.

COMPSCI 223P. Transaction Processing and Distributed Data Management. 4 Units.

Introduction to fundamental principles underlying transaction processing systems including database consistency, atomicity, concurrency control, database recovery, replication, commit protocols, and fault-tolerance. Includes transaction processing in centralized, distributed, parallel, and client-server environments.

Prerequisite: COMPSCI 222P or COMPSCI 222. COMPSCI 222P with a grade of B or better. COMPSCI 222 with a grade of B or better

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 224. Advanced Data Management. 4 Units.

A technical overview of advanced and emerging technologies for large-scale data management. Covers advances in foundational areas such as storage management, scalability, and query processing. Covers modern areas such as machine learning for data management.

Prerequisite: COMPSCI 222. COMPSCI 222 with a grade of B or better

Restriction: Graduate students only. School of Info & Computer Sci students only.

COMPSCI 224P. Big Data Management. 4 Units.

Focuses on Big Data management frameworks such as Hadoop and Spark. Also covers relational and non-relational database technologies, including document (“NoSQL”) databases as well as emerging cloud data management solutions.

Prerequisite: COMPSCI 220P or COMPSCI 122A. COMPSCI 220P with a grade of B or better. COMPSCI 122A with a grade of C or better

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 230. Distributed Computer Systems. 4 Units.

Principles of distributed computing systems. Topics covered include message-passing, remote procedure calls, distributed shared memory synchronization, resource and process/thread management, distributed file systems, naming and security.

COMPSCI 230P. Distributed Computer Systems . 4 Units.

Principles of distributed computing systems. Topics covered include message-passing, remote procedure calls, distributed shared memory synchronization, resource and process/thread management, distributed file systems, naming and security.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 231P. Parallel and Distributed Computing for Professionals . 4 Units.

Covers a wide variety of concepts related to the design and application of high-performance concurrent computing systems, including architectural features, communications networks and models, parallel program development for numerical and non-numerical applications, programming models, and more.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 232. Computer and Communication Networks. 4 Units.

Network architecture of the Internet, telephone networks, cable networks, and cell phone networks. Network performance models. Network performance models. Advanced concepts and implementations of flow and congestion control, addressing, internetworking, forwarding, routing, multiple access, streaming, and quality-of-service.

Prerequisite: EECS 148 or COMPSCI 132

Same as EECS 248A, NET SYS 201.

Restriction: Graduate students only.

COMPSCI 232P. Computer and Communication Networks . 4 Units.

Internet architecture, protocols, and services. Advanced concepts of IP and TCP, including addressing, internetworking, forwarding, routing, and implementations of flow and congestion control. Internet services such as Network Address Translation and Domain Name Servers. Overview of Local Area Networks.

Restriction: Graduate students only.

COMPSCI 233. Networking Laboratory. 4 Units.

A laboratory-based introduction to basic networking concepts such as addressing, sub-netting, bridging, ARP, and routing. Network simulation and design. Structured around weekly readings and laboratory assignments.

Prerequisite: EECS 148 or COMPSCI 132

Same as NET SYS 202.

COMPSCI 234. Advanced Networks. 4 Units.

Design principles of networked systems, advanced routing and congestion control algorithms, network algorithms, network measurement, management, security, Internet economics, and emerging networks.

Prerequisite: NET SYS 201 or COMPSCI 232 or EECS 248A. NET SYS 201 with a grade of B- or better. COMPSCI 232 with a grade of B- or better. EECS 248A with a grade of B- or better

Same as NET SYS 210.

COMPSCI 236. Wireless and Mobile Networking. 4 Units.

Introduction to wireless networking. The focus is on layers 2 and 3 of the OSI reference model, design, performance analysis, and protocols. Topics covered include: an introduction to wireless networking, digital cellular, next generation cellular, wireless LANs, and mobile IP.

Prerequisite: EECS 148 or COMPSCI 132

Same as NET SYS 230.

COMPSCI 237. Middleware for Networked and Distributed Systems. 4 Units.

Discusses concepts, techniques, and issues in developing distributed systems middleware that provides high performance and Quality of Service for emerging applications. Also covers existing standards (e.g., CORBA, DCOM, Jini, Espeak) and their relative advantages and shortcomings.

Prerequisite: An undergraduate-level course in operating systems and networks.

Same as NET SYS 260.

COMPSCI 238. Advanced Operating Systems. 4 Units.

Focuses on advanced and graduate-level topics in operating systems. Presents important recent developments in operating systems, topics not covered in undergraduate operating systems courses. This includes novel operating system designs and techniques to improve existing ones.

Prerequisite: COMPSCI 143A

COMPSCI 238P. Operating Systems. 4 Units.

In-depth organization of the core operating system abstraction and its implementation (virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, inter-process communication, hardware interface, etc.) and a range of recent developments in de-facto industry standard operating systems.

Prerequisite: Working knowledge of C and the Linux environment.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 241. Advanced Compiler Construction. 4 Units.

Advanced study of programming language implementation techniques: optimizations such as common sub-expression elimination, register allocation, and instruction scheduling. Implementation of language features such as type-directed dispatch, garbage collection, dynamic linking, and just-in-time code generation.

Prerequisite: COMPSCI 142A

COMPSCI 242. Parallel Computing. 4 Units.

Definition of parallel processing systems. Theory and application of arrays, trees, and hypercubes. Computational models, applications: sorting, integer arithmetic, matrix operations, Fast Fourier Transform, and others. Interconnection networks: a framework for the description, analysis, and construction of hypercube-derived networks.

COMPSCI 242P. Compilers and Interpreters. 4 Units.

Provides in-depth study of compilers and interpreters which are the primary forms of programming language processing in computing.

Prerequisite: Knowledge of C++ programming is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 243. High-Performance Architectures and Their Compilers. 4 Units.

Emphasis on the development of automatic tools (i.e., compilers/environments) for the efficient exploitation of parallel machines, and the trade-offs between hardware and software in the design of supercomputing and high-performance machines.

COMPSCI 244. Introduction to Embedded and Ubiquitous Systems. 4 Units.

Embedded and ubiquitous system technologies including processors, DSP, memory, and software. System interfacing basics; communication strategies; sensors and actuators, mobile and wireless technology. Using pre-designed hardware and software components. Design case studies in wireless, multimedia, and/or networking domains.

Prerequisite: I&C SCI 51 and COMPSCI 152 and COMPSCI 161 and (I&C SCI 6N or MATH 3A or MATH 6G or I&C SCI 6D). B.S. degree in Computer Science is also accepted.

Same as IN4MATX 244.

COMPSCI 245. Software for Embedded Systems. 4 Units.

Embedded computing elements, device interfaces, time-critical IO handling. Embedded software design under size, performance, and reliability constraints. Software timing and functional validation. Programming methods and compilation for embeddable software. Embedded runtime systems. Case studies of real-time software systems.

Prerequisite: I&C SCI 51 and COMPSCI 152 and COMPSCI 161 and (I&C SCI 6N or MATH 3A or MATH 6G or I&C SCI 6D). B.S. degree in Computer Science is also accepted.

COMPSCI 247. Complex Software Systems: Project Course. 4 Units.

Building complex systems software systems, such as Database Management Systems, Operating Systems, and Optimizing Compilers. Such systems often involve low-level programming and intricate performance optimizations. Students learn how to build such a system.

Prerequisite or corequisite: COMPSCI 222 or COMPSCI 238 or COMPSCI 241. COMPSCI 222 with a grade of B- or better. COMPSCI 238 with a grade of B- or better. COMPSCI 241 with a grade of B- or better

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

COMPSCI 248A. Introduction to Ubiquitous Computing. 4 Units.

The "disappearing computer" paradigm. Differences to the desktop computing model: applications, interaction in augmented environments, security, alternate media, small operating systems, sensors, and embedded systems design. Evaluation by project work and class participation.

Same as IN4MATX 241.

COMPSCI 248B. Ubiquitous Computing and Interaction. 4 Units.

Principles and design techniques for ubiquitous computing applications. Conceptual basis for tangible and embodied interaction. Interaction in virtual and augmented environments. Design methods and techniques. Design case studies. Examination by project work.

Prerequisite: IN4MATX 231 and IN4MATX 241. IN4MATX 231 with a grade of B- or better. IN4MATX 241 with a grade of B- or better

Same as IN4MATX 242.

COMPSCI 250A. Computer Systems Architecture. 4 Units.

Study of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.

Prerequisite: COMPSCI 152

COMPSCI 250B. Modern Computer Systems. 4 Units.

Fundamental concepts and recent advances in computer systems architecture necessary to achieve high performance and efficiency on systems available today. Topics span modern processor features, accelerators, storage and network architectures, as well as architecture-optimized software.

Prerequisite: Required: Undergraduate-level understanding of computer architecture concepts.

Overlaps with COMPSCI 243.

COMPSCI 250P. Computer Systems Architecture . 4 Units.

Study of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.

Prerequisite: Undergraduate-level familiarity with fundamentals of integrated circuit blocks, processors, and optimization/algorithm design, and some programming experience.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 253. Analysis of Programming Languages. 4 Units.

Concepts in modern programming languages, their interaction, and the relationship between programming languages and methods for large-scale, extensible software development. Empirical analysis of programming language usage.

Same as SWE 212.

COMPSCI 253P. Advanced Programming and Problem Solving. 4 Units.

Provides in-depth preparation for industry interviews requiring demonstration of problem solving and programming skills. Emphasis is on understanding problem statements, considering edge cases, developing effective test cases, designing correct solutions, explaining these clearly, and implementing a solution correctly.

Corequisite: COMPSCI 260P

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 256. Systems and Machine Learning. 4 Units.

Course is divided into two parts. The first half covers recent research in systems for machine learning (ML) that enabled rapid progress in ML/AI. The second half revolves around application of machine learning in systems.

Prerequisite: Recommended: An undergraduate machine-learning course and an undergraduate course in one of the following areas: networking, distributed systems, or operating systems.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

COMPSCI 259S. Seminar in Design Science. 2 Units.

Current research and research trends in design science. Forum for presentation and criticism by students of research work in progress.

Repeatability: May be taken for credit 18 times.

COMPSCI 260. Fundamentals of the Design and Analysis of Algorithms. 4 Units.

Covers fundamental concepts in the design and analysis of algorithms and is geared toward non-specialists in theoretical computer science. Topics include: deterministic and randomized graph algorithms, fundamental algorithmic techniques like divide-and-conquer strategies and dynamic programming, and NP-completeness.

Prerequisite: COMPSCI 161

COMPSCI 260P. Algorithms with Applications. 4 Units.

Covers fundamental concepts in the design and analysis of algorithms and is geared toward practical application and implementation. Topics include greedy algorithms, deterministic and randomized graph algorithms, models of network flow, fundamental algorithmic techniques, and NP-completeness.

Restriction: Graduate students only. Master of Computer Science Degree students only. Master of Data Science Degree students only.

COMPSCI 261. Data Structures. 4 Units.

An in-depth treatment of data structures and their associated management algorithms including resource complexity analysis.

Prerequisite: I&C SCI 46 and COMPSCI 161

COMPSCI 261P. Data Structures with Applications . 4 Units.

Data structures and their associated management algorithms, including their applications and analysis.

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 262P. Text Processing and Pattern Matching. 4 Units.

Techniques for pattern matching and parsing character strings. Topics include substring searching, finite state machines, regular expressions, and context-free grammars, as well as applications in lexical analyzers, compilers, word processors, malware detectors, and search engines.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 263. Analysis of Algorithms. 4 Units.

Analysis of correctness and complexity of various efficient algorithms; discussion of problems for which no efficient solutions are known.

Prerequisite: COMPSCI 161 and COMPSCI 261. COMPSCI 261 with a grade of B- or better

COMPSCI 265. Graph Algorithms. 4 Units.

Graph definitions, representation methods, graph problems, algorithms, approximation methods, and applications.

Prerequisite: COMPSCI 161 and COMPSCI 261. COMPSCI 261 with a grade of B- or better

Concurrent with COMPSCI 163.

COMPSCI 266. Computational Geometry. 4 Units.

An overview of some of the basic problems in computational geometry and of some algorithmic and data-structuring techniques appropriate to their solution.

Prerequisite: COMPSCI 161 and COMPSCI 261. COMPSCI 261 with a grade of B- or better

COMPSCI 268. Introduction to Optimization. 4 Units.

A broad introduction to optimization. Unconstrained and constrained optimization. Equality and inequality constraints. Linear and integer programming. Stochastic dynamic programming.

Prerequisite: STATS 67 or (STATS 7 and STATS 120A) and (I&C SCI 6N or MATH 3A)

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

Concurrent with COMPSCI 169.

COMPSCI 268P. Optimization Modeling . 4 Units.

A broad introduction to optimization methods and their applications. Unconstrained and constrained optimization. Direct, first, and second order methods. Use of optimization software libraries. Equality and inequality constraints, optimal conditions, and methods. Applications to modeling in computer science, engineering.

Restriction: Graduate students only. Master of Computer Science Degree students only.

COMPSCI 269S. Seminar in the Theory of Algorithms and Data Structures. 2 Units.

Current research and research trends in the Theory of algorithms and data structures.

Repeatability: May be taken for credit 18 times.

COMPSCI 271. Introduction to Artificial Intelligence. 4 Units.

The study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental subdisciplines of artificial intelligence including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.

COMPSCI 271P. Artificial Intelligence. 4 Units.

The study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental sub-disciplines of artificial intelligence, including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.

Restriction: Graduate students only. Master of Computer Science Degree students only. Master of Data Science Degree students only.

COMPSCI 272. Statistical Natural Language Processing. 4 Units.

Statistical models, machine learning algorithms, and computational tasks involved in natural language processing. Focuses on approaches that learn these models from data, and covers applications such as information extraction, dialog systems, machine translation, and question answering.

Prerequisite: COMPSCI 171 and COMPSCI 178

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

COMPSCI 273A. Machine Learning. 4 Units.

Computational approaches to learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes.

Prerequisite: COMPSCI 271 and COMPSCI 206. COMPSCI 271 with a grade of B- or better. COMPSCI 206 with a grade of B- or better

COMPSCI 273P. Machine Learning and Data Mining . 4 Units.

Introduction to principles of machine learning and data-mining. Learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes.

Prerequisite: Required: Python programming knowledge.

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 274A. Probabilistic Learning: Theory and Algorithms. 4 Units.

An introduction to probabilistic and statistical techniques for learning from data, including parameter estimation, density estimation, regression, classification, and mixture modeling.

Prerequisite: COMPSCI 206. COMPSCI 206 with a grade of B- or better

COMPSCI 274B. Learning in Graphical Models. 4 Units.

Models for data analysis are presented in the unifying framework of graphical models. The emphasis is on learning from data but inference is also covered. Real world examples are used to illustrate the material.

Prerequisite: COMPSCI 274A. COMPSCI 274A with a grade of B- or better

COMPSCI 274C. Neural Networks and Deep Learning. 4 Units.

Neural network and deep learning from multiple perspectives. Theory of parallel distributed processing systems, algorithmic approaches for learning from data in various manners, applications to difficult problems in AI from computer vision, to natural language understanding, to bioinformatics and chemoinformatics.

Prerequisite: (STATS 120A and STATS 120B) or MATH 121A or COMPSCI 178 or COMPSCI 273A. COMPSCI 273A with a grade of B- or better

Overlaps with COMPSCI 274A, COMPSCI 277, COMPSCI 276, COMPSCI 278, COMPSCI 274B, COMPSCI 273A.

Concurrent with COMPSCI 172B.

COMPSCI 274D. Artificial Intelligence Frontiers: Technical, Ethical, and Societal. 4 Units.

Explores the frontiers of artificial intelligence and related technologies with a focus on the underlying ethical, legal, and societal challenges and opportunities they create. Encourages critical thinking about these issues.

Prerequisite: Recommended: COMPSCI 172B and COMPSCI 178.

Restriction: Graduate students only.

Concurrent with COMPSCI 172C.

COMPSCI 274E. Deep Generative Models. 4 Units.

Discusses probabilistic approaches to deep learning such as generative models and their applications in computer vision, NLP, the natural sciences, and other fields. Coursework may include both homework and project components.

Prerequisite: COMPSCI 178 or COMPSCI 273A or STATS 120B. COMPSCI 273A with a grade of B- or better. Recommended: Advanced machine learning or graphical models courses such as COMPSCI 274A or COMPSCI 274B or CS 273C or COMPSCI 276.

Restriction: Graduate students only. School of Info & Computer Sci students have first consideration for enrollment.

COMPSCI 274P. Neural Networks and Deep Learning. 4 Units.

Introduction to principles of machine learning and neural networks. Architecture design. Feedforward and recurrent networks. Learning models and algorithms. Applications to data analysis and prediction problems in areas such as machine vision, natural language processing, biomed, and finance.

Prerequisite: COMPSCI 271P. COMPSCI 271P with a grade of B or better. Required: Knowledge of Python programming.

Restriction: Master of Computer Science Degree students only. Master of Data Science Degree students only. Graduate students only.

COMPSCI 275. Network-Based Reasoning/Constraint Networks. 4 Units.

Study of the theory and techniques of constraint network model. Covers techniques for solving constraint satisfaction problems: backtracking techniques, consistency algorithms, and structure-based techniques. Tractable subclasses. Extensions into applications such as temporal reasoning, diagnosis, and scheduling.

Prerequisite: Basic course in algorithm design and analysis.

COMPSCI 275P. Graphical Models and Statistical Learning. 4 Units.

Introduction to principles of statistical machine learning with probabilistic graphical models. Studies efficient inference algorithms based on optimization-based variational methods, and simulation-based Monte Carlo methods. Several approaches to learning from data are covered.

Prerequisite: COMPSCI 273P. COMPSCI 273P with a grade of B or better. Required: Python programming experience.

Restriction: Graduate students only. Master of Computer Science Degree students only. Master of Data Science Degree students only.

COMPSCI 276. Reasoning in Probabilistic Graphical Models. 4 Units.

Focuses on algorithms for probabilistic reasoning using graphical models such as Bayesian Networks and Markov Networks that encode knowledge as local probabilistic relations. Tasks include finding most likely scenarios over a subset of variables, or updating posterior probability, given observations.

Prerequisite: A basic course in probability.

COMPSCI 277. Control and Reinforcement Learning. 4 Units.

Introduction to learning agents that make sequences of decisions to interact with a system and control it. The main focus is reinforcement learning from a reward signal, with emphasis on algorithms that can learn differentiable policy parametrizations (Deep Reinforcement Learning).

Prerequisite: COMPSCI 178 or COMPSCI 273A. COMPSCI 273A with a grade of B- or better. Recommended: COMPSCI 274A and CS 275B and CS 275C and COMPSCI 276.

Restriction: Graduate students only.

COMPSCI 278. Probability Models. 4 Units.

Advanced probability, discrete time Markov chains, Poisson processes, continuous time Markov chains. Queuing or simulation as time permits.

Prerequisite: STATS 120A

Concurrent with STATS 121.

COMPSCI 280. Algorithmic Game Theory . 4 Units.

Cover topics at the interface of theoretical computer science and economics: zero sum games and LP duality, mechanism design, voting and impossibility theorems, "price of anarchy". Algorithms and complexity theory for learning and computing Nash equilibria.

Restriction: Graduate students only. School of Info & Computer Sci students only.

COMPSCI 284A. Artificial Intelligence in Biology and Medicine. 4 Units.

Introduction to computational methods in molecular biology, aimed at those interested in learning about this interdisciplinary area. Covers computational approaches to understanding and predicting the structure, function, interactions, and evolution of DNA, RNA, proteins, and related molecules and processes.

Prerequisite: A Basic course in algorithms or a basic course in molecular biology.

Concurrent with COMPSCI 184A.

COMPSCI 284C. Computational Systems Biology. 4 Units.

Computational inference and modeling of gene regulation networks, signal transduction pathways, and the effects of regulatory networks in cellular processes, development, and disease. Introduction of required mathematical, computational, and data handling tools.

Prerequisite: COMPSCI 284A or (BIO SCI 99 and MATH 2D). COMPSCI 284A with a grade of B- or better

Concurrent with COMPSCI 184C.

COMPSCI 288. Algorithms for Matching Markets. 4 Units.

Discusses algorithms underlying matching markets, drawing ideas from CS theory, economics, and game-theory. Topics include Gale-Shapley stable-matching algorithm, its incentive compatibility and LP formulation; online bipartite matching and Adwords market; one-sided matching markets; and market equilibria.

Prerequisite: Recommended: COMPSCI 263 and COMPSCI 295 (when the topic title is Game Theory), or a course on linear programming, or working knowledge of LP-duality theory.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

COMPSCI 290. Research Seminar. 2 Units.

Forum for presentation and criticism by students of research work in progress. Presentation of problem areas and related work. Specific goals and progress of research.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

COMPSCI 294P. Keystone Professional Writing and Communication for Computer Science Careers. 4 Units.

Well-developed written and oral communication skills relevant to computer science professionals including oral presentations, short descriptive writing assignments, and one longer writing assignment related to a research replication project.

Restriction: Graduate students only.

COMPSCI 295. Special Topics in Information and Computer Science . 4 Units.

Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.

Repeatability: Unlimited as topics vary.

Restriction: Graduate students only.

COMPSCI 295P. Keystone Project for Computer Science. 4 Units.

Design and development of a software system or a hardware component of a system based on knowledge of advanced computer science principles. Students implement at least a working prototype and test this using relevant input data.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 296. Elements of Scientific Writing. 4 Units.

Introduces the concepts and principles of good scientific writing, demonstrates them by examples drawn from the literature, and uses a hands-on approach to apply them to documents being written by the participants.

Grading Option: Satisfactory/unsatisfactory only.

COMPSCI 296P. Capstone Professional Writing and Communication for Computer Science Careers . 4 Units.

Written and oral communication for computer science and IT careers. Production of the detailed design and development document for the concurrent capstone design class and refinement of written documents and oral communications skills needed for a successful job search.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 297P. Capstone Design Project for Computer Science . 4 Units.

Design and development of app, software system, or hardware component of system based on students' prior knowledge of advanced computer science principles. Implement at least a working prototype and test this using relevant use cases and/or input data.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 298. Thesis Supervision. 2-12 Units.

Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only. School of Information and Computer Science majors only.

COMPSCI 298P. Computer Science Practicum. 2 Units.

Internship in which students work individually at an outside organization to gain experience with the challenges involved in technology-related work.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: Master of Computer Science Degree students only. Graduate students only.

COMPSCI 299. Individual Study. 1-12 Units.

Individual research or investigation with Computer Science faculty.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only. School of Information and Computer Science majors only.

COMPSCI 299P. Individual Study. 2 Units.

Supervised individual study in computer science.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be taken for credit 4 times.

Restriction: Master of Computer Science Degree students only. Graduate students only.

Informatics Courses

IN4MATX 12. Barter to Bitcoin: Society, Technology and the Future of Money. 4 Units.

Digital money has captured the broad imagination of speculators, coders, regulators, criminals and the mass media. Course puts this change in context: how do we understand money as a social, political and technological phenomenon?.

Same as SOC SCI 11A.

(II and III ).

IN4MATX 43. Introduction to Software Engineering. 4 Units.

Concepts, methods, and current practice of software engineering. Large-scale software production, software life cycle models, principles and techniques for each stage of development.

Prerequisite: I&C SCI 32 or I&C SCI 32A

Overlaps with I&C SCI 105.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 80. Special Topics in Informatics. 4 Units.

Designed for informatics instructors to pilot new teaching materials and prototype new class. The format of the class is flexible based on the content to be offered in the future.

Prerequisite: Prerequisites vary.

Grading Option: In Progress (Letter Grade with P/NP).

Repeatability: May be taken for credit 3 times as topics vary.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX H81. Ethics, Technology, and Design. 4 Units.

Provides a critical framework for how and why biases of many kinds are built into everyday digital tools. Reflections on ethics, technology, and design through case studies drawn from machine learning, CS education, engineering, social media, and criminal justice.

Restriction: Campuswide Honors Collegium students only.

(III)

IN4MATX 101. Concepts in Programming Languages I. 4 Units.

In-depth study of several contemporary programming languages stressing variety in data structures, operations, notation, and control. Examination of different programming paradigms, such as logic programming, functional programming and object-oriented programming; implementation strategies, programming environments, and programming style.

Prerequisite: (I&C SCI 51 or CSE 31 or EECS 31) and (I&C SCI 46 or CSE 46). I&C SCI 51 with a grade of C or better. CSE 31 with a grade of C or better. EECS 31 with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Same as COMPSCI 141.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 102. Concepts of Programming Language II. 4 Units.

In-depth study of major programming paradigms: imperative, functional, declarative, object-oriented, and aspect-oriented. Understanding the role of programming languages in software development and the suitability of languages in context. Domain-specific languages. Designing new languages for better software development support.

Prerequisite: IN4MATX 101 or COMPSCI 141 or CSE 141

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 113. Requirements Analysis and Engineering. 4 Units.

Equips students to develop techniques of software-intensive systems through successful requirements analysis techniques and requirements engineering. Students learn systematic process of developing requirements through cooperative problem analysis, representation, and validation.

Prerequisite: (I&C SCI 33 or CSE 43) and IN4MATX 43. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better. IN4MATX 43 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 115. Software Testing, Analysis, and Quality Assurance. 4 Units.

Preparation for developing high-quality software through successful verification and validation techniques. Fundamental principles of software testing, implementing software testing practices, ensuring the thoroughness of testing to gain confidence in the correctness of the software.

Prerequisite: (I&C SCI 45J or I&C SCI 45C or I&C SCI 46 or CSE 46) and IN4MATX 43. I&C SCI 45J with a grade of C or better. I&C SCI 45C with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better. IN4MATX 43 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 117. Project in Software System Design. 4 Units.

Specification, design, construction, testing, and documentation of a complete software system. Special emphasis on the need for and use of teamwork, careful planning, and other techniques for working with large systems.

Prerequisite: (IN4MATX 43 and I&C SCI 33) or CSE 43

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 121. Software Design: Applications. 4 Units.

Introduction to application design: designing the overall functionality of a software application. Topics include general design theory, software design theory, and software architecture. Includes practice in designing and case studies of existing designs.

Prerequisite: I&C SCI 33 or CSE 43 or GDIM 33. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better. GDIM 33 with a grade of C or better

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 122. Software Design: Structure and Implementation. 4 Units.

Introduction to implementation design: designing the internals of a software application. Topics include design aesthetics, design implementation, design recovery, design patterns, and component reuse. Includes practice in designing and case studies of existing designs.

Prerequisite: (I&C SCI 45J or I&C SCI 46 or IN4MATX 45) and (IN4MATX 101 or COMPSCI 141 or CSE 141)

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 124. Internet Applications Engineering. 4 Units.

Concepts in Internet applications engineering with emphasis on the Web. Peer-to-Peer and Interoperability. Topics include HTTP and REST, Remote Procedure/Method Calls, Web Services, data representations, content distribution networks, identity management, relevant W3C/IETF standards, and relevant new large-scale computing styles.

Prerequisite: (COMPSCI 132 or EECS 148) and I&C SCI 45J

Same as COMPSCI 137.
Overlaps with COMPSCI 122B.

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 125. Computer Game Development. 4 Units.

Introduction to the principles of interactive 2D and 3D computer game development. Concepts in computer graphics, algorithms, software engineering, art and graphics, music and sound, story analysis, and artificial intelligence are presented and are the basis for student work.

Prerequisite: COMPSCI 112 or COMPSCI 171 or IN4MATX 121 or ART 106B or I&C SCI 163 or I&C SCI 166

Same as COMPSCI 113.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 131. Human Computer Interaction. 4 Units.

Basic principles of human-computer interaction (HCI). Introduces students to user interface design techniques, design guidelines, and usability testing. Students gain the ability to design and evaluate user interfaces and become familiar with some of the outstanding research problems in HCI.

Prerequisite: I&C SCI 10 or I&C SCI 31 or I&C SCI 32A or CSE 41 or ENGR 10 or ENGRMAE 10 or EECS 10. I&C SCI 10 with a grade of C or better. I&C SCI 31 with a grade of C or better. I&C SCI 32A with a grade of C or better. CSE 41 with a grade of C or better. ENGR 10 with a grade of C or better. ENGRMAE 10 with a grade of C or better. EECS 10 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 132. Project in Human-Computer Interaction Requirements and Evaluation. 4 Units.

Students undertake significant projects in the elicitation and specification of HCI requirements and the thorough evaluation of user interfaces.

Prerequisite: IN4MATX 131

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 133. User Interaction Software. 4 Units.

Introduction to human-computer interaction programming. Emphasis on current tools, standards, methodologies for implementing effective interaction designs. Widget toolkits, Web interface programming, geo-spatial and map interfaces, mobile phone interfaces.

Prerequisite: I&C SCI 45J or I&C SCI 45C. I&C SCI 45J with a grade of C or better. I&C SCI 45C with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 134. Project in User Interaction Software. 4 Units.

Students complete an end-to-end user interface programming project based on an iterative design paradigm. Topics may include requirements brainstorming, paper prototyping, iterative development, cognitive walk-through, quantitative evaluation, and acceptance testing. Materials fee.

Prerequisite: IN4MATX 131 and IN4MATX 133

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

IN4MATX 141. Information Retrieval. 4 Units.

An introduction to information retrieval including indexing, retrieval, classifying, and clustering text and multimedia documents.

Prerequisite: (I&C SCI 45C or I&C SCI 45J) and (STATS 7 or STATS 67). I&C SCI 45C with a grade of C or better. I&C SCI 45J with a grade of C or better

Same as COMPSCI 121.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 143. Information Visualization. 4 Units.

Introduction to interactive visual interfaces for large datasets, and to principles of human visual perception and human computer interaction that inform their design. Various applications for data analysis and monitoring are discussed.

Prerequisite: (IN4MATX 131 or IN4MATX 43) and (I&C SCI 31 or I&C SCI 32A or CSE 41). IN4MATX 131 with a grade of C or better. IN4MATX 43 with a grade of C or better. I&C SCI 31 with a grade of C or better. I&C SCI 32A with a grade of C or better. CSE 41 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 148. Project in Ubiquitous Computing. 4 Units.

Introduction to ubiquitous computing research methods, tools, and techniques. Prototyping, design, and evaluation of physical computing applications, smart environments, embedded systems, and future computing scenarios. Includes hands-on in-class laboratory exercises. Materials fee.

Prerequisite: I&C SCI 10 or I&C SCI 31 or CSE 41 or I&C SCI 32A. I&C SCI 10 with a grade of C or better. I&C SCI 31 with a grade of C or better. CSE 41 with a grade of C or better. I&C SCI 32A with a grade of C or better

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 151. Project Management. 4 Units.

Introduces theoretical and practical aspects of project management. Topics include organizational theory, group behavior, project management skills, case studies, personal and group productivity tools, management of distributed work, stakeholders, consultants, and knowledge management. Students do a project exercise.

Prerequisite: IN4MATX 43 or GDIM 61

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 153. Computer Supported Cooperative Work. 4 Units.

Introduces concepts and principles of collaborative systems. Topics may include shared workspaces, group interaction, workflow, architectures, interaction between social and technical features of group work, and examples of collaborative systems used in real-world settings. Students develop a simple collaborative application.

Prerequisite: (IN4MATX 161 or IN4MATX 43) and (I&C SCI 31 or I&C SCI 32A or CSE 41). I&C SCI 31 with a grade of C or better. I&C SCI 32A with a grade of C or better. CSE 41 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 161. Social Analysis of Computing. 4 Units.

Introduction of computing as a social process. Examines the social opportunities and problems raised by new information technologies, and the consequences of different ways of organizing. Topics include computing and work life, privacy, virtual communities, productivity paradox, systems risks.

Prerequisite: I&C SCI 10 or I&C SCI 31 or I&C SCI 32A or CSE 41 or ENGR 10 or EECS 10 or ENGRMAE 10. I&C SCI 10 with a grade of C or better. I&C SCI 31 with a grade of C or better. I&C SCI 32A with a grade of C or better. CSE 41 with a grade of C or better. ENGR 10 with a grade of C or better. EECS 10 with a grade of C or better. ENGRMAE 10 with a grade of C or better. Satisfactory completion of the Lower-Division Writing requirement.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 162W. Organizational Information Systems. 4 Units.

Introduction to role of information systems in organizations, components and structure of organizational information systems, and techniques used in information systems analysis, design, and implementation.

Prerequisite: IN4MATX 161. Satisfactory completion of the Lower-Division Writing requirement.

(Ib)

IN4MATX 163. Project in the Social and Organizational Impacts of Computing . 4 Units.

Students undertake projects intended to gather and analyze data from situations in which computers are used, organize and conduct experiments intended to test hypotheses about impacts, and explore the application of concepts learned in previous courses.

Prerequisite: IN4MATX 162W

IN4MATX 164. Children's Learning and Media. 4 Units.

Examines how popular media may impact how young people learn, develop, and communicate by looking at research related to the impacts of a wide range of popular media including television, video games, digital environments, mobile devices, and other multimedia.

Same as EDUC 130.

Restriction: Education Sciences Majors only. Informatics Majors only. Informatics Minors only.

IN4MATX 171. Introduction to Health Informatics. 4 Units.

Broad overview of medical informatics for students with varied backgrounds. Electronic medical records, online resources, mobile technologies, patient safety, and computational design. Legal, ethical, and public policy issues. Health systems management. Evaluation and fieldwork for health systems.

Prerequisite: WRITING 60 or WRITING 30 or WRITING 31 or HUMAN 1C or HUMAN H1C. WRITING 60 with a grade of C or better. WRITING 30 with a grade of C or better. WRITING 31 with a grade of C or better. HUMAN 1C with a grade of C or better. HUMAN H1C with a grade of C or better

Same as PUBHLTH 105.

Restriction: Upper-division students only. Satisfactory completion of the Lower-Division Writing requirement.

IN4MATX 172. Project in Health Informatics. 4 Units.

Students undertake significant quarter-long projects related to health informatics. Topics may include field evaluations of health care technologies, prototypes, iterative design, and system implementations.

Prerequisite: PUBHLTH 105 or IN4MATX 171

Same as PUBHLTH 106.

IN4MATX 173. Consumer Health Informatics. 4 Units.

Consumer health informatics is a subfield of health informatics aimed to empower healthcare consumers through a variety of consumer-facing technologies. Covers health behavior change, health literacy, social support, and the design, evaluation, and implementation of major technological applications.

Prerequisite: IN4MATX 171 or PUBHLTH 105. IN4MATX 171 with a grade of C or better. PUBHLTH 105 with a grade of C or better

Repeatability: May be taken for credit 3 times.

Restriction: Health Informatics Minors have first consideration for enrollment. Public Health Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 174. Health Data Analytics. 4 Units.

The increasing availability of electronic heath data provides an unprecedented opportunity to use data-driven approaches to improve human health. Equips students with essential skills in curating, managing, and analyzing health data, focusing on electronic health records.

Prerequisite: IN4MATX 171 or PUBHLTH 105. IN4MATX 171 with a grade of C or better. PUBHLTH 105 with a grade of C or better

Restriction: Public Health Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

IN4MATX 190. Special Topics in Informatics. 4 Units.

Studies in selected areas of informatics. Topics addressed vary each quarter.

Prerequisite: Prerequisites vary.

Repeatability: Unlimited as topics vary.

IN4MATX 191A. Senior Design Project. 4 Units.

Group supervised project in which students analyze, specify, design, construct, evaluate, and adapt a significant information processing system. Topics include team management, professional ethics, and systems analysis.

Prerequisite: IN4MATX 113 and IN4MATX 121 and IN4MATX 131 and IN4MATX 151

Grading Option: In Progress (Letter Grade with P/NP).

Restriction: Seniors only. Software Engineering Majors have first consideration for enrollment. Informatics Majors have first consideration for enrollment.

IN4MATX 191B. Senior Design Project. 4 Units.

Group supervised project in which students analyze, specify, design, construct, evaluate, and adapt a significant information processing system. Topics include team management, professional ethics, and systems analysis.

Prerequisite: IN4MATX 191A. In Progress (IP) grade for IN4MATX 191A is also accepted.

Restriction: Seniors only.

IN4MATX H198. Honors Research. 4 Units.

Directed independent research in Informatics for honors students.

Prerequisite: Satisfactory completion of the Lower-Division Writing requirement.

Repeatability: May be repeated for credit unlimited times.

Restriction: Bren School of ICS Honors students only. Campuswide Honors Collegium students only.

IN4MATX 199. Individual Study. 2-5 Units.

Individual research or investigation under the direction of an individual faculty member.

Repeatability: May be repeated for credit unlimited times.

IN4MATX 201. Research Methodology for Informatics. 4 Units.

Introduction to strategies and idioms of research in Informatics. Includes examination of issues in scientific inquiry, qualitative and quantitative methods, and research design. Both classic texts and contemporary research literature are read and analyzed.

IN4MATX 203. Qualitative Research Methods in Information Systems. 4 Units.

Introduction to qualitative research methods used to study computerization and information systems, such as open-ended interviewing, participant observation, and ethnography. Studies of the methods in practice through examination of research literature.

Prerequisite: IN4MATX 261 or IN4MATX 251. IN4MATX 261 with a grade of B- or better. IN4MATX 251 with a grade of B- or better

IN4MATX 205. Quantitative Research Methods in Information Systems. 4 Units.

Quantitative research methods used to study computerization and information systems. Design of instruments, sampling, sample sizes, and data analysis. Validity and reliability. Longitudinal versus cross-sectional designs. Analysis of secondary data. Studies of the methods through examination of research literature.

Prerequisite: IN4MATX 251 or IN4MATX 261. IN4MATX 251 with a grade of B- or better. IN4MATX 261 with a grade of B- or better. Basic knowledge of elementary statistics is also required.

IN4MATX 207S. Doctoral Seminar on Research and Writing. 2 Units.

Doctoral seminar centered on original research and writing. Provides a chance for doctoral students at all levels to present original work, brainstorm ongoing issues, and learn to provide and receive critical feedback from peers.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

IN4MATX 209S. Seminar in Informatics. 2 Units.

Current research and research trends in informatics. Forum for presentation and criticism by students of research work in progress.

Repeatability: Unlimited as topics vary.

IN4MATX 231. User Interface Design and Evaluation. 4 Units.

Introduction to the design and evaluation of user interfaces, with an emphasis on methodology. Cognitive principles, design life cycle, on-line and off-line prototyping techniques. Toolkits and architectures for interactive systems. Evaluation techniques, including heuristic and laboratory methods.

IN4MATX 232. Research in Human-Centered Computing. 4 Units.

Introduction to contemporary topics in human-computer interaction, including methods, technologies, design, and evaluation. Emerging application domains and their challenges to traditional research methods. Advanced architectures and technologies. Critical issues.

Prerequisite: Some familiarity with HCI principles.

IN4MATX 241. Introduction to Ubiquitous Computing. 4 Units.

The "disappearing computer" paradigm. Differences to the desktop computing model: applications, interaction in augmented environments, security, alternate media, small operating systems, sensors, and embedded systems design. Evaluation by project work and class participation.

Same as COMPSCI 248A.

IN4MATX 242. Ubiquitous Computing and Interaction. 4 Units.

Principles and design techniques for ubiquitous computing applications. Conceptual basis for tangible and embodied interaction. Interaction in virtual and augmented environments. Design methods and techniques. Design case studies. Examination by project work.

Prerequisite: IN4MATX 231 and IN4MATX 241. IN4MATX 231 with a grade of B- or better. IN4MATX 241 with a grade of B- or better

Same as COMPSCI 248B.

IN4MATX 244. Introduction to Embedded and Ubiquitous Systems. 4 Units.

Embedded and ubiquitous system technologies including processors, DSP, memory, and software. System interfacing basics; communication strategies; sensors and actuators, mobile and wireless technology. Using pre-designed hardware and software components. Design case studies in wireless, multimedia, and/or networking domains.

Prerequisite: I&C SCI 51 and COMPSCI 152 and COMPSCI 161 and (I&C SCI 6N or MATH 3A or MATH 6G or I&C SCI 6D). B.S. degree in Computer Science is also accepted.

Same as COMPSCI 244.

IN4MATX 251. Computer-Supported Cooperative Work. 4 Units.

The role of information systems in supporting work in groups and organizations. Examines various technologies designed to support communication, information sharing, and coordination. Focuses on behavioral and social aspects of designing and using group support technologies.

IN4MATX 261. Social Analysis of Computing. 4 Units.

The social and economic impacts of computing and information technologies on groups, organizations, and society. Topics include computerization and changes in the character of work, social control and privacy, electronic communities, and risks of safety-critical systems to people.

IN4MATX 263. Computerization, Work, and Organizations. 4 Units.

Selected topics in the influence of computerization and information systems in transforming work and organizations. Theories of organization and organizational change. Processes by which diverse information technologies influence changes in work and organizations over short and long time periods.

Prerequisite: IN4MATX 251 or IN4MATX 261. IN4MATX 251 with a grade of B- or better. IN4MATX 261 with a grade of B- or better

IN4MATX 265. Theories of Information Society . 4 Units.

Social and economic conceptions of information technology. Macrosocial and economic conditions that foster changes in information technologies. Social construction of information and computer technology in professional worlds. Theories of information technology and large-scale social change.

Prerequisite: IN4MATX 251 or IN4MATX 261. IN4MATX 251 with a grade of B- or better. IN4MATX 261 with a grade of B- or better

IN4MATX 267. Digital Media and Society. 4 Units.

Selected topics in the technological and social aspects of online interactions, and policy including online games, social media, electronic activism, e-commerce, and digital libraries. Media-theoretic approaches to digital technology. Architectures, infrastructure considerations, and their consequences.

Prerequisite: IN4MATX 251 or IN4MATX 261

IN4MATX 273. Information Technology in Global Sustainability. 4 Units.

Explores the relationship between recent developments in information technology and the global transition to sustainability. Topics include the role of IT systems in the provision of human needs and wants (e.g., smart grids, food systems, and other IT-enabled infrastructure).

Restriction: Graduate students only.

IN4MATX 280. Overview of Human-Computer Interaction and Design . 4 Units.

Introduction to human-computer interaction and user-centered design. The material is focused on laying the groundwork for understanding the history, importance, and methods of human-computer interaction and design.

Restriction: Master of Hum Com Interact Des Degree students only. Graduate students only.

IN4MATX 281. User Needs Analysis . 4 Units.

Understanding the user's context, needs, and preferences. Topics include interviews and observations, modeling the context, flow, culture, space, and artifacts involved in an endeavor, ways of aggregating what is found, and presenting these findings to others.

Prerequisite: IN4MATX 280. IN4MATX 280 with a grade of B- or better

Restriction: Graduate students only. Master of Hum Com Interact Des Degree students only.

IN4MATX 282. Design and Prototyping . 4 Units.

Introduction to user-centered design and prototyping. Focused on practical methods for interaction design. Topics include the nature of design and the challenges to creating and evaluating good designs, as well specific skills for designing interactive systems.

Prerequisite: IN4MATX 280. IN4MATX 280 with a grade of B- or better

IN4MATX 283. User Experience Evaluation . 4 Units.

Evaluating prototypes and completed systems. Topics include comparative analysis, laboratory experiments, heuristic evaluation, cognitive walkthroughs, surveys, clickstreams, and help-desk.

Prerequisite: IN4MATX 280. IN4MATX 280 with a grade of B- or better

Restriction: Graduate students only. Master of Hum Com Interact Des Degree students only.

IN4MATX 284. Advanced Design and Prototyping . 4 Units.

Develop and communicate interactive technology design prototypes. Moving concepts from brainstorming and paper prototypes to wireframe and limited functionality mock-ups.

Prerequisite: IN4MATX 282. IN4MATX 282 with a grade of B- or better

Restriction: Graduate students only. Master of Hum Com Interact Des Degree students only.

IN4MATX 285. Interactive Technology Studio . 4 Units.

Technologies, languages, and skills required for creating prototypes to communicate interactive technology concepts. Topics include HTTP, CSS, CSS scripting, AJAX, Design Patterns, Javascript, Javascript libraries such as jQuery, SQL, MVC, and cloud architectures.

Prerequisite: IN4MATX 280. IN4MATX 280 with a grade of B- or better

Restriction: Graduate students only. Master of Hum Com Interact Des Degree students only.

IN4MATX 286. Innovations in HCI and Design . 4 Units.

Recent social and technological developments in human-computer interaction and design. Topics will vary as the field progresses but include novel input techniques, novel platforms, and innovations in theory and methods of design.

Prerequisite: IN4MATX 280. IN4MATX 280 with a grade of B- or better

IN4MATX 287. Capstone Project in HCI and Design . 4 Units.

Group project that reinforces all concepts learned in this program, including knowing where user experience work is most appropriate and essential, and executing the appropriate steps.

Prerequisite: IN4MATX 283 and IN4MATX 284. IN4MATX 283 with a grade of B- or better. IN4MATX 284 with a grade of B- or better

Restriction: Graduate students only. Human Comp Interact and Design Majors only.

IN4MATX 288. Capstone Project and Portfolio . 4 Units.

Completion of capstone projects and development of portfolios. Ideation, critique, development, and critique.

Prerequisite: IN4MATX 287. IN4MATX 287 with a grade of B- or better

IN4MATX 289. Special Topics in Applying Human-Computer Interaction and Design in Industry. 4 Units.

Selected topics related to understanding and applying human-computer interaction and design concepts and practices within the User Experience industry. Topics addressed vary each quarter.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be taken for credit 4 times as topics vary.

Restriction: School of Info & Computer Sci students only. Graduate students only. Human Comp Interact and Design Majors only.

IN4MATX 290. Research Seminar. 2 Units.

Forum for presentation and criticism by students of research work in progress. Presentation of problem areas and related work. Specific goals and progress of research.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

IN4MATX 291S. Literature Survey in Software Engineering. 2 Units.

Reading and analysis of relevant literature in Software Engineering under the direction of a faculty member.

Repeatability: May be repeated for credit unlimited times.

IN4MATX 295. Special Topics in Informatics. 4 Units.

Studies in selected areas of informatics. Topics addressed vary each quarter.

Repeatability: Unlimited as topics vary.

Restriction: Graduate students only.

IN4MATX 298. Thesis Supervision. 2-12 Units.

Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

IN4MATX 299. Individual Study. 1-12 Units.

Individual research or investigation under the direction of an individual faculty member.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

Information and Computer Sci Courses

I&C SCI 3. Internet Technologies and their Social Impact. 4 Units.

Examines current Internet technologies and social implications at the individual, group, and societal level. Blogs, wikis, sharing of video, photos, and music, e-commerce, social networking, gaming, and virtual environments. Issues include privacy, trust, identity, reputation, governance, copyright, and malicious behavior.

(III)

I&C SCI 4. Human Factors for the Web. 4 Units.

Principles of human-computer interaction in evaluating, designing, and developing information presented on the World Wide Web. User characteristics, usability analysis, navigation and organization. Color, typography, multimedia, information visualization, prototyping, user studies, evaluation strategies. Web accessibility.

Restriction: May not be taken for credit after IN4MATX 131.

(II)

I&C SCI 5. Global Disruption and Information Technology. 4 Units.

Explores how new forms of information technology may support transition to a sustainable civilization. Topics include design and implementation of IT systems, science of global change, online community building, and “green IT”. Activities involve reading, writing, discussion, and final project.

(II)

I&C SCI 6B. Boolean Logic and Discrete Structures. 4 Units.

Relations and their properties; Boolean algebras, formal languages; finite automata.

Prerequisite: High school mathematics through trigonometry.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

(Vb)

I&C SCI 6D. Discrete Mathematics for Computer Science. 4 Units.

Covers essential tools from discrete mathematics used in computer science with an emphasis on the process of abstracting computational problems and analyzing them mathematically. Topics include mathematical induction, combinatorics, and recurrence relations.

Prerequisite: Recommended: I&C SCI 6B

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment. Computer Engineering majors have second consideration.

(Vb)

I&C SCI 6N. Computational Linear Algebra. 4 Units.

Matrices and linear transformations, systems of linear equations, determinants, linear vector spaces, eigenvalues and eigenvectors, orthogonal matrices, diagonalization, and least squares. Topics taught primarily from an algorithmic perspective, including computational solutions, applications, and numerical error analysis.

Prerequisite: I&C SCI 31 or I&C SCI 32A or AP Computer Science A. AP Computer Science A with a minimum score of 3

Overlaps with MATH 3A.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

(II and V.B ).

I&C SCI 7. Spreadsheets for Problem-Solving. 4 Units.

Features useful tools for building, solving, analyzing, and visualizing computational models in diverse areas. Covered features include data entry and protection; numerical, logical and relational computation; displaying, highlighting, and sorting data; storing, summarizing, and querying databases; and VB scripting.

(Va)

I&C SCI 9. Introduction to Computation for Scientists and Engineers. 6 Units.

Introduces principles, techniques, and computational tools for quantitative approach to basic problem solving in physics and engineering. Project-based course that actively explores how programing techniques are used for solving STEM real-world problems.

Prerequisite or corequisite: MATH 2A or AP Calculus AB or AP Calculus BC. AP Calculus AB with a minimum score of 4. AP Calculus BC with a minimum score of 3

Same as PHY SCI 9.
Overlaps with PHYSICS 2.

Restriction: Lower-division students only.

(II and (Va or Vb) ).

I&C SCI 10. How Computers Work. 4 Units.

Introduction to digital computer and communication systems. Capabilities and limitations of information technology. Representing information in digital form. Overview of computer organization, internet, operating systems, software. Human-computer interaction and social impact.

Restriction: May not be taken for credit after I&C SCI 31, I&C SCI 32, I&C SCI 32A, I&C SCI 51, I&C SCI 105, or IN4MATX 43.

(II)

I&C SCI 11. The Internet and Public Policy. 4 Units.

How the Internet works. Current public policy issues concerning the Internet. Introductory economics. Communications law. Interactions between information technology, economics, and law. Case studies about Internet and communications policy.

Same as ECON 11.

(II or III ).

I&C SCI 20. Invitation to Computing. 4 Units.

Foundational principles of computer science for students with no computing background that are interested in a related career. Big ideas of computing explored, including programming through use of sequential, conditional, iterative logic. Good computational practices, problem solving, and organization discussed.

I&C SCI 31. Introduction to Programming. 4 Units.

Introduction to fundamental concepts and techniques for writing software in a high-level programming language. Covers the syntax and semantics of data types, expressions, exceptions, control structures, input/output, methods, classes, and pragmatics of programming.

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

(II and VB ).

I&C SCI 32. Programming with Software Libraries. 4 Units.

Construction of programs for problems and computing environments more varied than in I&C SCI 31. Using library modules for applications such as graphics, sound, GUI, database, Web, and network programming. Language features beyond those in I&C SCI 31 are introduced as needed.

Prerequisite: I&C SCI 31. I&C SCI 31 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

(II and (VA or VB) ).

I&C SCI 32A. Python Programming and Libraries (Accelerated). 4 Units.

Introduces Python syntax and semantics for fundamental programming concepts. Constructing programs for varied problems and environments. Using library modules for applications such as graphics, sound, GUI, database, Web, and network programming. Accelerated course for students with previous programming background.

Prerequisite: AP Computer Science A. AP Computer Science A with a minimum score of 3. Placement via a transfer course in computer programming or equivalent experience may also be accepted upon review.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

(II and (VA or VB) ).

I&C SCI 33. Intermediate Programming. 4 Units.

Intermediate-level language features and programming concepts for larger, more complex, higher-quality software. Functional programming, name spaces, modules, class protocols, inheritance, iterators, generators, operator overloading, reflection. Analysis of time and space efficiency.

Prerequisite: I&C SCI 32 or CSE 42 or I&C SCI 32A. I&C SCI 32 with a grade of C or better. CSE 42 with a grade of C or better. I&C SCI 32A with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

(II and VB ).

I&C SCI 45C. Programming in C/C++ as a Second Language. 4 Units.

An introduction to the lexical, syntactic, semantic, and pragmatic characteristics of the C/C++ languages for experienced programmers. Emphasis on object-oriented programming, using standard libraries, and programming with manual garbage collection.

Prerequisite: I&C SCI 33 or CSE 43 or EECS 40. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better. EECS 40 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

I&C SCI 45J. Programming in Java as a Second Language. 4 Units.

An introduction to the lexical, syntactic, semantic, and pragmatic characteristics of the Java language for experienced programmers. Emphasis on object-oriented programming, using standard libraries, and programming with automatic garbage collection.

Prerequisite: I&C SCI 33 or CSE 43. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better

Overlaps with I&C SCI 22, I&C SCI 23, CSE 23.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment. I&C SCI 45J may not be taken for credit after I&C SCI 22, I&C SCI 23, or CSE 23.

I&C SCI 46. Data Structure Implementation and Analysis. 4 Units.

Focuses on implementation and mathematical analysis of fundamental data structures and algorithms. Covers storage allocation and memory management techniques.

Prerequisite: CSE 45C or I&C SCI 45C. CSE 45C with a grade of C or better. I&C SCI 45C with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

(Vb)

I&C SCI 51. Introductory Computer Organization. 6 Units.

Multilevel view, design, and operation of computer system components. Machine-level data and instruction representation. Instruction sets and addressing modes. Memory organization. Laboratory work using low-level programming languages.

Prerequisite: I&C SCI 33 and I&C SCI 6B

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

(II)

I&C SCI 53. Principles in System Design. 6 Units.

Introduces basic principles of system software: operating systems, compilers, and networking. Exposure to the following topics through theoretical and practical programming experiences: linking and loading, process and memory management, concurrency and synchronization, network communication, programming for performance, etc.

Prerequisite: I&C SCI 46 and I&C SCI 51. I&C SCI 46 with a grade of C or better. I&C SCI 51 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

I&C SCI 60. Games and Society. 4 Units.

The study and critical analysis of computer games as art objects, cultural artifacts, gateways to virtual worlds, educational aids, and tools for persuasion and social change. Emphasis on understanding games in their historical and cultural context. Materials fee.

Same as GDIM 41.

Restriction: Computer Game Science Majors have first consideration for enrollment. Game Design and Interactive Media students have first consideration for enrollment. School of ICS majors have second right of consideration.

(III)

I&C SCI 61. Game Design Fundamentals. 4 Units.

Explore the fundamentals of game design through the design and play of simple analog game systems. Students explore the principles and usage of game design elements through hands-on projects emphasizing iteration and playtesting in a creative game design community.

Same as GDIM 25.

Restriction: Computer Game Science Majors have first consideration for enrollment. Game Design and Interactive Media students have first consideration for enrollment. School of ICS majors have second right of consideration

(II)

I&C SCI 62. Game Technologies and Interactive Media. 4 Units.

Technologies for interactive media and game design. Web-based software systems, virtual world platforms, and game engines. Emphasis is on conceptual and architectural aspects of these technologies.

I&C SCI 80. Special Topics in Information and Computer Science. 2-4 Units.

Studies in selected areas of information and computer sciences. Topics addressed vary each quarter.

Prerequisite: Prerequisites vary.

Repeatability: Unlimited as topics vary.

I&C SCI 90. New Students Seminar. 1 Unit.

Introduces students to the Donald Bren School of Information and Computer Sciences. Focuses on advising students making the transition to UCI, community building, and mostly surveying the technical areas within departments in ICS, via talks by faculty on their research.

Grading Option: Pass/no pass only.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

I&C SCI 139W. Critical Writing on Information Technology. 4 Units.

Study and practice of critical writing and oral communication as it applies to information technology. Each student writes assignments of varying lengths, totaling at least 4,000 words.

Prerequisite: Satisfactory completion of the Lower-Division Writing requirement.

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment.

(Ib)

I&C SCI 161. Game Engine Lab. 4 Units.

The use of an open source game or graphics engine in the design and implementation of a computer game. Principles of game engine design. Students work on teams to design, implement, and evaluate new computer games based on an engine.

Prerequisite: I&C SCI 45C or GDIM 32 or I&C SCI 167

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

I&C SCI 162. Modeling and World Building. 4 Units.

Use of 3D modeling software and related tools to design and create animated, textured models, and expansive virtual worlds incorporating objects, scenes, and venues for activity within game worlds and online environments.

Corequisite: I&C SCI 61 and GDIM 25 may also be taken as corequisites.
Prerequisite: I&C SCI 33 and (I&C SCI 6N or MATH 3A) and (I&C SCI 61 or GDIM 25)

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

I&C SCI 163. Mobile and Ubiquitous Games. 4 Units.

Design and technology of mobile games, including mixed reality gaming, urban games, and locative media. Case studies of significant systems. Uses and limitations of location-based technologies. Infrastructures and their relationships to gameplay and design.

Prerequisite: (I&C SCI 61 or GDIM 25) and (GDIM 31 or I&C SCI 10 or I&C SCI 31 or I&C SCI 32A)

I&C SCI 166. Game Design. 4 Units.

Game design takes into consideration psychology, narrative, platform features and limitations, marketing, computer science capabilities, human-computer interface principles, industry trends, aesthetic judgment, and other factors. Students focus on video game design through lectures, readings, presentations, implementation, and play testing.

Prerequisite: I&C SCI 61 or GDIM 25

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Game Science Majors have first consideration for enrollment. Game Design and Interactive Media students have first consideration for enrollment. School of ICS majors have second right of consideration.

I&C SCI 167. Multiplayer Game Systems. 4 Units.

Foundations and technologies that enable multiuser, networked, and persistent virtual environments. Emphasis on database design and management, network protocols, and concurrency control to accommodate large numbers of simultaneous users.

Prerequisite: I&C SCI 51 or GDIM 31

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Game Science Majors have first consideration for enrollment.

I&C SCI 168. Multiplayer Game Project. 4 Units.

Design and develop a multiplayer game using Unity or similar engine, with a focus on learning to work in a development team, writing design documents, working with platform features and limitations, developing engaging mechanics, playtesting, and post-mortems.

Prerequisite: (GDIM 27 or I&C SCI 166) and (GDIM 33 or I&C SCI 161) and (GDIM 61 or I&C SCI 62). GDIM 27 with a grade of C or better. I&C SCI 166 with a grade of C or better. GDIM 33 with a grade of C or better. I&C SCI 161 with a grade of C or better. GDIM 61 with a grade of C or better. I&C SCI 62 with a grade of C or better

Same as GDIM 161.

Restriction: Computer Game Science Majors have first consideration for enrollment. Game Design and Interactive Media students have first consideration for enrollment. School of ICS majors have second consideration for enrollment.

I&C SCI 169A. Capstone Game Project I. 4 Units.

Students work in teams to design and implement a unique game or interactive experience. Emphasis on sound, art, and level design, building a community, production values, full utilization of hardware and software platform, and current industry trends.

Prerequisite: (GDIM 27 or I&C SCI 166) and (GDIM 61 or I&C SCI 62). GDIM 27 with a grade of C or better. I&C SCI 166 with a grade of C or better. GDIM 61 with a grade of C or better. I&C SCI 62 with a grade of C or better

Grading Option: In Progress (Letter Grade with P/NP).

Same as GDIM 167A.

Restriction: Seniors only. Computer Game Science Majors have first consideration for enrollment. Game Design and Interactive Media students have first consideration for enrollment. School of ICS majors given second right of consideration.

I&C SCI 169B. Capstone Game Project II. 4 Units.

Students continue work in teams to design and implement a unique game or interactive experience. Emphasis on sound, art, and level design, building a community, production values, full utilization of hardware and software platform, and current industry trends.

Prerequisite: GDIM 167A or I&C SCI 169A. GDIM 167A with a grade of C or better. I&C SCI 169A with a grade of C or better. In Progress grade for GDIM 167A or I&C SCI 169A also accepted.

Same as GDIM 167B.

Restriction: Seniors only. Computer Game Science Majors have first consideration for enrollment. Game Design and Interactive Media students have first consideration for enrollment. School of ICS majors given second right of consideration.

I&C SCI 192. Industrial or Public Sector Field Study. 2-4 Units.

Students participate in an off-campus, supervised internship for a minimum of 60 hours. Students apply classroom knowledge through internship projects in the private sector or nonprofit agencies.

Grading Option: Pass/no pass only.

Repeatability: May be taken for credit 4 times.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

I&C SCI 193. Tutoring in ICS. 2 Units.

Principles and practice of providing technical assistance to novice learners in information and computer sciences.

Repeatability: May be taken for credit for 18 units.

Restriction: ICS Peer Tutoring Program students only.

I&C SCI H197. Honors Seminar. 1-2 Units.

An overview of computer science and selected recent trends in research. Students attend talks on current faculty research, with opportunities for discussion.

Grading Option: Pass/no pass only.

Repeatability: May be taken for credit for 4 units.

Restriction: Campuswide Honors Collegium students only. Bren School of ICS Honors students only.

I&C SCI 398A. Teaching Assistant Training Seminar. 2 Units.

Theories, methods, and resources for teaching computer science at the university level, particularly by teaching assistants. Classroom presentations, working with individuals, grading, motivating students. Participants will give and critique presentations and may be videotaped while teaching.

Grading Option: Satisfactory/unsatisfactory only.

Software Engineering Courses

SWE 211. Software Engineering. 4 Units.

Study of the concepts, methods, and tools for the analysis, design, construction, and measurement of complex software-intensive systems. Underlying principles emphasized. State-of-the-art software engineering and promising research areas covered, including project management.

SWE 212. Analysis of Programming Languages. 4 Units.

Concepts in modern programming languages, their interaction, and the relationship between programming languages and methods for large-scale, extensible software development. Empirical analysis of programming language usage.

Same as CS 253.

SWE 214. Program Analysis. 4 Units.

Covers principles and concepts of automated program analysis. Topics include program representations; intra-procedural data-flow analysis; call-graph construction; pointer analysis; alias analysis; inter-procedural analysis; inter-procedural finite distributive subset problems; inter-procedural distributive environment problems; symbolic execution; and program-analysis applications.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

SWE 215. Dynamic Analysis, Testing, and Debugging. 4 Units.

Studies techniques for developing confidence in software from traditional testing techniques to state-of-the-art dynamic analysis and debugging techniques. Emphasis is on assisting developer comprehension of runtime behavior.

Restriction: Graduate students only.

SWE 221. Software Architecture. 4 Units.

Study of the concepts, representation techniques, development methods, and tools for architecture-centric software engineering. Topics include domain-specific software architectures, architectural styles, architecture description languages, software connectors, and dynamism in architectures.

Restriction: Graduate students only.

SWE 225. Information Retrieval, Filtering, and Classification. 4 Units.

Algorithms for the storage, retrieval, filtering, and classification of textual and multimedia data. The vector space model, Boolean and probabilistic queries, and relevance feedback. Latent semantic indexing; collaborative filtering; and relationship to machine learning methods.

Prerequisite: CS 161 and CS 171 and (ICS 6N or MATH 3A or MATH 6G)

Same as CS 221.

Restriction: Graduate students only.

SWE 233. Intelligent User Interfaces. 4 Units.

Explores example software systems and their underlying concepts that leverage computing to empower and augment human individuals in their activities. Topics span the fields of user interface design, human-computer interaction, software engineering, and cognitive computing.

Prerequisite: CS 171

Restriction: Graduate students only.

SWE 234. Human Aspects of Software Engineering. 4 Units.

Selected topics about the cooperative and human aspects of software engineering from the perspective that software engineering is inherently an endeavor involving human stakeholders. Topics may include but are not limited to collaboration, trust, emotion, language, gender, and software tools.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

SWE 240P. Data Structures. 2 Units.

Exploration of well-known data structures to represent computational problems. Topics include linked lists, graphs, binary trees, stacks, queues, heaps, and hash tables, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 241P. Algorithms. 2 Units.

Exploration of strategies to tackle computational problems whose solutions include well-known algorithms. Topics include sorting, searching, and indexing, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Graduate students only. Master of Software Engineering Degree students only.

SWE 242P. Network Programming. 2 Units.

Exploration of networking principles and concepts for the development of distributed software. Topics include programming against well-known network protocols, ports and sockets, and network APIs.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 243P. Database Programming . 2 Units.

Exploration of software development with substantial reliance on a database for storage and retrieval of data. Topics include relational databases, structured query language, relational database management systems, APIs and libraries for database programming, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 244P. Concurrent Programming. 2 Units.

Exploration of concepts and mechanisms for the development of concurrent software. Topics include threads, locks, race conditions, and deadlocks, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 245P. GUI Programming . 2 Units.

Exploration of interactive software with substantial graphical user interface elements. Topics include libraries and frameworks for GUI programming, layout design and alternatives, event-driven programming, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 246P. Mobile Programming. 2 Units.

Exploration of contemporary libraries and frameworks for construction of mobile applications. Topics include emulators, mobile development standards and patterns, energy consumption issues, screen layout, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 247P. Applied Information Retrieval. 2 Units.

Exploration of principles and concepts for textual information retrieval. Topics include tokenization, inverted indexes, scored retrieval, and precision and recall.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 248P. Neural Network Programming . 2 Units.

Exploration of the concepts, terminology, and processes for training and using deep neural networks for classification problems. Topics include tensors and tensor operations, gradient-based optimization, feature engineering and learning, and workflow of learning systems.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 249P. Applied Data Analytics. 2 Units.

Exploration of the concepts, terminology, and processes used in supervised and unsupervised learning for classification and clustering, from a software engineering perspective. Topics include K-Nearest Neighbors, Logistic Regression, Random Forests, Support Vector Machines, K-Means, and model assessment.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 250P. Web Programming. 2 Units.

Exploration of the concepts, terminology, and popular frameworks for developing full-stack web applications. Students develop simple applications using multiple development stacks, and deploy them on the cloud.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 261P. Software Testing and Debugging. 4 Units.

Designed to teach students how to ensure high-quality software by means of testing, debugging, and other quality assurance activities. Students learn a combination of both theoretical and practical skills, including hands-on experience with modern tools and approaches.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 262P. Programming Styles. 4 Units.

Designed to teach students the various ways software can be decomposed and put back together. Students are exposed to a variety of different programming styles and composition mechanisms.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 263P. User Experience and Interaction. 4 Units.

Provides an introduction to the basic principles of human-computer interaction (HCI) and the pragmatic aspects of usability engineering. Topics include the fundamentals of interaction, user experience, design for usability, and evaluation of products for their usability.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 264P. Distributed Software Architecture. 4 Units.

Study of software system architectures and architectural styles for large-scale distributed applications, and contemporary technologies and standards for their construction. Topics include client-server, peer-to-peer, publish-subscribe, REST, cloud computing, content distribution networks, scalability, latency, caching, and security, among others.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 265P. Reverse Engineering and Modeling. 4 Units.

Introduces theories, concepts, representations, techniques, and case studies in understanding large-scale, complex software systems. Topics include static and dynamic modeling notations, manual and (semi-)automated reverse engineering techniques, APIs, patterns, and styles. A significant, hands-on project is included.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 266P. Software Security and Dependability . 4 Units.

Principles and concepts for the design and construction of secure software. Topics include common types of software security vulnerabilities, methods for detecting vulnerabilities, design and process methodologies to improve security of software, and techniques for assessing security properties of software.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 267P. Cloud and Security Foundations. 4 Units.

Cloud and security foundations provides students fundamental design and security principles about cloud computing and information security. Topics include cloud concepts and architectures; cloud security; data protection and privacy compliance and governance; and security by design, amongst other topics.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 271P. Career and Entrepreneurship. 4 Units.

Teaches practical skills for spoken, written, and electronic communication in a range of business and technical contexts, including promoting project ideas and portfolio development. Students practice their skills in classroom presentations and written exercises.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 272P. Project Management. 4 Units.

Provides an introduction to project management in software engineering from several perspectives. Topics include team behavior; globally distributed work; and resource estimation, scheduling, and budgeting. Students apply their knowledge in an ongoing class project.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 275P. Curricular Practical Training. 0.5 Units.

Mandatory internship in which students individually work at an outside organization to gain experience with the challenges involved in the practice of software engineering.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be taken for credit 2 times.

Restriction: Graduate students only. Master of Software Engineering Degree students only.

SWE 276P. Capstone Project in Software Engineering. 4 Units.

Quarter-long software-intensive project focusing on the design and implementation of a novel software system. Students are expected to bring to bear the concepts acquired during the program.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 290. Research Seminar. 2 Units.

Forum for presentation and criticism by students of research work in progress. Presentation of problem areas and related work. Specific goals and progress of research.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

SWE 290P. Advisement. 0.3 Units.

Mandatory weekly meetings with a faculty advisor.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be taken for credit 3 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 295. Special Topics in Software Engineering. 4 Units.

Studies in selected areas of software engineering. Topics addressed vary each quarter.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

SWE 298. Thesis Supervision. 2-12 Units.

Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

SWE 299. Individual Study. 1-12 Units.

Individual research or investigation under the direction of an individual faculty member.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

SWE 299P. Independent Study. 1-4 Units.

Supervised individual practical project in Software Engineering.

Repeatability: May be taken for credit 4 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

Statistics Courses

STATS 5. Seminar in Data Science. 1 Unit.

An introduction to the field of Data Science; intended for entering freshman and transfers.

Grading Option: Pass/no pass only.

Restriction: Information Computer Science Majors only.

STATS 6. Introduction to Data Science. 4 Units.

Introduces the full data cycle. Topics include data collection and retrieval, data cleaning, exploratory analysis and visualization, introduction to statistical modeling, inference, and communicating findings. Applications include real data from a wide-range of fields with emphasis on understanding reproducible practices.

(Vb)

STATS 7. Basic Statistics. 4 Units.

Introduces basic inferential statistics including confidence intervals and hypothesis testing on means and proportions, t-distribution, Chi Square, regression and correlation. F-distribution and nonparametric statistics included if time permits.

Overlaps with STATS 8, MGMT 7, SOCECOL 13.

Restriction: STATS 7 may not be taken for credit concurrently with or after STATS 110, STATS 111, STATS 112.

(Va)

STATS 8. Introduction to Biological Statistics . 4 Units.

Introductory statistical techniques used to collect and analyze experimental and observational data from health sciences and biology. Includes exploration of data, probability and sampling distributions, basic statistical inference for means and proportions, linear regression, and analysis of variance.

Overlaps with SOCECOL 13, MGMT 7, STATS 7.

Restriction: STATS 8 may not be taken for credit concurrently with or after STATS 110, STATS 111, STATS 112.

(Va)

STATS 67. Introduction to Probability and Statistics for Computer Science. 4 Units.

Introduction to the basic concepts of probability and statistics with discussion of applications to computer science.

Prerequisite: MATH 2B

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment. STATS 67 may not be taken for credit concurrently with or after STATS 120B.

(Va)

STATS 68. Statistical Computing and Exploratory Data Analysis. 4 Units.

Introduces key concepts in statistical computing. Techniques such as exploratory data analysis, data visualization, simulation, and optimization methods, are presented in the context of data analysis within a statistical computing environment.

Prerequisite: STATS 7 and (I&C SCI 31 or I&C SCI 32A)

STATS 110. Statistical Methods for Data Analysis I. 4 Units.

Introduction to statistical methods for analyzing data from experiments and surveys. Methods covered include two-sample procedures, analysis of variance, simple and multiple linear regression.

Prerequisite: STATS 7 or STATS 8 or AP Statistics or (STATS 120A and STATS 120B and STATS 120C). AP Statistics with a minimum score of 3

Restriction: School of Info & Computer Sci students only.

STATS 111. Statistical Methods for Data Analysis II. 4 Units.

Introduction to statistical methods for analyzing data from surveys or experiments. Emphasizes application and understanding of methods for categorical data including contingency tables, logistic and Poisson regression, loglinear models.

Prerequisite: STATS 110

Concurrent with STATS 202.

STATS 112. Statistical Methods for Data Analysis III. 4 Units.

Introduction to statistical methods for analyzing longitudinal data from experiments and cohort studies. Topics covered include survival methods for censored time-to-event data, linear mixed models, non-linear mixed effects models, and generalized estimating equations.

Prerequisite: STATS 111

Concurrent with STATS 203.

STATS 115. Introduction to Bayesian Data Analysis. 4 Units.

Basic Bayesian concepts and methods with emphasis on data analysis. Prior and posterior probability distributions, modeling, and Markov Chain Monte Carlo techniques are presented in the context of data analysis within a statistical computing environment.

Prerequisite: STATS 120C. Recommended: STATS 110.

STATS 120A. Introduction to Probability and Statistics I. 4 Units.

Introduction to basic principles of probability and statistical inference. Axiomatic definition of probability, random variables, probability distributions, expectation.

Prerequisite: MATH 2A and MATH 2B and (MATH 2D or MATH 4)

Restriction: Data Science Majors have first consideration for enrollment. Quantitative Economics majors have second consideration.

Concurrent with STATS 281A.

STATS 120B. Introduction to Probability and Statistics II. 4 Units.

Introduction to basic principles of probability and statistical inference. Point estimation, interval estimating, and testing hypotheses, Bayesian approaches to inference.

Prerequisite: STATS 120A

Restriction: Data Science Majors have first consideration for enrollment. Quantitative Economics majors have second consideration.

Concurrent with STATS 281B.

STATS 120C. Introduction to Probability and Statistics III. 4 Units.

Introduction to basic principles of probability and statistical inference. Linear regression, analysis or variance, model checking.

Prerequisite: STATS 120B and (MATH 3A or MATH 6G or I&C SCI 6N)

Restriction: Data Science Majors have first consideration for enrollment. Quantitative Economics majors have second consideration.

Concurrent with STATS 281C.

STATS 140. Multivariate Statistical Methods. 4 Units.

Theory and application of multivariate statistical methods. Topics include statistical inference for the multivariate normal model and its extensions to multiple samples and regression, use of statistical packages for data visualization and reduction, discriminant analysis, cluster analysis, and factor analysis.

Prerequisite: STATS 120C and (MATH 3A or I&C SCI 6N)

Concurrent with STATS 240.

STATS 170A. Project in Data Science I. 4 Units.

Problem definition and analysis, data representation, algorithm selection, solution validation, and results presentation. Students do team projects and lectures cover analysis alternatives, project planning, and data analysis issues. First quarter emphasizes approach selection, project planning, and experimental design.

Prerequisite or corequisite: STATS 68 and IN4MATX 43 and COMPSCI 122A and COMPSCI 178 and I&C SCI 46 and STATS 111

Grading Option: In Progress (Letter Grade with P/NP).

Restriction: Seniors only. Data Science Majors have first consideration for enrollment.

STATS 170B. Project in Data Science II. 4 Units.

Problem definition and analysis, data representation, algorithm selection, solution validation, and results presentation. Students do team projects and lectures cover analysis alternatives, project planning, and data analysis issues. Second quarter emphasizes project execution and analysis, and presentation of results.

Prerequisite or corequisite: STATS 170A and STATS 112. In Progress (IP) grade for STATS 170A is also accepted.

Restriction: Seniors only. Data Science Majors have first consideration for enrollment.

STATS 199. Individual Study. 2-5 Units.

Individual research or investigations under the direction of an individual faculty member.

Repeatability: May be repeated for credit unlimited times.

STATS 200A. Intermediate Probability and Statistical Theory. 4 Units.

Basics of probability theory, random variables and basic transformations, univariate distributions—discrete and continuous, multivariate distributions.

Prerequisite: STATS 120C. STATS 120C with a grade of B- or better

STATS 200AP. Intermediate Probability and Statistical Theory I. 4 Units.

Fundamental probability and distribution theory needed for statistical inference. Topics include axiomatic foundations of probability theory, discrete and continuous distributions, expectation and moment generating functions, multivariate distributions, transformations, sampling distributions, and limit theorems.

Prerequisite: Knowledge of basic statistics and linear algebra; Calculus I-III.

Restriction: Master of Data Science Degree students only. Graduate students only.

STATS 200B. Intermediate Probability and Statistical Theory. 4 Units.

Random samples, transformations, limit laws, normal distribution theory, introduction to stochastic processes, data reduction, point estimation (maximum likelihood).

Prerequisite: STATS 200A. STATS 200A with a grade of B- or better

STATS 200BP. Intermediate Probability and Statistical Theory II. 4 Units.

Fundamental theory and methods for statistical inference. Topics include data reduction (sufficient, ancillary, and complete statistics), estimation (method of moments, maximum likelihood estimators, Bayes estimators), evaluating methods (mean squared error, best unbiased estimators, asymptotic evaluations), hypothesis testing, and confidence intervals.

Prerequisite: STATS 200AP. STATS 200AP with a grade of B- or better.

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 200C. Intermediate Probability and Statistical Theory. 4 Units.

Interval estimation, hypothesis testing, decision theory and Bayesian inference, basic linear model theory.

Prerequisite: STATS 200B. STATS 200B with a grade of B- or better

STATS 201. Statistical Methods for Data Analysis I. 4 Units.

Introduction to statistical methods for analyzing data from experiments and surveys. Methods covered include two-sample procedures, analysis of variance, simple and multiple linear regression.

Prerequisite: STATS 7 or STATS 8

Restriction: STATS 201 cannot be taken for credit after taking STATS 210.

STATS 202. Statistical Methods for Data Analysis II. 4 Units.

Introduction to statistical methods for analyzing data from surveys or experiments. Emphasizes application and understanding of methods for categorical data including contingency tables, logistic and Poisson regression, loglinear models.

Prerequisite: STATS 201 or STATS 210. STATS 201 with a grade of B- or better. STATS 210 with a grade of B- or better

Concurrent with STATS 111.

STATS 203. Statistical Methods for Data Analysis III. 4 Units.

Introduction to statistical methods for analyzing longitudinal data from experiments and cohort studies. Topics covered include survival methods for censored time-to-event data, linear mixed models, non-linear mixed effects models, and generalized estimating equations.

Prerequisite: STATS 202. STATS 202 with a grade of B- or better

Concurrent with STATS 112.

STATS 205. Introduction to Bayesian Data Analysis. 4 Units.

Basic Bayesian concepts and methods with emphasis on data analysis. Special emphasis on specification of prior distributions. Development for one-two samples and on to binary, Poisson and linear regression. Analyses performed using free OpenBugs software.

Prerequisite: STATS 120C. Recommended: STATS 201 or STATS 210.

STATS 205P. Bayesian Data Analysis. 4 Units.

Covers basic Bayesian concepts and methods with emphasis on data analysis. Special emphasis on specification of prior distributions. Development of methods and theory for one and two samples, binary, Poisson, and linear regression.

Prerequisite: STATS 200AP and STATS 200BP and STATS 210P. STATS 200AP with a grade of B- or better. STATS 200BP with a grade of B- or better. STATS 210P with a grade of B- or better

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 210. Statistical Methods I: Linear Models. 4 Units.

Statistical methods for analyzing data from surveys and experiments. Topics include randomization and model-based inference, two-sample methods, analysis of variance, linear regression and model diagnostics.

Prerequisite: Knowledge of basic statistics, calculus, linear algebra.

STATS 210A. Statistical Methods I: Linear Models. 4 Units.

Statistical methods for analyzing data from surveys and experiments. Topics include randomization and model-based inference, two-sample methods, analysis of variance, linear regression, and model diagnostics.

Prerequisite: Knowledge of basic statistics (at the level of STATS 7), calculus, and linear algebra.

Restriction: Graduate students only.

STATS 210B. Statistical Methods II: Categorical Data. 4 Units.

Introduction to statistical methods for analyzing discrete and non-normal outcomes. Emphasizes the development and application of methods for categorical data, including contingency tables, logistic and Poisson regression, loglinear models.

Prerequisite: STATS 210. STATS 210 with a grade of B- or better. May not be taken for graduate credit by Ph.D. students in Statistics.

Restriction: Graduate students only.

STATS 210C. Statistical Methods III: Longitudinal Data. 4 Units.

Introduction to statistical methods for analyzing longitudinal outcomes. Emphasizes the development and application of regression methods for correlated and censored outcomes. Methods for continuous and discrete correlated outcomes, as well as censored outcomes, are covered.

Prerequisite: STATS 210B. STATS 210B with a grade of B- or better. May not be taken for graduate credit by Ph.D. students in Statistics.

Restriction: Graduate students only.

STATS 210P. Statistical Methods I. 4 Units.

Statistical methods for analyzing data from multi-variable observational studies and experiments. Topics include model selection and model diagnostics for simple and multiple linear regression and generalized linear models.

Prerequisite: STATS 200AP and STATS 200BP. STATS 200AP with a grade of B- or better. STATS 200BP with a grade of B- or better. Required: Knowledge of basic statistics and linear algebra.

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 211. Statistical Methods II: Generalized Linear Models. 4 Units.

Development of the theory and application of generalized linear models. Topics include likelihood estimation and asymptotic distributional theory for exponential families, quasi-likelihood and mixed model development. Emphasizes methodological development and application to real scientific problems.

Prerequisite or corequisite: STATS 210. STATS 210 with a grade of B- or better

STATS 211P. Statistical Methods II. 4 Units.

Statistical methods for designing experiments, visualizing, and analyzing experimental and observational data using generalized regression models, multivariate analysis, and methods suitable for dependent data.

Prerequisite: STATS 210P. STATS 210P with a grade of B- or better

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 212. Statistical Methods III: Methods for Correlated Data. 4 Units.

Development and application of statistical methods for analyzing corrected data. Topics covered include repeated measures ANOVA, linear mixed models, non-linear mixed effects models, and generalized estimating equations. Emphasizes both theoretical development and application of the presented methodology.

Prerequisite: STATS 211. STATS 211 with a grade of B- or better

STATS 220A. Advanced Probability and Statistics Topics. 4 Units.

Advanced topics in probability and statistical inference including measure theoretic probability, large sample theory, decision theory, resampling and Monte Carlo methods, nonparametric methods.

Prerequisite: STATS 200C. STATS 200C with a grade of B- or better

STATS 220B. Advanced Probability and Statistics Topics. 4 Units.

Advanced topics in probability and statistical inference, including measure theoretic probability, large sample theory, decision theory, resampling and Monte Carlo methods, nonparametric methods.

Prerequisite: STATS 220A and MATH 140B. STATS 220A with a grade of B- or better

STATS 225. Bayesian Statistical Analysis. 4 Units.

Introduction to the Bayesian approach to statistical inference. Topics include univariate and multivariate models, choice of prior distributions, hierarchical models, computation including Markov chain Monte Carlo, model checking, and model selection.

Prerequisite: STATS 205 and STATS 230. STATS 205 with a grade of B- or better. STATS 230 with a grade of B- or better

STATS 226. Advanced Topics in Modern Bayesian Statistical Inference. 4 Units.

Modern Bayesian Statistics: selected topics from theory of Markov chains, application of theory to modern methods of Markov chain Monte Carlo sampling; Bayesian non-parametric and semiparametric modeling, including Dirichlet Process Mixtures; Mixtures of Polya Trees.

Prerequisite: STATS 200C and STATS 225. STATS 200C with a grade of B- or better. STATS 225 with a grade of B- or better

STATS 230. Statistical Computing Methods. 4 Units.

Numerical computations and algorithms with applications in statistics. Topics include optimization methods including the EM algorithm, random number generation and simulation, Markov chain simulation tools, and numerical integration.

Prerequisite: Two quarters of upper-division or graduate training in probability and statistics.

Overlaps with COMPSCI 206.

STATS 240. Multivariate Statistical Methods. 4 Units.

Theory and application of multivariate statistical methods. Topics include statistical inference for the multivariate normal model and its extensions to multiple samples and regression, use of statistical packages for data visualization and reduction, discriminant analysis, cluster analysis, and factor analysis.

Prerequisite: STATS 120C and (MATH 3A or I&C SCI 6N)

Concurrent with STATS 140.

STATS 240P. Multivariate Statistical Methods. 4 Units.

Theory and application of multivariate statistical methods. Topics include statistical inference for the multivariate normal model and its extensions to multiple samples and regression, use of statistical packages for data visualization and dimension reduction, discriminant analysis, cluster analysis, factor analysis.

Prerequisite: STATS 200AP and STATS 200BP. STATS 200AP with a grade of B- or better. STATS 200BP with a grade of B- or better

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 245. Time Series Analysis. 4 Units.

Statistical models for analysis of time series from time and frequency domain perspectives. Emphasizes theory and application of time series data analysis methods. Topics include ARMA/ARIMA models, model identification/estimation, linear operators, Fourier analysis, spectral estimation, state space models, Kalman filter.

Corequisite: STATS 200C
Prerequisite or corequisite: STATS 201 or STATS 210. STATS 201 with a grade of B- or better. STATS 210 with a grade of B- or better

STATS 245P. Time Series Analysis. 4 Units.

Statistical models for time series. Topics include linear models for trends; stationary time-series; non-stationary time series; forecasting and Kalman filtering; time-series smoothing; seasonal models; ARCH, GARCH and stochastic volatility models; multivariate time series; vector autoregressive models; spectral analysis; case studies.

Prerequisite: STATS 200AP and STATS 200BP. STATS 200AP with a grade of B- or better. STATS 200BP with a grade of B- or better

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 255. Statistical Methods for Survival Data. 4 Units.

Statistical methods for analyzing survival data from cohort studies. Topics include parametric and nonparametric methods, the Kaplan-Meier estimator, log-rank tests, regression models, the Cox proportional hazards model and accelerated failure time models, efficient sampling designs, discrete survival models.

Corequisite: STATS 202 or STATS 211.
Prerequisite: STATS 210. STATS 210 with a grade of B- or better

Restriction: Graduate students only.

STATS 257. Introduction to Statistical Genetics. 4 Units.

Provides students with knowledge of the basic principles, concepts, and methods used in statistical genetic research. Topics include principles of population genetics, and statistical methods for family- and population-based studies.

Prerequisite: Two quarters of upper-division or graduate training in statistical methods.

Same as EPIDEM 215.

STATS 260. Inference with Missing Data. 4 Units.

Statistical methods and theory useful for analysis of multivariate data with partially observed variables. Bayesian and likelihood-based methods developed. Topics include EM-type algorithms, MCMC samplers, multiple imputation, and general location model. Applications from economics, education, and medicine are discussed.

Prerequisite or corequisite: STATS 210 or STATS 200C. STATS 230.

STATS 262P. Theory and Practice of Sample Survey. 4 Units.

Basic techniques and statistical methods for designing surveys and analyzing collected survey data. Topics include simple random sampling, ratio and regression estimates, stratified sampling, cluster sampling, sampling with unequal probabilities, multistage sampling, and methods to handle nonresponse.

Prerequisite: STATS 200AP and STATS 200BP. STATS 200AP with a grade of B- or better. STATS 200BP with a grade of B- or better

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 265. Causal Inference. 4 Units.

Various approaches to causal inference focusing on the Rubin causal model and propensity-score methods. Topics include randomized experiments, observational studies, non-compliance, ignorable and non-ignorable treatment assignment, instrumental variables, and sensitivity analysis. Applications from economics, politics, education, and medicine.

Prerequisite: STATS 200C and STATS 210. STATS 200C with a grade of B- or better. STATS 210 with a grade of B- or better

STATS 270. Stochastic Processes. 4 Units.

Introduction to the theory and application of stochastic processes. Topics include Markov chains, continuous-time Markov processes, Poisson processes, and Brownian motion. Applications include Markov chain Monte Carlo methods and financial modeling (for example, option pricing).

Prerequisite: STATS 120C

Overlaps with MATH 271A, MATH 271B, MATH 271C.

STATS 270P. Stochastic Processes. 4 Units.

Introduction to the theory and application of stochastic processes. Topics include Poisson processes, Markov chains, continuous-time Markov processes, and Brownian motion. Applications include Markov chain Monte Carlo methods and financial modeling (e.g. option pricing).

Prerequisite: STATS 200AP and STATS 200BP. STATS 200AP with a grade of B- or better. STATS 200BP with a grade of B- or better

Restriction: Graduate students only. Master of Data Science Degree students only.

STATS 275. Statistical Consulting. 4 Units.

Training in collaborative research and practical application of statistics. Emphasis on effective communication as it relates to identifying scientific objectives, formulating a statistical analysis plan, choice of statistical methods, and interpretation of results and their limitations to non-statisticians.

Prerequisite: STATS 203 or STATS 212 or STATS 210C. STATS 203 with a grade of B or better. STATS 212 with a grade of B or better. STATS 210C with a grade of B or better

Restriction: Graduate students only.

STATS 280. Seminar in Statistics. 0.5 Units.

Periodic seminar series covering topics of current research in statistics and its application.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

STATS 281A. Introduction to Probability and Statistics I. 4 Units.

Introduction to basic principles of probability and statistical inference. Axiomatic definition of probability, random variables, probability distributions, expectation.

Restriction: Graduate students only.

Concurrent with STATS 120A.

STATS 281B. Introduction to Probability and Statistics II. 4 Units.

Introduction to basic principles of probability and statistical inference. Point estimation, interval estimating, and testing hypotheses, Bayesian approaches to inference.

Restriction: Graduate students only.

Concurrent with STATS 120B.

STATS 281C. Introduction to Probability and Statistics III. 4 Units.

Introduction to basic principles of probability and statistical inference. Contingency table analysis, linear regression, analysis of variance, model checking.

Restriction: Graduate students only.

Concurrent with STATS 120C.

STATS 295. Special Topics in Statistics. 4 Units.

Studies in selected areas of statistics. Topics addressed vary each quarter.

Repeatability: Unlimited as topics vary.

STATS 298. Thesis Supervision. 2-12 Units.

Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.

Repeatability: May be repeated for credit unlimited times.

STATS 299. Individual Study. 2-12 Units.

Individual research or investigation under the direction of an individual faculty member.

Repeatability: May be repeated for credit unlimited times.

Undergraduate Programs

A Donald Bren School of ICS undergraduate education is a blend of scholarship, science, technology, and practical application that forms an excellent foundation for professional life.

The basis of the undergraduate programs are a set of fundamental courses in mathematics and computer science, supplemented by general education courses from other academic disciplines. A premium is placed on both communication and quantitative skills. Students quickly gain hands-on experience with advanced computing systems, and intense use of computer and network technologies continues throughout the undergraduate program. Students study data organization, algorithm design and analysis, design and organization of hardware and network systems, software engineering, artificial intelligence, social aspects of system design and use, and management of technology. In the process, students work with state-of-the-art hardware and software technologies, and learn several contemporary programming languages.

Visit the ICS Undergraduate Student Affairs Office website for restrictions between majors and minors and between double majors.

Admissions

To ensure admission consideration for the fall quarter, students should be sure to file their application by November 30 of the prior year. The selection criteria include grades, test scores, and other considerations.

Transfer Student Policy

Transfer requirements vary by major.

Business Information Management
Computer Science
Computer Science and Engineering
Data Science
Game Design and Interactive Media
Informatics
Software Engineering

NOTE TO TRANSFER APPLICANTS: These majors require a series of lower-division courses, and prerequisites constrain the order in which they can be taken. Junior-level transfer students who must complete a significant part of this sequence may find that it will take longer than two years at UCI to complete their degree. Python, Java, and C++ are used in the curriculum; therefore, transfer students should plan to learn these languages by studying on their own or by completing related programming courses prior to their first quarter at UCI. Please note: a minimum grade of B will be expected for each major's required courses for admission.

It is recommended that students review the articulation agreement between their community colleges and a major at UC Irvine. This will allow them to make efficient progress toward the major.

Change of Major

Students interested in changing their major to one offered by the School should contact the ICS Student Affairs Office for more information and assistance. Information is also available at the UCI Change of Major Criteria website.

Major and Minor Restrictions

ICS majors (including shared majors, BIM and CSE) pursuing minors within the Donald Bren School of ICS may not count more than one course toward both the major and minor.

Some ICS majors and non-ICS minors are not permitted due to significant overlap.

ICS Majors who intend to pursue an additional major in the School should first check our information page to see what degree programs are eligible for double majoring.

Visit the ICS Undergraduate Student Affairs Office's website for detailed information on all restrictions.

Special Programs and Courses

The ICS Honors Program

The ICS Honors Program provides selected upper-division students an opportunity to carry out a research project under the direction of a faculty member in the School. Admitted students participate in the ICS Honors Seminar (I&C SCI H197), which provides an introduction to the range of current faculty research. Each student then affiliates with an ICS faculty advisor who agrees to supervise a minimum of two quarters of honors research. The participating student prepares a final written research report and submits a copy for review to both the faculty advisor and the Honors Program advisor. For more information about course requirements, application procedures, and deadlines visit http://honors.ics.uci.edu/, or contact the Student Affairs Office at 949 824-5156.

  • ICS H197: Students must complete the ICS H197 Honors Seminar (1-2 units) each quarter while enrolled in the ICS Honors Program. ICS H197 will be offered for 2 units in the Fall as an introduction to the program and 1 unit for the Winter and Spring quarters as a way to monitor student progress and increase engagement.
  • CS/INF/STATS H198- Faculty Advising and Research: After taking ICS H197 and finding a faculty advisor, students will enroll in 2 quarters of honors research. Students have the option of enrolling in 2 H198 Honors Research courses in their respective departments (i.e. Computer Science, Informatics, or Statistics) OR substitute their second H198 Honors Research course for an ICS H198W Thesis Supervision course while they work on writing their honors thesis.
  • ICS H198W Thesis Supervision (4 units): Students can take an H198W Thesis Supervision course while they work on writing their honors thesis. This course can be used for the students’ upper division writing course towards their GE 1 requirement and may substitute any upper division writing course required for their major upon petition. Faculty advisors participating in the ICS Honors Program will be responsible for aiding students in writing their thesis to the caliber of an upper division writing course. An ethics component will be added to ICS H197 in the Fall to ensure students have a good understanding of this topic prior to beginning their research project.

Program Completion
To complete the ICS Honors Program, students must:

  • Complete ICS H197 for three quarters,
  • Complete H198 for at least two quarters or complete at least one H198 and ICS H198W.
  • Submit a thesis which must be approved by their faculty advisor and the ICS Honors Program Advisor.
  • Present their honors project in a public forum. This can be a symposium such as the ICS Project Expo or the UROP Undergraduate Research Symposium, or another approved event.
Other Opportunities

ICS undergraduates may complement their educational experience by participating in other programs. Information about the following programs is available elsewhere in the Catalogue and via the program Web sites: Campuswide Honors Collegium, Undergraduate Research Opportunities Program, Education Road Program, and Student Achievement Guided by Experience (SAGE Scholars).

Graduate Programs in Information and Computer Sciences

Admission

Applicants will be evaluated on the basis of their prior academic record. Applicants for the M.S. are expected to have a bachelor’s degree in computer science or a related field. Ph.D. applicants will additionally be evaluated in their potential for creative research and teaching in Information and Computer Sciences.

Applicants are expected to have (1) skills in computer programming at least equivalent to those obtained in college-level courses in programming and language development; (2) skills in mathematics equivalent to those obtained in complete college-level courses in logic and set theory, analysis, linear algebra and modern algebra, or probability and statistics; (3) data structures, analysis of algorithms, automata theory, or formal languages; and (4) computer architectures.

All applicants are evaluated on the materials submitted: letters of recommendation, official GRE test scores (optional for M.S./Ph.D. in Informatics, M.S./Ph.D. in Software Engineering, the Master of Human Computer Interaction and Design, and the Master of Software Engineering) official college transcripts, statement of purpose, and personal history statement.

An applicant to the M.S./Ph.D. in Informatics, M.S./Ph.D. in Software Engineering, the Master of Human Computer Interaction and Design, or the Master of Software Engineering is strongly encouraged to submit additional material that enriches their application and speaks to the applicant's strengths (e.g., design portfolio, link to GitHub profile, GRE test scores, scholarly papers submitted and/or published, writing samples).

For more information, contact the ICS graduate counselor at 949-824-5156 or send an email to gcounsel@ics.uci.edu.

Financial Assistance

Financial assistance is available to Ph.D. students in the form of fellowships, teaching assistantships, and research assistantships. Although assistance varies, it is the School’s goal to support all entering Ph.D. students, subject to availability of funds. International students who are not citizens of countries where English is either the primary or dominant language, as approved by Graduate Council, and who apply for teaching assistantships must take one of the approved English proficiency examinations. More information is available in the Graduate Division section of the Catalogue.

Students with a Previously Earned Master’s Degree

Credit for one or all required courses may be given at the time of admission to those students who have completed a master’s degree in computer science or a closely related field. Course equivalency will be determined by the ICS Associate Dean for Student Affairs following a written recommendation from a sponsoring research advisor. Research advisors can require that a student take additional courses when this is appropriate.

An additional M.S. will not be awarded if the student currently holds an M.S. in computer science or a related field from another university.