DEPARTMENT OF INFORMATICS
221 Computer Science
II Building; (949) 824-2901
David F. Redmiles, Department Chair
Graduate Program and Courses
Thomas Alspaugh: Software development, requirements engineering
Christopher Dobrian: Electronic music, composition
Paul Dourish: Human-computer interaction, computer-supported cooperative work
Magda El Zarki: Telecommunications, networks, wireless communication, video transmission
Julian Feldman: Management of computing resources; problems involved in managing the computer resources of an organization, including resource allocation and financing organizations; the teaching of programming, and development of techniques which will facilitate the learning of programming
Stephen Franklin: Computer- and network-based educational technology, IT resource management
Daniel Frost: Artificial intelligence, software engineering, computer graphics, teaching of programming
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
David G. Kay: Computer law, computer science education
K. H. (Kane) Kim: Distributed real-time computer systems, fault-tolerant computer systems, real-time learning systems
Alfred Kobsa: User modeling, human-computer interaction, artificial intelligence, cognitive science, interdisciplinary computer science
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
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
Robert Nideffer: Electronic intermedia, interface theory and design, technology and culture, contemporary social theory
Donald J. Patterson: Ubiquitous computing, pervasive computing, human-computer interaction, artificial intelligence, intelligent context for situated computing
Simon Penny: Robotic sculpture, interactive environments, electronic media, art practice history, and critical theory
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
Andre van der Hoek: Software engineering
Alladi Venkatesh: Social impacts of information technology, Internet and the New Economy, Smart Home technologies, children and multimedia
Mark Warschauer: Language, literacy, technology
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 Informatics in Biology and Medicine.
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
Within the overall discipline of information and computer science, the Informatics major is the most outward looking. Traditional computer science concerns itself primarily with the internal features, structure, and behavior of computer systems; the Informatics major focuses more on the relationship between what is inside the computer and what is outside. So, courses 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. As such, the Informatics major addresses the broad set of issues surrounding design, ranging from initial requirements gathering to estimating and measuring the impact of alternative solutionsall from a multidisciplinary perspective that includes computer science, information science, organizational science, social science, and cognitive science.
Courses in the degree program are carefully designed to 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 sponsoring the project. Students completing the major will be exceptionally suited for advanced careers in information technology or for further study at the graduate level. Specific careers include, but certainly 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, consultancy, and game companies.
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); admission criteria and course requirements are described on page 335.
More information is available online at http://www.ics.uci.edu/informatics/ugrad.
Freshmen Applicants: 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.
Students transferring into the major must satisfy the following requirements:
1. Completion of one year of college mathematics. Courses equivalent to ICS 6A/Mathematics 6A (discrete mathematics), Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67, and Philosophy 29 or Philosophy 30 or Mathematics 13 (symbolic logic) are preferred as this facilitates 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 computer science courses. The course work must contain at least one UC-transferable programming course involving the concepts of object-oriented programming in such languages as C++, Java, Smalltalk, or Eiffel, or functional programming in such languages as Scheme, Lisp, or ML. Programming-only courses in Basic, Fortran, Cobol, Pascal, or C are not acceptable. It is strongly recommended that students select UC-transferable courses that do not focus strictly on learning a programming language but instead focus on topics such as software design, software engineering, human-computer interaction, programming language concepts, data structures, and algorithms, if such courses are available.
Additional courses beyond the one UC-transferable programming course required for admission are strongly recommended. Transfer students must enter UCI with knowledge of Java since it is used in many of the lower-division Informatics requirements and serves as a foundation for upper-division programming-related courses.
Courses equivalent to Informatics 41, 42, 43 are strongly preferred, although courses equivalent to ICS 21, 22, 52 are acceptable as alternatives.
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 would also be 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 the ICS Student Affairs Office; telephone (949) 824-5156; e-mail: email@example.com.
REQUIREMENTS FOR THE BACHELOR'S DEGREE IN INFORMATICS
University Requirements: See pages 59-64.
A. Introductory courses: Informatics 41, 42, 43, 44.
B. ICS 23.
C. ICS 6A/Mathematics 6A, Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67, Philosophy 29 or 30 or Mathematics 13.
A. Intermediate Informatics courses: Informatics 101, 102, 111, 113, 115, 121, 131, 132.
B. CS 122A, CS 122B.
C. Advanced Informatics courses: Informatics 122, 123, 141, 143, 151, 153, 161, 162, 163, 191A, 191B, 191C.
Major and minor restrictions: See page 334.
Sample Program of Study
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. Alternatively put, Informatics designs solutions in context, and takes into account the social, cultural, and organizational settings in which computing and information technology will be used.
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.
COURSES IN INFORMATICS
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. (V)
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. (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.
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.
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 with a grade
of C or better or the following: ICS 52 or CSE90 with a grade of C or better; Mathematics
6A or ICS 6A; Mathematics 6B; Mathematics 6C or 3A; and satisfactory completion
of the lower-division writing requirement. Same as CSE121.
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 with a grade of C or better or the following: ICS 52 or CSE90 with a grade of C or better; Mathematics 6A or ICS 6A; Mathematics 6B; Mathematics 6C or 3A; and satisfactory completion of the lower-division writing requirement. 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 co-operative problem analysis, representation, and validation. Prerequisites: Informatics 111/CSE121; ICS 6A/Mathematics 6A; Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67.
115 Software Specification and Quality Engineering (4). Aims to prepare students to develop high-quality software through successful specification and quality engineering techniques. Students learn what high-quality means, how to plan for and achieve it, and how to measure it. Prerequisites: ICS 6A/Mathematics 6A; Statistics 7/Mathematics 7 or Statistics 67/Mathematics 67; either Mathematics 6B or 13 or Philosophy 29 or 30; Informatics 111/CSE121.
117 Project in Software System Design (4). Specification, design, construction, testing, and documentation of a complete software system using concepts learned in ICS 52, Informatics 101, and Informatics 111. Special emphasis on the need for and use of teamwork, careful planning, and other techniques for working with large systems. 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 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 software design principles, paradigms, tools, and techniques. Topics include alternative architectural styles, iterative refinement, design patterns, mapping design onto code, design tools, and design notations. Includes extensive practice in creating designs and study of existing designs. Prerequisite: Informatics 102 with a grade of C or better.
122 Software Design II (4). Introduction to advanced software design principles, paradigms, and techniques. Topics include large-scale design, software reuse, product-line architectures, design recovery, refactoring, application frameworks, real-time systems, design-for-context. Case studies of existing designs and extensive practice with real-world 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: CS 112 and Informatics 111/CSE121 or CS 161/CSE161 or CS 171; or Music 151; or Studio Art 106; 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.
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.
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 131 and 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 23/CSE23/ICS H23 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. Prerequisite: Informatics 161.
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 .
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. Corequisite: Informatics 151. Prerequisites: Informatics 123, 132, 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)