DEPARTMENT OF INFORMATICS

5019 Donald Bren Hall; (949) 824-2901
David F. Redmiles, Department Chair

Undergraduate Program

Graduate Program

Courses

Faculty

Yunan Chen: Medical informatics, human-computer interaction

Paul Dourish: Human-computer interaction, computer-supported cooperative work

Stephen Franklin: Computer- and network-based educational technology, IT resource management

Daniel Frost: Artificial intelligence, software engineering, computer graphics, teaching of programming

Gillian Hayes: Interactive and collaborative technology, human-computer interaction, computer-supported cooperative work, educational technology, ubiquitous computing

James A. Jones: Software engineering, software testing and analysis, debugging and fault localization, static and dynamic analysis, software visualization

David G. Kay: Computer law, computer science education

Alfred Kobsa: User modeling, human-computer interaction, artificial intelligence, cognitive science, interdisciplinary computer science

Cristina Videira Lopes: Programming languages, acoustic communications, operating systems, software engineering

Gloria Mark: Computer-supported cooperative work, human-computer interaction

Bonnie Nardi: Computer-supported collaborative work, human-computer interaction, computer-mediated communication, user studies methods, activity theory, cultural responses to technology development

Gary Olson: Interactive and collaborative technology, human-computer interaction, computer-supported cooperative work

Judy Olson: Interactive and collaborative technology, human-computer interaction, computer-supported cooperative work

Donald J. Patterson: Ubiquitous computing, pervasive computing, human-computer interaction, artificial intelligence, intelligent context for situated computing

Richard Pattis: Microworlds for teaching programming, debugging, computational tools for non-computer scientists

David F. Redmiles: Design environments, human-computer interaction, usability engineering, knowledge-based support

Debra J. Richardson: Software engineering; program testing; life-cycle validation; software environments

Susan E. Sim: Software engineering, research methodology, program comprehension

Thomas A. Standish: Software testing and analysis, software semantics and epistemology, programming and cognition, and software comprehension

Richard Taylor: Software engineering, user interfaces, environments, team support

Alex Thornton: Computer science education, programming languages, compilers

Bill Tomlinson: Autonomous characters, computational social behavior, interactive media, real-time animation

André van der Hoek: Software engineering

Hadar Ziv: Software testing, requirements engineering, Bayesian modeling

The faculty in the Department of Informatics also contribute to the following concentrations in the ICS graduate program: Software track, Interactive and Collaborative Technology track, and Ubiquitous Computing track.

Affiliated Faculty

Christopher Dobrian: Electronic music, composition

Magda El Zarki: Telecommunications, networks, wireless communication, video transmission

Tony Givargis: Embedded systems, platform-based system-on-a-chip design, low-power electronics

Vijay Gurbaxani: Economics of information systems management, impact of information technology on organization and market structure

K. H. (Kane) Kim: Distributed real-time computer systems, fault-tolerant computer systems, real-time learning systems

Kenneth L. Kraemer: Economics and management of computing; organizational and social impacts of computing; information technology and public policy; management information systems/decision support systems

Robert Nideffer: Electronic intermedia, interface theory and design, technology and culture, contemporary social theory

Simon Penny: Robotic sculpture, interactive environments, electronic media, art practice history, and critical theory

Alladi Venkatesh: Social impacts of information technology, Internet and the New Economy, Smart Home technologies, children and multimedia

Mark Warschauer: Language, literacy, technology

Informatics is the interdisciplinary study of the design, application, use, and impact of information technology. It goes beyond technical design, to focus on the relationship between information system design and use in real-world settings. These investigations lead to new forms of system architecture, new approaches to system design and development, new means of information system implementation and deployment, and new models of interaction between technology and social, cultural, and organizational settings.

Undergraduate Major in Informatics

Students in the Informatics major study software architecture; software development, design, and analysis; programming languages; ubiquitous computing; information retrieval and management; human-computer interaction; computer-supported cooperative work; and other topics that address the relationship between information technology design and use in social and organizational settings. The Informatics major addresses the broad set of issues surrounding design, ranging from initial requirements gathering to software design and measuring the impact of alternative solutions—all from a multidisciplinary perspective that includes computer science, information science, organizational science, social science, and cognitive science.

