My Courses at UCI





22 Introduction to Computer Science II
(6) W, S. Second of a three-quarter introductory sequence. Abstract behavior of classic data structures (stacks, queues, priority queues, tables, trees), alternative implementations, analysis of time and space efficiency. Recursion. Object-oriented and functional programming. Models of computation. Corequisite or prerequisite: ICS 6A or Mathematics 6A. Prerequisite: ICS 21 with a grade of C or better. (V)

23 Fundamental Data Structures
(4) F, S. Focuses on implementation and mathematical analysis of fundamental data structures and algorithms. Covers storage allocation and memory management techniques. Prerequisites: ICS 22 with a grade of C or better or Engineering ECE40; Mathematics 6A or ICS 6A. Same as ICS 23E. Only one course from ICS 23, 23E, and H23 may be taken for credit. (V)

51 Introductory Computer Organization
(6) F, S. Multilevel view of system hardware and software. Operation and interconnection of hardware elements. Instruction sets and addressing modes. Virtual memory and opertating systems. Laboratory work using low-level programming languages. Prerequisites: ICS 21 with a grade of C or better; Mathematics 6B.

52 Introduction to Software Engineering
(6) F, W. 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.

121 Software Tools and Methods
(4) F, S. 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. Prerequisites: ICS 52 with a grade of C or better; Mathematics 6A or ICS 6A; Mathematics 6B; Mathematics 6C or 3A; satisfactory completion of the lower-division writing requirement.

125 Project in System Design
(4) F, S. Specification, design, construction, testing, and documentation of a complete software system using concepts learned in ICS 52, 121, and 141. 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; ICS 121 and 141; Mathematics 2A-B-C.

131 Social Analysis of Computerization
(4) F, W, S. 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 ICS 1A, Engineering 10, Engineering ECE11, ICS 21, or equivalent; upper-division standing; satisfactory completion of the lower-division writing requirement.

139 Technical Writing and Communication Skills
(4) F, W, S. Study and practice of critical and technical writing as it applies to the field of computer science. Each student writes essays of varying lengths, totaling at least 4,000 words. Prerequisite: completion of lower-division writing requirement; upper-division standing; Information and Computer Science majors only.

141 Programming Languages
(4) F, W, S. 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: ICS 23 and ICS 51 with grades of C or better.

142 Compilers and Interpreters
(4) F. Introduction to the theory of programming language processors covering lexical analysis, syntax analysis, semantic analysis, intermediate representations, code generation, optimization, interpretation, and run-time support. Prerequisite: ICS 141. Prerequisite for Computer Engineering majors only: ECE40.

151 Digital Logic Design
(4) F, W. Boolean algebra. Design/analysis of combinational and sequential systems using SSI/MSI/LSI modules. Number systems. Error detecting and correction codes. Arithmetic algorithms. Hardware/firmware implementation of algorithms. Prerequisites: ICS 23 and 51 with grades of C or better; Mathematics 6A or ICS 6A; Mathematics 6B.

153 Computer Networks
(4) F. An introductory course on computer network architectures. Layering approach of communication protocols is introduced, and the function of each layer is explained. Various examples are shown from long-haul networks and local area networks to B-ISDN and high speed networks. Prerequisites: ICS 23 and 51 with grades of C or better; Mathematics 6A or ICS 6A; Mathematics 6B; Mathematics 6C or 3A.

156 Advanced Computer Networks
(4) S. Fundamental principles in computer networks are applied to obtain practical experience and skills necessary for designing and implementing computer networks, protocols, and network applications. Various network design techniques, simulation techniques, and UNIX network programming are covered. Prerequisite: ICS 153 or equivalent, or consent of instructor.

161 Design and Analysis of Algorithms
(4) F, W. Time and space complexity of algorithms. Models of computation, techniques for efficient algorithm design, effect of data structure choice on efficiency of an algorithm. Fast algorithms for problems such as sorting, set manipulation, graph problems, matrix multiplication, Fourier transforms, and pattern matching. NP-complete problems. Prerequisites: ICS 23 and 51 with grades of C or better; Mathematics 6A or ICS 6A; Mathematics 6B; Mathematics 6C or 3A; Mathematics 2A-B-C; satisfactory completion of the lower-division writing requirement. Prerequisite for Computer Engineering majors only: ICS 23E.

171 Introduction to Artificial Intelligence
(4) F, W, S. Different means of representing knowledge and uses of representations in heuristic problem solving. Representations considered include predicate logic, semantic nets, procedural representations, natural language grammars, and search trees. Prerequisites: ICS 52 with a grade of C or better; Mathematics 2A-B-C.


Click to home



Click E-mail me

You are visitor number Trac Nguyen's counterof this page