Courses in Information and Computer Science
(Schedule of Classes designation: I&C Sci)
LOWER-DIVISION
3 Internet Technologies and their Social Impact (4). 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)
4 Human Factors for the Web (4). 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. May not be taken for credit after Informatics 131. (II)
5 Environmental Issues in Information Technology (4). Explores the relationship between recent developments in information technology and current global environmental issues. Potential topics include ecoinformatics, e-waste, technological life cycle assessment, and online community building. Activities involve reading, writing, discussion, and a final project. (II)
6B Boolean Algebra and Logic (4). Relations and their properties; Boolean algebras, formal languages; finite automata. Prerequisite: high school mathematics through trigonometry. (Vb)
6D Discrete Mathematics for Computer Science (4). 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: high school mathematics through trigonometry. (Vb)
6N Computational Linear Algebra (4). Matrices and linear transformations, systems of linear equations, determinants, linear vector spaces, eigenvalues and eigenvectors, orthogonal matrices, diagonalization, and least squares. Topics will be taught primarily from an algorithmic perspective, including computational solutions, applications, and numerical error analysis. Only one course from Information and Computer Science 6N, Mathematics 3A, and Mathematics 6G may be taken for credit. (II, Vb)
7 Introducing Modern Computational Tools (4). A unified look at a spectrum of modern tools for building, solving, and analyzing simple computational models (deterministic and random) in diverse subject areas. Tools include those for numeric/symbolic computation, and those for acquiring, organizing, translating, processing, and displaying information. Formerly ICS 6. (Va)
8 Practical Computer Security (4). Principles of practical computer security to enable students to defend themselves against malicious threats. Firewalls, anti-virus, secure setup of a wireless access point. Cryptography basics and its application. Embedded devices and related security issues. (II)
10 How Computers Work (4). 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. May not be taken for credit after ICS 51, ICS 52, ICS 105, or Informatics 43. (II)
11 The Internet and Public Policy (4). 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 Economics 11. (II or III)
21 Introduction to Computer Science I (6). Introduces fundamental concepts related to computer software design and construction. Develops initial design and programming skills using a high-level language. Fundamental concepts of control structures, data structures, and object-oriented programming. Same as CSE21. Only one course from ICS 21/CSE21, ICS H21, ICS 31/CSE41, EECS 10, EECS 12, and MAE10 may be taken for credit. May not be taken for credit after Informatics 42. (II, Vb)
H21 Honors Introduction to Computer Science I (6). Introduces fundamental concepts of computer software design and construction. Develops initial design and programming skills using a high-level language. Fundamental concepts of control structures, data structures, functional and object-oriented programming. Introduces topics in computer organization and social impact of technology. Prerequisite: enrollment open to ICS, CSE, and Computer Science majors in the Campuswide Honors Program or by consent of the Bren School of ICS. Only one course from ICS H21, ICS 21/CSE21, ICS 31/CSE41, EECS10, EECS12, or ENGR10 may be taken for credit. May not be taken for credit after Informatics 42. (II, Vb)
22 Introduction to Computer Science II (6). Abstract behavior of classic data structures (stacks, queues, sorted and unsorted maps), alternative implementations, analysis of time and space efficiency. Recursion. Object-oriented and functional programming. Prerequisite: ICS 21/CSE21 or ICS H21 with a grade of C or better. Same as CSE22. Only one course from ICS 22/CSE22, ICS H22, ICS 32/CSE42, ICS 33/CSE43, EECS10, EECS12, MAE10, or Informatics 42 may be taken for credit. (II, Vb)
H22 Honors Introduction to Computer Science II (6). Abstract behavior of classic data structures (stacks, queues, sorted and unsorted maps), alternative implementations. Recursion. Mathematical analysis of time and space efficiency, program analysis and correctness, system design techniques, programming paradigms. Prerequisite: ICS H21 with a grade of B- or better or ICS 21/CSE21 with a grade of A or better. Only one course from ICS H22, ICS 22/CSE22, ICS 32/CSE42, ICS 33/CSE43, or Informatics 42 may be taken for credit. (II, Vb)
H23 Honors Introduction to Computer Science III (4). Builds on ICS H22 with respect to mathematical tools and analysis. Focuses on fundamental algorithms in computer science, basic data structures for primary and secondary memory, storage allocation and management techniques, data description, and design techniques. Prerequisite: ICS H22 with a grade of B- or better or ICS 22/CSE22 with a grade of A or better, or Informatics 42 with a grade of A or better. ICS H23 and ICS 46/CSE46 may not both be taken for credit. (Vb)
31 Introduction to Programming (4). 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. Same as CSE41. Only one course from ICS 21/CSE21, ICS H21, ICS 31/CSE41, EECS10, EECS12, ENGR 10, and MAE10 may be taken for credit. (II, Vb)
32 Programming with Software Libraries (4). Construction of programs for problems and computing environments more varied than in ICS 31. Using library modules for applications such as graphics, sound, GUI, database, Web, and network programming. Language features beyond those in ICS 31 are introduced as needed. Prerequisite: ICS 31/CSE41 with a grade of C or better. Same as CSE42. Only one course from ICS 32/CSE42, ICS 22/CSE22, ICS H22, or Informatics 42 may be taken for credit. (II; Va or Vb)
33 Intermediate Programming (4). 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: ICS 32/CSE42 with a grade of C or better. Same as CSE43. Only one course from ICS 33/CSE43, ICS 22/CSE22, ICS H22, or Informatics 42 may be taken for credit. (II, Vb)
45J Programming in Java as a Second Language (4). 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: ICS 33/CSE43 with a grade of C or better, or consent of instructor. ICS 45J may not be taken for credit after ICS 22/CSE22, ICS 23/CSE23, or Informatics 45.
46 Data Structure Implementation and Analysis (4). Focuses on implementation and mathematical analysis of fundamental data structures and algorithms. Covers storage allocation and memory management techniques. Prerequisite: ICS 22/CSE22 or ICS H22 with a grade of C or better, or Informatics 42 with a grade of C or better, or EECS40. Same as CSE46. ICS 46/CSE46 and ICS H23 may not both be taken for credit. Formerly ICS 23. (Vb)
51 Introductory Computer Organization (6). Course may be offered online. Multilevel view of system hardware and software. Operation and interconnection of hardware elements. Instruction sets and addressing modes. Virtual memory and operating systems. Laboratory work using low-level programming languages. Prerequisites: one of ICS 21/CSE21, ICS 31/CSE41, or Informatics 42, with a grade of C or better; ICS 6B. (II)
52 Introduction to Software Engineering (6). Introduction to the concepts, methods, and current practice of software engineering. The study of large-scale software production; software life cycle models as an organizing structure; principles and techniques appropriate for each stage of production. Laboratory work involves a project illustrating these elements. Prerequisite: ICS 23 with a grade of C or better. Only one course from ICS 52, ICS 105, and Informatics 43 may be taken for credit.
53 Principles in System Design (4). Principles and practice of engineering of computer software and hardware systems. Topics include techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; coordination of parallel activities; security and encryption; and performance optimizations. Corequisite: ICS 53L. Prerequisite: ICS 51.
53L Principles in System Design Laboratory (2). Laboratory to accompany ICS 53. Corequisite: ICS 53. Prerequisite: ICS 51.
60 Computer Games and Society (4). 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. ICS 60 and University Studies 12A-B-C may not both be taken for credit. (III)
61 Game Systems and Design (4). Principles and usage of game design elements. Introduction to technologies that support modern computer games. Students design, implement, and critique several small games. (II)
62 Game Technologies and Interactive Media (4). Technologies for interactive media and game design. Web-based software systems, virtual world platforms, and game engines. Emphasis on conceptual and architectural aspects of these technologies. Prerequisite: one of ICS 21/CSE21, ICS 31/CSE41, or Informatics 42, with a grade of C or better.
65 Advanced Programming with C++ (4). An introduction to the C++ language for experienced Java programmers. Emphasis on object-oriented design and using standard libraries. Prerequisite: ICS 23 or Informatics 45 or one year of Java programming.
77A, B, C, D Topics in Mathematics and Computation in the Digital Age. Lecture, three hours; laboratory, two hours. Corequisite: Mathematics 2J or 6G, or consent of instructor. Prerequisites: Mathematics 2A-B; ICS 21/CSE21 or Informatics 41 or consent of instructor. First- and second-year students only.
77A Introduction to Signal Processing (4). Signals in MATLAB; blurring, mixing, filtering; elements of linear algebra, statistics, optimization; blind matrix inversion; de-correlation method, stochastic gradient descent method, applications to sounds and images. Same as Mathematics 77A. (II, Va)
77B Introduction to Collaborative Filtering (4). Basic concepts of collaborative filtering; clustering; matrix factorization and principal components analysis; regression; classification; naive Bayes classifier, decision trees, Perceptron (neural networks). Same as Mathematics 77B. (II, Va)
77C Introduction to Image Processing (4). Image de-noising, de-blurring, low pass filtering; image segmention and classification; sparse representation; visualization. Same as Mathematics 77C. (II, Va)
77D Introduction to Game Simulation and Analysis (4). Combinatorial Game Theorygame classification, tree graphs, strategy analysis, Sprague Grundy functions, Bouton's Theorem; Zero-Sum and General-Sum Game Theorypayoff matrices, Minimax Theorem, Nash equilibrium; machine learningsearch algorithms. Same as Mathematics 77D. (II, Va)
80 Special Topics in Information and Computer Science (2 to 4). May be repeated for credit if title or topic varies.
90 New Students Seminar (1). Introduces students to the Donald Bren School of Information and Computer Sciences. Activities focus 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. Pass/Not Pass only.
UPPER-DIVISION
105 Digital Information Systems (4). 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. Prerequisite: one of the following with a grade of C or better: ICS 10, ICS 21/CSE21, ICS H21, Informatics 41. Only one course from ICS 52, ICS 105, and Informatics 43 may be taken for credit.
139 Critical Writing on Information Technology (4). 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; upper-division standing.
160 Graphics Processors and Game Platforms (4). Principles of computer architecture emphasizing hardware used with general purpose processor to support high-performance computer games and graphics engines. Corequisite: CS 112. Prerequisite: ICS 51.
161 Game Engine Lab (4). The use of an industry standard game engine in the design and implementation of a new computer game. Principles of game engine design. Students work on a team to design, implement, and evaluate a new computer game based on an engine. Prerequisites: ICS 65 and ICS 160.
162 Modeling and World Building (4). 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. Prerequisite: ICS 161.
163 Mobile and Ubiquitous Games (4). 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: ICS 161.
166 Game Design (4). 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: ICS 161.
167 Multiplayer Game Systems (4). 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: ICS 161.
168 Multiplayer Game Project (4). 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. Prerequisites: ICS 52 or Informatics 43 with a grade of C or better; ICS 167.
169A-B Capstone Game Project I, II (4-4). 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. Prerequisite: ICS 168. In-progress grading for ICS 169A.
192 Industrial or Public Sector Field Study (2). 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. Prerequisite: approval of the ICS Associate Dean of Student Affairs. Pass/Not Pass only. May be taken for credit two times.
193 Tutoring in ICS (2). Principles and practice of providing technical assistance to novice learners in information and computer sciences. Enrollment limited to participants in the ICS Peer Tutoring Program. Prerequisite: consent of instructor. May be taken for a total of 18 units, of which the first 10 may be taken for a letter grade and the remaining eight units must be taken Pass/Not Pass only. No more than 10 units earned in tutoring courses may be counted toward the 180 units required for graduation. Satisfies no degree requirement other than contribution to the 180-unit total.
H197 Honors Seminar (2). An overview of computer science and selected recent trends in research. Students attend talks on current faculty research, with opportunities for discussion. Prerequisite: participation in the Bren School of ICS Honors Program or Campuswide Honors Program. Pass/Not Pass only.
GRADUATE
398A Teaching Assistant Training Seminar (2). 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. Satisfactory/Unsatisfactory only.
398B Advanced Teaching Assistant Seminar (4). Teaching computer science at the university level, emphasizing issues in teaching an entire course. Course organization, designing examinations and projects, grading, motivating students. Participants will begin to assemble teaching portfolios. Satisfactory/Unsatisfactory only. Prerequisite: ICS 398A or consent of instructor.
399 University Teaching (4). Involves on-the-job experience for Teaching Assistants. Limited to and required of Teaching Assistants.