Courses offer extensive treatment of the conceptual underpinnings of the discipline and provide in-depth practical experiences, often performed on real-world examples and involving outside organizations. Students completing the major will be exceptionally well suited for advanced careers in information technology or for further study at the graduate level. Specific careers include, but are not limited to, software engineer; software architect; system, software, and information analyst; system, software, and information designer; project manager; and interface and interaction designer. Career choices include new start-ups, multinational corporations, small software houses, consulting, and game companies.

Informatics majors complete a specialization in one of three areas: software engineering, human-computer interaction, or organizations and information technology. Informatics majors may also choose to complete the Game Culture and Technology concentration, an interdisciplinary course of study requiring a total of eight courses (32 units) from the Bren School of ICS and Claire Trevor School of the Arts (Department of Studio Art); selection criteria and course requirements are described on page 346.

More information is available online at http://www.ics.uci.edu/informatics/ugrad.

ADMISSIONS

Freshmen Applicants: See pages 34–38.

Transfer Applicants:

Students transferring into the major must satisfy the following requirements:

1.   Completion of one year of college mathematics. Courses equivalent to ICS 6B/Mathematics 6B (boolean algebra and symbolic logic), Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67, and Philosophy 29 (critical reasoning in logic and argument) are preferred; these courses facilitate scheduling after transfer to UCI. A semester of pre-calculus and a semester of calculus are not sufficient to satisfy this requirement.

2.   Completion of one year of UC-transferable computer science courses, including at least one course involving the concepts of object-oriented programming (e.g., in Java) or functional programming (e.g., in Scheme). Additional courses beyond the two courses required for admission are strongly recommended, particularly courses that focus on topics such as software design, software engineering, human-computer interaction, programming language concepts, data structures, and algorithms, if such courses are available. It is strongly recommended that transfer students enter UCI with knowledge of Java since it is used in many of the required courses.

3.   Completion of at least one year of college-level courses in English composition, academic writing, research writing, or technical writing. Students should have strong reading and writing skills and facility with quantitative reasoning and critical, logical thinking. Courses in design are also beneficial, though not required.

Students who transfer to UCI in need of completing any part of this sequence may find that it will take longer than two years to complete their degree.

More information is available at http://www.ics.uci.edu/informatics/ugrad or at the ICS Student Affairs Office; telephone (949) 824-5156; e-mail: ucounsel@uci.edu.

REQUIREMENTS FOR THE BACHELOR'S DEGREE IN INFORMATICS

University Requirements: See pages 56–62.

Major Requirements

Lower-division:

A.   Introductory courses: Informatics 41, 42, 43, 44.

B.   ICS 23 or Informatics 45.

C.   ICS 6B/Mathematics 6B, Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67, and Philosophy 29.

Upper-division:

A.   Informatics Core Requirements: Informatics 113, 121, 131, 151, 161, 191A-B-C.

B.   One of the following specializations:

   Software Engineering: Informatics 101, 102, 111, 115, 117, 122, 123, 133, Computer Science 122A, and one additional course chosen from Informatics 100-199, EECS118, Management 107, Management 159.

   Human-Computer Interaction: Informatics 132; three courses chosen from Informatics 133, 141, 143, 153, 162, 171, Cognitive Science 143H; two project courses chosen from Informatics 125, 134, 148, 163; four additional courses chosen from Informatics 100-190 or Public Health 166.

   Organizations and Information Technology: (a) Informatics 141, 162, 163, Management 5, Management 102; (b) four additional courses chosen from: Management 107, 159, 162, 170, 173, 175, and 178; Psychology and Social Behavior 9, 104S, 176S, and 180S; Sociology 41, 135, 141, 143, and 145; Informatics 100-199; (c) two additional courses chosen from Informatics 100-199 or Computer Science 100-199.

Major and minor restrictions: See page 344.

Sample Program of Study — Informatics: Software Engineering

FALL

WINTER

SPRING

Freshman

Informatics 41

Informatics 42

Informatics 43

Writing 39A

Writing 39B

Writing 39C

Philosophy 29

ICS 6B/Math 6B

ICS 23 or Informatics 45

Informatics 44

Sophomore

