Courses

While the UC Irvine catalogue is the official source of all matters related to the curriculum, for convenience, this page lists all of the undergraduate courses offered on a regular basis by the faculty in the Department of Informatics.

ICS


ICS 3. Internet Technologies and their Social Impact.

Examines current Internet technologies and social implications at the individual, group and societal levels. 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.

ICS 4. Human Factors for the Web.

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.

ICS 5. Global Disruption and Information Technology.

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. Course may be offered online.

ICS 6B. Boolean Logic and Discrete Structures.

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.

ICS 10. How Computers Work.

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 and software. Human-computer interaction and social impact.

ICS 31. Introduction to Programming.

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.

ICS 32A. Python Programming and Libraries (Accelerated).

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.

ICS 33. Intermediate Programming.

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.

ICS45J. Programming in Java as a Second Language.

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.

ICS 105. Digital Information Systems.

Design and analysis of digital information systems. Covers underlying database and network technology and software engineering principles used to build these systems. Evaluating digital information systems and recognizing common flaws and vulnerabilities.

ICS 139W. Critical Writing on Information Technology.

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.

ICS 161. Game Engine Lab.

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.

ICS 162. Modeling and World Building.

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.

ICS 163. Mobile and Ubiquitous Games.

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.

ICS 166. Game Design.

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.

ICS 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.

ICS 168. Multiplayer Game Project.

Designing and implementing a multiuser, networked and persistent virtual environment or game. Emphasis on cultural aspects, community building, user-interface issues and design, security, privacy and economics.

ICS 169A. Capstone Game Project I.

Students work in teams to design and implement a new computer game or virtual world. Emphasis on sound, art, and level design, building a community, cut scenes, production values, full utilization of hardware and software platform, and current industry trends.

ICS 169B. Capstone Game Project II.

Students work in teams to design and implement a new computer game or virtual world. Emphasis on sound, art, and level design, building a community, cut scenes, production values, full utilization of hardware and software platform, and current industry trends.

IN4MATX


IN4MATX 43. Introduction to Software Engineering.

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

IN4MATX 101. Concepts in Programming Languages I.

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. Course may be offered online.

IN4MATX 102. Concepts of Programming Languages II.

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.

IN4MATX 113. Requirements Analysis and Engineering.

Aims to equip 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.

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

Aims to prepare students to develop high-quality software through successful verification and validation techniques. Fundamental principles of software testing, how to test software and how to ensure the thoroughness of testing to gain confidence in the correctness of the software.

IN4MATX 117. Project in Software System Design.

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.

IN4MATX 121. Software Design I.

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.

IN4MATX 122. Software Design II.

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.

IN4MATX 123. Software Architecture.

Prepares students to engineer well-structured software systems. Students learn a wide range of software architectural styles, architectural platforms that provide standard services to applications and formal architecture description languages.

IN4MATX 124. Internet Applications Engineering.

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.

IN4MATX 125. Computer Game Development.

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.

IN4MATX 131. Human Computer Interaction.

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.

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

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

IN4MATX 133. User Interaction Software.

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

IN4MATX 134. Project in User Interaction Software.

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.

IN4MATX 141. Information Retrieval.

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

IN4MATX 143. Information Visualization.

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.

IN4MATX 148. Project in Ubiquitous Computing.

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.

IN4MATX 151. Project Management.

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.

IN4MATX 153. Computer Supported Cooperative Work.

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.

IN4MATX 161. Social Analysis of Computerization.

Introduction of computerization 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 computerization and work life, privacy, virtual communities, productivity paradox and systems risks.

IN4MATX 162W. Organizational Information Systems.

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.

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

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.

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.

IN4MATX 171. Introduction to Medical Informatics.

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.

IN4MATX 172. Project in Health Informatics.

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.

IN4MATX 190. Studies in Music Technology.

Specialized topics in electronic music, computer-aided music, and other aspects of music technology.

