Computer Science
- Department Information
- Program Description
- Career Possibilities
- Features
- Preparation
- Major Requirements (B.S.)
- Options
- Other Degree Requirements
- Minor Requirements
- Undergraduate Courses
- Footnote
Department Information
Department of Mathematics and Computer Science
College of Science
Office: North Science 335
Phone: (510) 885-3414
E-mail: mathcs@csueastbay.edu
Website: http://www20.csueastbay.edu/csci/departments/math-cs/index.html
Student Service Center: North Science 337
Phone: (510) 885-4011
Professors Emeriti
Edward A. Billard, Ph.D. University of California, San Diego
James S. Daley, Ph.D. University of California, Berkeley
Edna E. Reiter, Ph.D. University of Cincinnati
Associate Professors Emeriti
Dan Jurca, Ph.D. Northwestern University
Farzan Roohparvar, Ph.D. Iowa State University
Professors
Kevin A. Brown, Ph.D. University of South Carolina
Kevin E. Callahan, Ph.D. University of California, San Diego
Leann Christianson, Ph.D. University of South Carolina
James S. Daley, Ph.D. University of California, Berkeley
Julie S. Glass, Ph.D. University of California, Santa Cruz
Lynne L. Grewe, Ph.D. Purdue University
Kathleen Hann, Ph.D. University of California, Davis
C. Matthew Johnson (Chair), Ph.D. College of William and Mary
Gary E. Lippman, Ph.D. University of California, Riverside
Michael K. Mahoney, Ph.D. University of California, Santa Barbara
Massoud Malek, Ph.D. University of Houston
Istvan Simon, Ph.D. Stanford University
Stuart Smith, Ph.D. University of California, Berkeley
William Thibault, Ph.D. Georgia Institute of Technology
Donald L. Wolitzer, Ph.D. Northeastern University
Ytha Y. Yu, Ph.D. University of California, Berkeley
Associate Professors
Levent Ertaul, Ph.D. University of Sussex (United Kingdom)
Chung-Hsing Ou Yang, Ph.D. University of California, Berkeley
David Yang, Ph.D. Columbia University
Shirley Yap, Ph.D. University of Pennsylvania
Assistant Professors
Roger W. Doering, Ph.D. University of California, Berkeley
Julia Olkin, Ph.D. Rice University
Ellen Veomett, Ph.D. University of Michigan
Program Description
Programs in Computer Science at Cal State East Bay are designed to prepare students for employment or for advanced study in computer science. The student's course of study will provide a solid foundation of theoretical knowledge as well as experience with practical applications in hardware and software.
Computer Science is the study of computation and of methods for addressing, processing, storing, and transmitting information. It encompasses a broad perspective that includes what a computer is, its uses and applications, and theoretical approaches to what can be computed. The core curriculum in Computer Science, involving a blend of theory and practice, offers opportunities for problem solving in many areas and provides experience with a variety of computers, computer languages, and software packages. A typical student's experience can include scientific programming, language design and implementation, file handling and database design, data communication and networking, artificial intelligence, hardware design, and graphic implementations ranging from interface design to artistic presentations.
A strong mathematical background is important in Computer Science. High school students who are interested in computer science should take as much mathematics as possible, particularly algebra, trigonometry, and precalculus. Community college students who are planning to transfer to Cal State East Bay should take a two-course calculus sequence, linear algebra, discrete structures, a sequence of courses in some programming language (such as C, C++, Java), and a course in computer organization and assembly language.
Student Learning Outcomes
Students graduating with a B.S. in Computer Science from Cal State East Bay possess technical competence to:
- design and implement computer programs;
- use data structures in program design;
- know and use modern programming techniques; and
- use software engineering design principles.
Students possess a fundamental understanding of Computer Science theory including:
- mathematical problem solving skills;
- design and analysis of algorithms;
- understanding of computer architecture and operating system concepts;
- analysis of programming languages.
Students:
- are able to work effectively as team members;
- have an understanding of their professional and ethical responsibilities and appreciate the impact of computer science solutions in the societal context; and
- can communicate effectively, both in written and oral form.
Career Possibilities
- Computer Network Support Employee
- Computer Operations Manager
- Computer Sales Representative
- Customer Support Employee
- Database Applications Program Analyst or Designer
- Graphics Specialist
- Programmer or Administrator
- Programming Team Member, Specializing in Design, Testing, or Documentation
- Scientific Applications Programmer
- Software Engineer Systems Analyst
- Systems Manager or Programmer
- Technical Writer
- Teacher/Professor
Features
The University supports Computer Science with a variety of resources. Smart classrooms are equipped with at least one computer and projector. Several instructional classrooms also have student computers. Students may use computers in open-access labs; there is wireless access. Lab and classroom computers may be equipped with a variety of operating systems. Student dorm rooms are equipped high-speed Internet access.
The College of Science sponsors CompCore, a small scale parallel processing facility with facilities for immersive 3-D graphics, scientific modeling, remote access to scientific instruments, and other facilities for experimentation and research. In addition, some computer science faculty have small labs dedicated to research and to use by students in their classes.
Each year the department offers a number of scholarships covering a portion of fees for the subsequent year. Applications may be obtained from the department during Winter quarter.
A booklet containing sample schedules, as well as further information about the computer science major, is available in the Mathematics/Computer Science Student Service Center (North Science 337). This information may be obtained electronically at http://www.mcs.csueastbay.edu.
Preparation
For Advanced Placement course equivalencies, see Registration chapter.
Major Requirements (B.S.)
Many students pursue a double major in Mathematics and Computer Science, since a number of courses are common to both majors and can be double-counted. Another popular combination is a major in computer science and a minor in mathematics.
Please consult an advisor in your major department for clarification and interpretation of your major requirements. Computer Science majors may complete the following 84-unit program or may elect to complete a 92-unit option in Computer Engineering, Networking and Data Communications, or Software Engineering (see "Options" section). The B.S. degree requires a total of 180 units.
All Computer Science majors must complete each of the following courses in sections I, II, and III with a grade of "C" or better.
- Mathematics (20 units)
Five courses are required:- MATH 1304, 1305 Calculus I, II (8)
- MATH 2101 Elements of Linear Algebra (4)
- MATH 2150 Discrete Structures (4)
- STAT 3401 Introduction to Probability Theory I (4) or
- STAT 3502 Statistical Inference I (4) or
- STAT/ENGR 3601 Introductory Statistics and Probability for Science and Engineering (4). STAT/ENGR 3601 is recommended.
It should be noted that students may not enroll in any baccalaureate level mathematics or computer science class unless they have met the Entry Level Mathematics (ELM) requirement or are exempt from it. Information about the ELM is available from the Testing Office at (510) 885-3661. - Lower Division Computer Science (16 units)
Required courses:- CS 1160 Introduction to Computer Science I (4)
- CS 2360 Introduction to Computer Science II (4)
- CS 2370 Introduction to Computer Science III (4)
- CS 2430 Computer Organization and Assembly Language Programming (4)
Students who have completed a multi-quarter course in C, C++, Java, or Pascal at another college should consult the Mathematics/Computer Science Department; they may be able to substitute their previous coursework for CS 1160 and possibly CS 2360 and 2370. - Upper Division Computer Science: Required Courses (20 units)
- CS 3120 Programming Language Concepts (4)
- CS 3240 Data Structures and Algorithms (4)
- CS 3340 Introduction to Object Oriented Programming and Design (4)
- CS 3430 Computer Architecture (4)
- CS 4560 Operating Systems (4)
- Upper Division Computer Science: Concentration (16 units)
The selection of all elective Computer Science courses is important in giving the major a coherence, with depth in key areas. These electives must be chosen with the assistance and approval of a faculty advisor.
A student must take four of the following eight courses:- CS 3560 Introduction to Systems Programming (4)
- CS 3590 Data Communications and Networking (4)
- CS 4660 Database Architecture (4)
- CS 4110 Compiler Design (4)
- CS 4170 Theory of Automata (4)
- CS 4245 Analysis of Algorithms (4)
- CS 4310 Software Engineering I (4)
- MATH/CS 3750 Numerical Analysis I (4)
- Electives (12 units)
Any of the following courses may be used in meeting this requirement. However, at least 4 units (other than units from CS 3898) must be from courses with the CS prefix.- Any course(s) from IV not used in meeting the requirements in that category.
- Any upper division course in Computer Science except those used in meeting requirements III or IV. No more than 4 units of CS 4900, Independent Study, and no more than 4 units of CS 3898, Cooperative Education, may be applied to the Computer Science major requirements.
- Any graduate course in Computer Science (except CS 6000 and CS 6909).
- Any upper division course in the Department of Mathematics and Computer Science or the Department of Statistics that is applicable to the BS degree major in Mathematics.
- Any courses from the following list:
- PHIL 3002 Modern Logic (4)
- PHYS/ENGR 3280 Electronics (4)
- ENGR 3010 Electric Circuit Theory II (4)
Note: Students contemplating graduate study in Computer Science should consult with a faculty advisor early in their programs. They should be sure to include an adequate number of theory courses in their major and should have an extensive background in Mathematics.
Options
The major with one of the following three options consists of 92 units. In addition to the 20 units of mathematics courses (Section I), the 16 units of lower division computer science courses (Section II), and the 20 units of upper division computer science courses (Section III) required for a B.S. degree major in computer science, students choosing an option in Computer Engineering, Networking and Data Communications, or Software Engineering must complete an additional 36 units. See below.
- Computer Engineering (36 units)
The Option in Computer Engineering emphasizes the design of computer hardware and software and the close interaction between the two. It is an area of study with many issues, ranging from the design and development of large scale systems requiring an integration of hardware and software, to the design and deployment of special purpose devices used for control of physical processes. The option provides a foundation of knowledge for immediate application, but also provides a background for further study in the field.- Computer Engineering Concentration (24 units)
- CS 3432 Digital Design Lab (4)
- CS 3434 Microprocessor Lab (4)
- CS 3590 Data Communications and Networking (4)
- CS 4435 Computer Architecture II (4)
- CS 4432 VLSI Circuit Design (4)
- PHYS 2702 Heat, Sound, Electricity and Magnetism (4)
- Computer Engineering Electives (12 units)
Choice of three courses from the following:- CS 3560 Introduction to Systems Programming (4)
- CS 4310 Software Engineering I (4)
- CS 4590 Computer Networks (4)
- CS 4594 Broadband Networks and Communications (4)
- CS 4596 Wireless and Mobile Networking (4)
- CS 4840 Computer Graphics (4)
- Computer Engineering Concentration (24 units)
- Networking and Data Communications (36 units)
Data communication and networking comprise an important, broad subfield of computer science. The Networking and Data Communications Option provides a concentration in the study of electronic networks. It emphasizes the analysis, design, and management of software that controls electronic networks. This option will enhance students' chances for immediate employment in the area while also preparing them for a flexible long-term career.- Upper Division Computer Science: Concentration (16 units)
- CS 3560 Introduction to Systems Programming (4)
- Choice of three courses from the following:
- CS 4660 Database Architecture (4)
- CS 4110 Compiler Design (4)
- CS 4170 Theory of Automata (4)
- CS 4245 Analysis of Algorithms (4)
- CS 4310 Software Engineering I (4)
- MATH/CS 3750 Numerical Analysis I (4)
- Networking Concentration (8 units)
- CS 3590 Data Communications and Networking (4)
- CS 4590 Computer Networks (4)
- Networking and Data Communication Electives (12 units)
Three courses chosen from:- CS 3520 Web Site Development (4)
- CS 4525 Principles of Network Security (4)
- CS 4592 Network Operations and Administration (4)
- CS 4594 Broadband Networks and Communications (4)
- CS 4596 Wireless and Mobile Networking (4)
- Upper Division Computer Science: Concentration (16 units)
- Software Engineering (36 units)
Software engineering is an important subfield of computer science and is an area of intense activity, both in research and in applications. The Software Engineering Option emphasizes code development as an engineering science and gives students the understanding and skills necessary to participate in the systematic analysis and development of large, real-world software projects.- Upper Division Computer Science: Concentration (16 units)
Choice of four courses from the following:- CS 3560 Introduction to Systems Programming (4) (if not used in category (c))
- CS 3590 Data Communications and Networking (4)
- CS 4110 Compiler Design (4)
- CS 4170 Theory of Automata (4)
- CS 4245 Analysis of Algorithms (4)
- MATH/CS 3750 Numerical Analysis I (4)
- Software Engineering Concentration (12 units)
- CS 4310 Software Engineering I (4)
- CS 4311 Software Engineering II (4)
- CS 4320 Software Testing and Quality Assurance (4)
- Software Engineering Electives (8 units)
Choice of two courses from the following:- CS 3520 Web Site Development (4)
- CS 3560 Introduction to Systems Programming (4) (if not used in category (a))
- CS 4110 Compiler Design (4) (if not used in category (a))
- CS 4330 Building Secure Software (4)
- CS 4660 Database Architecture (4)
- CS 4835 Human-Computer Interaction (4)
- CS 4840 Computer Graphics (4)
- CS 4865 Graphical User Interface Programming Using a Rapid Application Development Tool (4)
- Upper Division Computer Science: Concentration (16 units)
Other Degree Requirements
In addition to major requirements, every student must also complete the University requirements for graduation which are described in the Baccalaureate Degree Requirements chapter in the front of this catalog. These include the General Education-Breadth requirements; the second composition (ENGL 1002) requirement; the cultural groups/women requirement; the performing arts/activities requirement; the U.S. history, U.S. Constitution, and California state and local government requirement; the University Writing Skills Requirement; and the residence, unit, and grade point average requirements.
Minor Requirements
Students majoring in other fields may wish to complete a coherent pattern of work in Computer Science or Software Development for the purpose of expanding their employment and educational opportunities.
Computer Science Minor (36 units)
- Lower Division Mathematics (8 units)
- MATH 1304 Calculus I (4)
- MATH 2150 Discrete Structures (4)
- Lower Division Computer Science (16 units)
- CS 1160 Introduction to Computer Science I (4)
- CS 2360 Introduction to Computer Science II (4)
- CS 2370 Introduction to Computer Science III (4)
- CS 2430 Computer Organization and Assembly Language Programming (4)
- Upper Division Computer Science (12 units)
- Two courses from the following list:
- CS 3120 Programming Language Concepts (4)
- CS 3240 Data Structures and Algorithms (4)
- CS 3430 Computer Architecture (4)
- CS 4560 Operating Systems (4)
- One upper division Computer Science elective.
This may be a third course from the list in (A) above or any course from category IV of the requirements for the major in Computer Science.
- Two courses from the following list:
Software Development Minor (36 units)
- Required Courses (28 units)
- CS 1160 Introduction to Computer Science I (4)
- CS 2360 Introduction to Computer Science II (4)
- CS 2370 Introduction to Computer Science III (4)
- MATH 1304 Calculus I (4)
- MATH 2150 Discrete Structures (4)
- CS 3240 1 Data Structures and Algorithms (4)
- CS 4310 Software Engineering I (4)
- Choice of two courses from the following (8 units):
- CS 3340 Introduction to Object-Oriented Programming and Design (4)
- CS 3520 Web Site Development (4)
- CS 3560 Introduction to Systems Programming (4)
- CS 4660 Database Architecture (4)
Mathematics Minor
Students majoring in Computer Science find it relatively easy to obtain a minor in Mathematics because there is a significant overlap in lower division requirements for the CS major/Math minor. To accomplish this, a student should take MATH 2304 and 3000, one of the courses from the list CS 4170, 4245, STAT 3401, 3502, plus one more upper division mathematics elective. See undergraduate Mathematics chapter for details.
Undergraduate Courses
Mathematics courses offered by the Department of Mathematics and Computer Science are fully described in the Undergraduate Mathematics section of this catalog. (Note: In order to enroll in any baccalaureate-level Mathematics or Computer Science course, students must satisfy the Entry-Level Mathematics (ELM) requirement.)
| Course Number | Course Information |
|---|---|
| 1020 | Introduction to Computers (4) Computers, their use and place in modern society. Computer organization and hardware, computer software. Introduction to use of the computer, operating system commands, word processing, database management, other applications, and computer programming. Internet and its use. Ethical and societal issues. No prior computer experience necessary; course recommended for students of any major who want to learn about computers and how to use them. Prerequisite: Satisfaction of the Entry Level Mathematics (ELM) requirement. Not open to students with credit for CIS 1270. |
| 1080 | Introduction to Media Computation (4) Introduction to computer programming through manipulation of digital media such as images and sound. Topics include: control structures, arrays, functions, and use of libraries. Intended for non-majors. Prerequisite: Satisfaction of the Entry Level Mathematics (ELM) requirement. |
| 1160 | Introduction to Computer Science I (4) An introduction to computers and computer science, problem solving, algorithms, and program design. Use of Interactive Development Environment (IDE's). Programming in C++. Topics include input and output, text files, control structures, functions, arrays. Students with no computer experience are encouraged to take CS 1020 as preparation for this course. Prerequisite: MATH 1300 or equivalent. |
| 2020 | Introduction to Web Design and Technology (4) Technology and design of web sites, systems and services. Human factors issues, computer-human interfaces design, web system design and development and testing; evaluation processes. Website development using multimedia, graphics, image, and animation tools. Topics from e-commerce solutions and networking fundamentals. Prerequisite: Satisfactory completion of ELM. Not open to students with credit for CS 3520. Not for credit in computer science major. |
| 2360 | Introduction to Computer Science II (4) Continuation of CS 1160. Focuses on algorithm development, structured program design, testing, and debugging. Topics include abstract data types, pointers, linked lists, recursion. Introduction to classes. Prerequisite: CS 1160. |
| 2370 | Introduction to Computer Science III (4) Continuation of CS 2360. Further development of programming and problem solving skills in Computer Science. Topics include elementary data structures (stacks and queues), object oriented design, and more on searching, sorting and other algorithms. Prerequisite: CS 2360. |
| 2430 | Computer Organization and Assembly Language Programming (4) Functional organization of digital computers and programming in machine and assembly language. Internal representation of data, binary arithmetic, machine instructions, addressing modes, subroutine linkage, macros. Introduction to assemblers, linkers, and loaders. Prerequisite: An introductory programming course. |
| 3120 | Programming Language Concepts (4) Survey and critical comparison of a variety of computer languages. Issues include syntax, semantics, control structures, data representation. Discussion of both design and implementation; of both imperative and declarative languages. Prerequisites: CS 2360 and 2430. |
| 3240 | Data Structures and Algorithms (4) Definition, design, implementation of abstract data structures, including hash tables, trees, graphs. Design, implementation, and analysis of algorithms for these data structures. Prerequisites: MATH 2150, CS 2370, CS 2430. |
| 3340 | Introduction to Object-Oriented Programming and Design (4) Programming in an object-oriented language, using object-oriented techniques and concepts. Classes, operator overloading, information hiding, inheritance, and polymorphism. Memory management. Parameterized classes. Exception handling. Object-oriented design of programs. Prerequisite: CS 3240 and knowledge of C or C++. |
| 3430 | Computer Architecture (4) Logical design of digital computers. Boolean algebra, combinational and sequential circuits, computer arithmetic, memories, integrated circuits, control processors, input/output. No electronics experience needed. Prerequisite: MATH 2150, CS 2430. Cross-listed with ENGR 3430. |
| 3432 | Digital Design Lab (4) Design assembly and test of combinational and sequential circuits. Digital systems design using computer-aided-design tools and programmable logic devices. Prerequisite: CS 3430. Cross Listed with ENGR 3432. Two hrs. lect., 6 hrs. lab. |
| 3434 | Microprocessor Lab (4) Microprocessor organization and operation; hardware/software interaction; memory, serial, and parallel I/O port interfacing; interrupt-handling. Prerequisite: CS 3430. Cross Listed with ENGR 3434. Three hrs. lect., 3 hrs. lab. |
| 3520 | Web Site Development (4) Web servers and browsers. HTML, images, audio and video files, indexer, forms, CGI scripts, Java programming, JavaScript. Prerequisite: CS 3240. |
| 3560 | Introduction to Systems Programming (4) Introduction to systems programming in a modern environment. Introduction to fundamental concepts of operating systems; analysis of a particular operating system (organization, interfaces, system calls, files, process control and communication, resource sharing). Shell and C programming. Development tools. Prerequisite: CS 2360. |
| 3590 | Data Communications and Networking (4) Fundamentals of data communications: media, transmission, encoding and processing, interfacing, error detection and handling, link control, multiplexing, circuit and packet switching. Introduction to network architecture and topology: local and wide area networks. Prerequisites: CS 2370 and CS 3430. |
| 3750 | Numerical Analysis I (4) (See MATH 3750 for course description) |
| 3752 | Introduction to Digital Signal Processing (4) Mathematical modeling of signals and systems. Continuous and discrete signals, with applications to audio, images, video, communications, and control. Frequency domain modeling and frequency response. Sampling of continuous-time signals. A simulation-based laboratory is part of the course. Prerequisites: MATH 1304, 2101; CS 1160. Cross-listed with ENGR 3752. Three hrs. lect., 3 hrs. lab. |
| 3860 | Computer Music Programming (4) Introduction to the concepts and software techniques of computer music. Students write programs to produce sounds, process sounds, and organize sounds into musical structures. Fundamentals of digital audio. Synthesis techniques. Reverberation and sound spatialization. Algorithmic composition. Computer languages for synthesis and scoring. The MIDI standard. Prerequisites: MATH 1300 and CS 1160. |
| 3898 | Cooperative Education (1-4) Supervised work experience in which student completes academic assignments integrated with off-campus paid or volunteer activities. Prerequisites: at least 2.0 GPA; departmental approval of activity; completion of lower division Computer Science major requirements, and upper division standing. A maximum of 4 units will be accepted toward the Computer Science major. May be repeated for credit, for a maximum of 8 units. CR/NC grading only. |
| 4020 | Computing and Social Responsibility (4) Social impact and ethical aspects of computing: responsibility of practicing professionals, effects on privacy, security, property rights of individuals and institutions, etc. Topics include system reliability, intellectual property, computer crime, attacks on computer systems, and societal dependence on computers. Prerequisites: CS 3240, or consent of instructor. |
| 4110 | Compiler Design (4) Design and construction of high-level language translators. Formal language theory, parsing algorithms, interpreting, code generation, optimization. Construction of a small compiler. Prerequisites: CS 3120, 3240. |
| 4170 | Theory of Automata (4) Formal models of automata, language, and computability and their relationships. Finite automata and regular languages. Push-down automata and context-free languages. Turing machines, recursive functions, algorithms and decidability. Prerequisites: MATH 2101, 2150, 2304. |
| 4245 | Analysis of Algorithms (4) Design, analysis and implementation of algorithms. Methods of algorithm design, including recursion, divide and conquer, dynamic programming, backtracking. Time and space complexity analyses in the best, worst, and average cases. NP-completeness; computationally hard problems. Applications from several areas of Computer Science. Prerequisites: MATH 2101, 2304, CS 3240. |
| 4310 | Software Engineering I (4) Concepts and issues in the development of large software projects. Systematic approaches to requirements, analysis, design, implementation, testing, and maintenance of high-quality software. Prerequisite: CS 3240. |
| 4311 | Software Engineering II (4) Continuation of Software Engineering I with emphasis on the object-oriented design to implementation stages of the life cycle. Design methodologies including the Unified Modeling Language, illustrated with example design patterns. Implementation in Java. Topics include standards, documentation, instrumentation, testing. Prerequisites: CS 3340, 4310. |
| 4320 | Software Testing and Quality Assurance (4) Concepts and issues in the testing and quality control of large software projects. Topics include white box, black box, unit, integration, and validation testing; quality assurance through planning, review, and use of software metrics. Prerequisite: CS 3240. |
| 4330 | Building Secure Software (4) Security and safety analysis in software design and development. Vulnerability detection and avoidance. Topics include authentication, principle of least privilege, buffer overflows, race conditions, time-of-check vs. time-of-use, trust management, access control, and other security relevant issues. Prerequisite: CS 3240. |
| 4432 | VLSI Circuit Design (4) Fundamental design techniques for VLSI (Very Large Scale Integrated) circuits. Theory of implementing complex integrated circuits on a microchip. Use of computer aided design tools. Prerequisites: CS 3430, 3432. Cross Listed with ENGR 4432. |
| 4435 | Computer Architecture II (4) Advanced computer organization and design. Topics chosen from among RISC architectures, computer arithmetic, pipelining, cache memory and parallel processors. Recommended prerequisite: knowledge of C programming. Prerequisite: CS 3430. Not open to students who have completed CS 4430. Cross-listed with ENGR 4435. (Formerly CS 4430.) |
| 4521 | Mobile and Topics in Web Programming (4) Current practices and trends in software design, development, and deployment of mobile and new web applications and systems. Topics include modern mobile device application development, web technologies, social application development, pervasive computing and semantic web. Prerequisite: CS 3520 or permission of instructor. |
| 4525 | Principles of Network Security (4) Computer network security fundamentals. Cryptography (Symmetric key algorithms and Public key algorithms). Authentication and identification, message integrity techniques. Access control and key management. Wireless security. Discussion of particular protocols, e.g., IPSEC, TLS, PGP, S/MIME, etc. Prerequisite: CS 3590. |
| 4526 | Principles of Wireless, Mobile, Grid and Pervasive Computing Security (4) Comprehensive new topics in Wireless, Mobile, Grid and Pervasive Computing which includes IEEE 802.11 Wireless Security, Security in Mobile Telecom Networks (GPRS, UMTS), security in MANET, VANET, WSN, Bluetooth, VoIP, Grid networks and Mobile Agents. Prerequisite: CS 4525. |
| 4560 | Operating Systems (4) Principles of operating system design and implementation. Concurrent processes, interprocess communication, job and process scheduling; deadlock. Issues in memory management (virtual memory, segmentation, paging) and auxiliary storage management (file systems, directory structuring, protection mechanisms). Performance issues. Case studies. Prerequisites: CS 3240 and CS 3430. |
| 4590 | Computer Networks (4) Computer network analysis, design, and implementation. A detailed study of the network, transport and application layers of the TCP/IP model. Specific emphasis on protocols, services, design issues and performance. Programming assignments using TCP/IP. Prerequisite: CS 3240, 3560 and 3590. |
| 4592 | Network Operations and Administration (4) Network operations, administration, and management. Management Information Base (MIB). Standards including SNMP, CMIP, ASN-1. Network management programming. Network Management of Ethernet and TCP/IP. Survey and applications of existing network management systems. Prerequisite: CS 3590. |
| 4594 | Broadband Networks and Communications (4) Principles of broadband networks and communications. Telephone system structure, signaling, services, and protocols. Circuit, packet and cell switching. br/oadband signaling and traffic management. Advanced switch technology. Case studies. Prerequisite: CS 3590. |
| 4596 | Wireless and Mobile Networking (4) Network protocols and mechanisms to support mobility, e.g., Mobile-IP, M-RSVP, proxies. Issues including routing, tunneling, security, and handoffs. Wireless communication standards including AMPS, IS-95, GSM, PCS, and satellite standards. Underlying technologies including multiplexing and coding. Prerequisite: CS 3590. |
| 4660 | Database Architecture (4) Relational, network, and hierarchical data models. Data description and data manipulation languages. Schemas, query processing, database system architecture. Integrity, concurrency, and security techniques. Distributed databases. Prerequisite: CS 3240. |
| 4665 | Database Operations and Administration (4) Topics in the operation and administration of databases, including database creation, account maintenance, data import and export, system backup, and performance tuning. Hands-on experience administering an Oracle database. Prerequisite: CS 4660. |
| 4810 | Artificial Intelligence (4) "Intelligent" computer programs and models of human intelligence. Game playing, robotics, computer vision, understanding natural language, knowledge engineering, computer learning. Prerequisite: CS 3240. |
| 4835 | Human-Computer Interaction (4) Human-centered software development and evaluation, human performance models, accommodating human diversity, principles of good design and good designers, introduction to usability testing. HCI aspects of multimedia systems, information systems, and collaboration and communication. Course work includes programming projects and fieldwork. Prerequisites: CS 3240 and either CS 3120 or 3340; or consent of instructor. Cross-listed with ENGR/PSYC 4835. |
| 4840 | Computer Graphics (4) Survey of computer graphics hardware, algorithms, techniques, and standards. Software development on color-mapped raster-scan computer graphics system. Prerequisites: MATH 2101, 2304 and CS 3240, 3430. |
| 4845 | Fuzzy Sets and Fuzzy Logic (4) Fuzzy set theory, fuzzy logic, approximate reasoning and relations between fuzzy set theory, probability theory, belief theory, and possibility theory. Fuzzy aggregation operators, fuzzy relations, and fuzzy clustering. Class project options: decision making, pattern recognition, databases, control, data mining. Prerequisites: CS 1160, MATH 2150, and course in probability or statistics; or permission of instructor. Cross-listed with ENGR 4845 and MATH 4845. |
| 4848 | Computer Animation Programming (4) Principles and techniques used to produce software for computer-generated animations. Survey of traditional animation techniques. Issues in 3-D viewing, rendering, and modeling. Motion specification and interpolation. Physically-based and behavioral modeling. Prerequisite: CS 4840. |
| 4849 | Game Programming (4) Survey of technologies for programming computer games. Topics include: mathematics, data structures, graphics (rendering, animation, cinematography), game logic, scripting, networking and server design, audio, artificial intelligence. Prerequisites: CS 4810 or CS 4840 or equivalent experience, and either CS 3340 or graduate standing. |
| 4865 | Graphical User Interface Programming Using a Rapid Application Development Tool (4) Event-driven programming in a windowed Graphical User Interface environment using a Rapid Application Development tool set. Pull-down menus, tool bars and other standard control objects, pointing devices, object hierarchy, standard dialogs, connecting to databases, state table programming. Prerequisite: CS 3340. |
| 4900 | Independent Study (1-5) May be repeated for credit with consent of instructor, for a maximum of 12 units. |