Math/Statistics 7 or 67

Informatics 131

Informatics 115

Informatics 101

Informatics 102

CS 122A

Informatics 111

Informatics 113

Gen. Ed. (III)

Gen. Ed. (II)

Gen. Ed. (III)

Gen. Ed. (IV)

Junior

Informatics 121

Informatics 122

Informatics 123

Informatics 161

Informatics 117

Gen. Ed. (IV)

Informatics 133

Informatics 151

UD Writing

Gen. Ed. (III)

Gen. Ed. (IV)

Elective

Senior

Informatics 191A

Informatics 191B

Informatics 191C

Gen. Ed. (VI)

Software Eng. Elective

Gen. Ed. (VIII)

Elective

Gen. Ed. (VII)

Elective

Elective

Sample Program of Study — Informatics: Human-Computer Interaction (HCI)

FALL

WINTER

SPRING

Freshman

Informatics 41

Informatics 42

Informatics 43

Writing 39A

Writing 39B

Writing 39C

Philosophy 29

ICS 6B/Math 6B

ICS 23 or Informatics 45

Sophomore

Math/Statistics 7 or 67

Informatics 131

Informatics 132

Informatics 161

Informatics 113

HCI Elective

HCI Elective

HCI Elective

Gen. Ed. (III)

Gen. Ed. (II)

Gen. Ed. (III)

Gen. Ed. (IV)

Junior

HCI Elective

Informatics 151

HCI Project

Informatics 121

HCI Elective

Gen. Ed. (IV)

Gen. Ed. (III)

HCI Project

UD Writing

Elective

Gen. Ed. (IV)

Elective

Senior

Informatics 191A

Informatics 191B

Informatics 191C

HCI Elective

HCI Elective

Gen. Ed. (VIII)

Gen. Ed. (VI)

Gen. Ed. (VII)

Elective

Elective

Sample Program of Study — Informatics: Organizations and Information Technology (OIT)

FALL

WINTER

SPRING

Freshman

Informatics 41

Informatics 42

Informatics 43

Writing 39A

Writing 39B

Writing 39C

Philosophy 29

ICS 6B/Math 6B

ICS 23 or Informatics 45

Informatics 44

Sophomore

Math/Statistics 7 or 67

Informatics 131

OIT Elective

Management 5

Management 102

OIT Elective

OIT Elective

Informatics 113

Gen. Ed. (III)

Gen. Ed. (II)

Gen. Ed. (III)

Gen. Ed. (IV)

Junior

Informatics 161

Informatics 162W

Informatics 163

Informatics 121

Informatics 151

Gen. Ed. (IV)

Informatics 141

OIT Elective

OIT Elective

Gen. Ed. III

Gen. Ed. (IV)

Elective

Senior

Informatics 191A

Informatics 191B

Informatics 191C

OIT Elective

Gen. Ed. (VII)

Gen. Ed. (VIII)

Gen. Ed. (VI)

Elective

Elective

Elective

Minor in Informatics

The minor provides a focused study of Informatics to supplement a student's major program of study and prepares students for a profession, career, or academic pursuit in which information and software design is an integral part but is not the primary focus. The minor allows students sufficient flexibility to pursue courses that complement their major field or address specific interests. The minor particularly centers on understanding the relationships among computers and people, and how these relationships must be addressed in information and software design.

Requirements for the Minor: Informatics 41, 42, 43, 44, 111, and 131; and at least one of the following pairs of courses: Informatics 101 and Informatics 102, Informatics 113 and 115, Informatics 151 and 153, Informatics 161 and 162, Informatics 132 and 143, CS 122A and CS 122B.

Before enrolling in any course for the Informatics minor, students should ensure that they meet its prerequisites. See the course prerequisites listed in the Catalogue or on the Informatics Web site at http://www.ics.uci.edu/informatics/ugrad.

NOTE: A maximum of two courses can be taken Pass/Not Pass to satisfy the minor in Informatics. Students majoring in Information and Computer Science, Computer Science, or Computer Science and Engineering cannot minor in Informatics. Students who are considering a major in Informatics must complete the Informatics courses with a letter grade.

Graduate Concentrations

For graduate concentrations in Informatics, see page 351.

Courses in Informatics