IN4MATX 191AB. Senior Design Project.

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. (Course spans 2 quarters.)

IN4MATX H198. Honors Research.

Directed independent research in Informatics for honors students.

IN4MATX 199. Individual Study.

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

IN4MATX H81. Ethics, Technology, and Design.

InProvides 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.

GDIM


GDIM 25. Game Design Fundamentals.

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.

GDIM 27. Intermediate Game Design.

More advanced study of game design principles and systems design through the study of complex problems and play experiences. Topics include economies, game balancing, level design, prototyping, stat design, playtesting, and design documentation.

GDIM 31. Introduction to Programming for Games.

Learn the fundamentals of programming for games through hands-on exercises in programming languages like C#, Processing, Visual Studio .NET and the Unity engine. Students will build several small game prototypes.

GDIM 32. Intermediate Programming for Games .

Students advance their skills with game programming, building on existing skills developed in Introduction to Programming for Games. Hands-on projects emphasize general procedural and problem-solving skills, as well as furthering knowledge of C# and the Unity3D/Unreal game engines.

GDIM 33. Coding In Game Engines.

This course introduces students to visual scripting tools in game engines in the context of game design, level, design, and experience design. Students gain fluency in one or more visual scripting languages.

GDIM 41. Games and Society.

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.

GDIM 49. Special Topics in Games and Society.

Studies in selected areas of games and their relationship to society. Topics addressed vary each quarter. Course may be repeated for credit. Topics may not be repeated.

GDIM 51. Visual Design Fundamentals.

The principles, tools, and techniques of visual design for playable media. How do shape, line, color, composition, typography and time work together to communicate information, emotion, and meaning in interfaces, game worlds, and stories?

GDIM 53. Roleplaying and Improvisational Play.

How do practices of performance, role-playing, and improvisation overlap with contemporary practices of game design? This course connects these forms of play to their contemporary uses within role-playing games, virtual worlds, and playable media more broadly.

GDIM 55. Storytelling for Interactive Media.

The history, theory, and practice of interactive storytelling for games and other interactive media. Starting with the emergence of electronic literature and hypertext narratives, students encounter and experience a compressed history of this emergent form through play, analysis, and design.

GDIM 61. Introduction to Game Development.

Introduction to the design and development of games. Includes core concepts in software development, team management, leadership, and project management.

GDIM 127. Professional Studio/Practicum.

Professional skills are essential in today’s competitive job market. This course covers interview techniques, resume building, professional networking, personal brand development, online portfolios and presentation.

GDIM 129. Special Topics in Advanced Game Design.

Studies in selected areas of advanced game design. Topics addressed vary each quarter. Course may be repeated for credit. Topics may not be repeated.

GDIM 131. Data Analytics for Games and Interactive Media.

Survey of analysis methods for understanding player data, including playtesting, telemetry data collection and analysis, metrics visualization, and its application in development and business.

GDIM 139. Special Topics in Game Programming.

Studies in selected areas of game programming. Topics addressed vary each quarter. Course may be repeated for credit. Topics may not be repeated.

GDIM 159. Special Topics in Interactive Media Design.

Studies in selected areas of interactive media and design. Topics addressed vary each quarter. Course may be repeated for credit. Topics may not be repeated.

GDIM 161. Multiplayer Game Project.

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.

GDIM 163. Solo Game Project.

Students work on their own to design, develop, and playtest a small game from scratch, taking into consideration psychology, narrative, platform features and limitations, marketing, computer science capabilities, human-computer interface principles, industry trends, aesthetic judgment, and other factors.

GDIM 165. Games Entrepreneurship.

As the audiences for games continue to diversify so have the channels for game publishing and monetization. Explore connections between the business and creative side of games in contexts like esports, education, indie game development, mobile apps, and AAA studios.

GDIM 167A. Capstone Game Project I.

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.

GDIM 167B. Capstone Game Project II.

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.