Non-majors may also take lower-division Informatics courses to fulfill General Education requirements if they have met the prerequisites.

LOWER-DIVISION

41 Informatics Core Course I (6). Fundamental concepts of computer software design and construction. Data, algorithms, functions, and abstractions. Overview of computer systems: data representation, architectural components, operating systems, networks. Introduction to information systems: parties involved, architectural alternatives, usability, organizational and social concerns. May not be taken for credit after ICS 22/CSE22. (II or V; IX)

42 Informatics Core Course II (6). Alternative data structure implementations; analysis of time and space efficiency. Object-oriented programming concepts and techniques: classes, objects, inheritance, interfaces. Formal languages and automata. Problem modeling and design tradeoffs. Prerequisite: Informatics 41 with a grade of C or better. Only one course from Informatics 42, ICS 22/CSE22, or ICS H22 may be taken for credit. (II or V)

43 Informatics Core Course III (6). Concepts, methods, and current practice of software engineering. Large-scale software production, software life cycle models, principles and techniques for each stage of development. Laboratory project applying these concepts. Prerequisite: Informatics 42 with a grade of C or better. Informatics 43 and ICS 52 may not both be taken for credit.

44 Seminar in Informatics Research Topics (2). Introduction to current research topics in Informatics. Various faculty members present current research and relate it to the course content of the Informatics degree program.

45 Patterns of Software Construction (4). Building software applications; reusing and integrating components; designing for reuse. Effective use of libraries and APIs, file and network I/O, creation of user interfaces. Prerequisite: Informatics 42 or ICS 22/CSE22 or ICS H22 with a grade of C or better. (V)

UPPER-DIVISION

101 Concepts in Programming Languages I (4). 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. Prerequisites: Informatics 43 with a grade of C or better; or ICS 23/CSE23/ICS H23 with a grade of C or better and either ICS 51 or CSE31/EECS31 with a grade of C or better. Same as CS 141/CSE141.

102 Concepts of Programming Languages II (4). 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: Informatics 101/CS 141/CSE141 with a grade of C or better.

111 Software Tools and Methods (4). Concepts and techniques of constructing software in a systematic fashion, including detailed design techniques, specifications, programming methods, quality-inducing procedures, development tools, team techniques, testing, estimation, and performance improvement. Laboratory work involves exercises to illustrate important concepts, methods, and tools. Prerequisite: Informatics 43 or ICS 52 or CSE90 with a grade of C or better. Same as CSE121.

113 Requirements Analysis and Engineering (4). 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. Prerequisite: Informatics 43 or ICS 52 with a grade of C or better. Recommended: Philosophy 29.

115 Software Testing, Analysis, and Quality Assurance (4). 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. Prerequisites: ICS 6B/Mathematics 6B with a grade of C or better, and either Informatics 43 or ICS 52 with a grade of C or better. Recommended: Philosophy 29.

117 Project in Software System Design (4). 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. Prerequisites: ICS 52 with a grade of C or better and upper-division standing. Formerly ICS 125.

118A-B Comprehensive Project in Software System Evolution (4). Provides students with an industrial-like software development experience. Students undergo the vicissitudes of developing a large-scale software system from several points of view and specify, design, construct, test, document, and evolve a complete software system. Students must enroll in both quarters. In-Progress grade assigned for Informatics 118A; final grades assigned after completion of 118B. Prerequisites: ICS 51 with a grade of C or better; Informatics 101/CS 141/CSE141 and Informatics 111/CSE121; Mathematics 2A-B and Statistics 67/Mathematics 67. Formerly ICS 126A-B.

119 Advanced Project in Software Engineering (4). Students work in teams to specify, design, construct, test, and document a complete software system in a specialized application domain using application/domain-specific techniques. Each offering's topic is announced the preceding spring. Prerequisites: Informatics 117 or 118A with a grade of C or better; Mathematics 2C or 2J or Statistics 67/Mathematics 67. Formerly ICS 127.

121 Software Design I (4). 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: Informatics 102 with a grade of C or better.

122 Software Design II (4). 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: Informatics 121.

123 Software Architectures, Distributed Systems, and Interoperability (4). 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. Prerequisites: Informatics 122 or the following: ICS 51 with a grade of C or better; Informatics 101/CS 141/CSE141 and Informatics 111/CSE121; Mathematics 2A-B and Statistics 67/Mathematics 67.

125 Computer Game Development (4). Introduction to the principles of interactive two- and three-dimensional 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. Prerequisites: either CS 112, CS 171, Informatics 122, Studio Art 135, or consent of instructor. Same as CS 113.

131 Human Computer Interaction (4). Presents 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. Prerequisites: one course (with a grade of C or better) selected from Informatics 42, ICS 10A, ICS 21/CSE21/ICS H21, Engineering ENGR10, CEE10, EECS10, MAE10, or equivalent.

132 Project in Human-Computer Interaction and User Interfaces (4). The goal of this project course is to prepare students to develop and evaluate user interfaces to software systems through a one-quarter project. Prerequisites: Informatics 131 and Informatics 101/CS 141/CSE141 and Informatics 111/CSE121.

133 User Interaction Software (4). 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. Strategies for evaluation of user interfaces. Prerequisite: Informatics 45 or ICS 23/CSE23.

134 Project in User Interaction Software (4). 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. Prerequisites: Informatics 131 and 133.

141 Information Retrieval (4). An introduction to information retrieval including indexing, retrieval, classifying, and clustering text and multimedia documents. Prerequisites: ICS 23/CSE23/ICS H23 or Informatics 43; Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67. Same as CS 121.

143 Information Visualization (4). 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: Informatics 131 or Informatics 43 or ICS 52.

148 Project in Ubiquitous Computing (4). 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. Prerequisite: Informatics 45 or ICS 23/CSE23.

151 Project Management (4). 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. Prerequisites: Informatics 111/CSE121 and Informatics 161.

153 Computer-Supported Cooperative Work (4). 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. Prerequisites: Informatics 43 or ICS 52 with a grade of C or better; or Informatics 161.

161 Social Analysis of Computerization (4). 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, systems risks. Prerequisites: one course (with a grade of C or better) selected from Informatics 43, ICS 10A, ICS 21/CSE21/ICS H21, Engineering ENGR10, or equivalent; satisfactory completion of the lower-division writing requirement.

162 Organizational Information Systems (4). 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. Prerequisites: Informatics 161 and satisfactory completion of the lower-division writing requirement.

163 Project in the Social and Organizational Impacts of Computing (4). 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: Informatics 162 .

165 Technology and Literacy (4). Examines relationships of new digital media to literacy in home and school environments. Topics include blogs, wikis, fan fiction, social network sites, online research, video games, instant messaging, e-mail, digital imagery, and multimedia production in connection with learning and literacy. Same as Education 139.

171 Introduction to Medical Informatics (4). 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.

190 Special Topics in Informatics (4). May be repeated for credit if title or topic varies. Prerequisites vary.

191A-B-C Senior Design Project (4-4-4). 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. In-progress grading. Informatics 191A-B-C must be taken in the same academic year. Prerequisites: Informatics 123, 132, 151, 163; CS 122A/EECS116; senior standing.

H198 Honors Research (4). Directed independent research in Informatics for honors students. Prerequisites: satisfactory completion of the lower-division writing requirement; participation in the Bren School of ICS Honors Program or the Campuswide Honors Program.

199 Individual Study (2 to 5)

GRADUATE

201 Research Methodology for Informatics (4). 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.

203 Qualitative Research Methods in Information Systems (4). 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: Informatics 251 or 261. Formerly ICS 235A.

205 Quantitative Research Methods in Information Systems (4). 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. Prerequisites: basic knowledge of elementary statistics; Informatics 251 or 261. Formerly ICS 235B.

207 Descriptive Multivariate Statistics I (4). Mathematical tools to organize and illuminate the multivariate methods. Multiple regression analysis. Multi-dimensional scaling and cluster analysis. Statistical computing via MDS(x), DMDP, and SPSS. Students must enroll in the laboratory section which meets on Wednesdays. Satisfactory/Unsatisfactory grading only. Prerequisite: Social Science 100A-B-C or equivalent. Same as Social Science 201A. Formerly ICS 238A.

209S Seminar in Informatics (2). Current research and research trends in Informatics. Forum for presentation and criticism by students of research work in progress. May be repeated for credit. Formerly ICS 229.

211 Software Engineering (4). 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. Formerly ICS 221.

213 Formal Specification and Modeling (4). Examination of formal specification and modeling techniques, including algebraic, scenario-based, model-based, state-based, temporal and other logics, along with their related uses in software development. Formerly ICS 222.

215 Software Analysis and Testing (4). Studies techniques for developing confidence in software from traditional testing schemes to integrated, multitechnique analytic approaches. Considers strengths and weaknesses and explores opportunities for synergistic technique application. Emphasis is on approaches integrated into the software process. Formerly ICS 224.

217 Software Processes (4). Explores vehicles for modeling, coding, and analyzing software processes. Considers integration of software process programming approaches with traditional management issues. Explores the use of software process execution as a vehicle for effective integration of tools into environments. Formerly ICS 225.

219 Software Environments (4). Study of the requirements, concepts, and architectures of comprehensive, integrated, software development and maintenance environments. Major topics include process support, object management, communication, interoperability, measurement, analysis, and user interfaces in the environment context. Formerly ICS 228.

221 Software Architecture (4). 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. Formerly ICS 223.

223 Applied Software Design Techniques (4). Study of concepts, representations, techniques, and case studies in structuring software systems, with an emphasis on design considerations. Topics include static and dynamic system structure, data models, abstractions, naming, protocols and application programmer interfaces. Formerly ICS 226.

231 Human-Computer Interaction (4). The design and evaluation of interfaces to computer systems and applications with special attention to their fit to human cognitive capabilities and organizational practices. Includes coverage of hypermedia, groupware, and other rapidly emerging developments. Formerly ICS 205.

233 Knowledge-Based User Interfaces (4). Concepts related to the development of interactive software systems with a focus on knowledge-based tools and human-centered design. Topics span the fields of human-computer interaction, software engineering, and knowledge representation. Prerequisite: CS 171 or equivalent. Formerly ICS 206.

235 Advanced User Interface Architecture (4). Architectural concerns in advanced interactive systems. The design of current and emerging platforms for novel interactive systems. Paradigms such as constraint-based programming, multimodal interaction, and perceptual user interfaces for individual, distributed, and ubiquitous applications. Formerly ICS 227.

241 Introduction to Ubiquitous Computing (4). 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 CS 248A. Formerly ICS 203A.

242 Ubiquitous Computing and Interaction (4). 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. Prerequisites: Informatics 231 and 241. Same as CS 248B. Formerly ICS 203B.

244 Introduction to Embedded and Ubiquitous Systems (4). 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. Prerequisites: B.S. degree in computer science; or ICS 51, CS 152; Mathematics 3A or 6G or ICS 6D/Mathematics 6D; CS 161. Same as CS 244.

251 Computer-Supported Cooperative Work (4). 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. Formerly ICS 233.

261 Social Analysis of Computing (4). 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. Formerly ICS 230.

263 Computerization, Work, and Organizations (4). 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: Informatics 251 or 261. Formerly ICS 234A.

265 Theories of Computerization and Information Systems (4). 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: Informatics 251 or 261. Formerly ICS 234B.

267 Computing and Cyberspace (4). Selected topics in Internet-level computerization and systems, including electronic communities, distributed information services, electronic commerce, and digital libraries. Surveys systems and architectures. Theories of social interaction, computer-mediated communication, and social-technical system design. Examines social studies of cyberspace use and impacts. Prerequisite: Informatics 251 or 261. Formerly ICS 234C.

269 Computer Law (4). The American legal system and its provisions affecting computer systems, computer networks, and information processing. Intellectual property, contracts, privacy, liability for malfunction, computer crime, constitutional issues, transborder data flow, computer-based evidence, and litigation. Prerequisite: graduate standing or consent of instructor. Formerly Informatics 264.

290 Research Seminar (2). 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. Satisfactory/Unsatisfactory only. May be repeated for credit as topics vary.

295 Special Topics in Informatics (4). May be repeated for credit as topics vary.

298 Thesis Supervision (2 to 12). Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.

299 Individual Study (2 to 12). Individual research or investigation under the direction of an individual faculty member.