Department of Computer Science
College of Science
Office: North Science 335
Phone: (510) 885-3414
Student Service Center: North Science 335
Phone: (510) 885-4011
Edna E. Reiter, Ph.D. University of Cincinnati
Istvan Simon, Ph.D. Stanford University
Ytha Y. Yu, Ph.D. University of California, Berkeley
Associate Professor Emeritus
Dan Jurca, Ph.D. Northwestern University
Kevin A. Brown, Ph.D. University of South Carolina
Leann Christianson, Ph.D. University of South Carolina
Levent Ertaul, Ph.D. University of Sussex (United Kingdom)
Lynne L. Grewe, Ph.D. Purdue University
C. Matthew Johnson (Chair), Ph.D. College of William and Mary
Farzan Roohparvar, Ph.D. Iowa State University
David Yang, Ph.D. Columbia University
Jiaofei Zhong, Ph.D. The University of Texas at Dallas
Graduate Coordinator: David Yang
The Mathematics and Computer Science Department offers graduate study leading to the degree of Master of Science in Computer Science. This program is designed to extend the student's knowledge in a broad manner beyond the baccalaureate degree major in Computer Science. It will both (1) deepen general understanding of theoretical principles and (2) provide specific professional background. This approach is especially important in Computer Science, where training in specific languages and systems and on specific machines is transitory, as these languages, systems, and machines evolve. In contrast, many of the principles will last and generally apply to a wide variety of specializations within the field. This breadth is important to individual students because many of them will have a number of different job classifications in their working lives.
Our program features small classes that allow for close contact between students and faculty. Most graduate classes are offered in the late afternoon or early evening, making it possible for working students to attend. Some courses toward the M.S. degree may also be taken during the summer quarter. Students may begin their studies in any one of the four quarters.
Students interested in the M.S. degree program in Computer Science should speak with the Computer Science Graduate Coordinator. The Math and Computer Science Department also offers a Master of Science degree program in Computer Networks.
Student Learning Outcomes
Students graduating with an M.S. in Computer Science will be able to:
- apply advanced computer science theory to problems;
- demonstrate advanced understanding of the mechanisms, components and architecture of current computing systems;
- generate and process useful representations of knowledge;
- critique, plan and produce complex software applications, and
- research and analyze current computer science literature.
- Systems Analyst
- Program Analyst or Designer
- Systems Manager or Programmer
- Scientific Applications Programmer
- Computer Operations Manager
- Graphics Specialist
- Software Engineer
- Programming Team Member, possibly specializing in Design, Testing, or Documentation
- Computer Network Support
- Database Applications Programmer or Administrator
- Computer Sales Representative
- Customer Support
- Technical Writer
The faculty of the Mathematics and Computer Science Department hold doctorates in a wide variety of areas. They have a strong commitment to high quality teaching, and have interests in fields such as computer graphics, networks, numerical analysis, compiler design, computer simulation, parallel programming, computer architecture, automata, multimedia, cryptography, computational complexity, language design and implementation, graph theory, microcomputer architecture, and database systems.
Computer Science students at Cal State East Bay have access to some of the most modern and powerful computer equipment available. The campus provides a network backbone, including connection to the Internet, personal computers, and wireless network access. Several computer labs on campus offer terminal access and assistance with problems.
Cal State has an active Computing Club, which hosts industry tours as well as academic and social events and is involved with a number of ongoing projects.
Each year the department awards a number of scholarships covering a large portion of the fees for the subsequent year. Scholarship applications may be obtained from the department office during the Winter quarter.
To apply for admission to the Master of Science program in Computer Science, a student must submit the proper forms, fees and transcripts to the university's Office of Admissions, which reviews each application initially. Each applicant must have their scores on the general portion of Graduate Record Examination (GRE) submitted directly to the department. The department then reviews the application, making the decision whether to accept or reject the applicant.
A student wishing to enter this program must normally have an undergraduate degree in Computer Science or in a related field, with courses in Computer Science as indicated below, and must have a grade point average of 2.75 in all undergraduate work and a 3.00 grade point average in the Computer Science Core and Mathematics courses listed below.
Computer Science Admission Requirements
Sixteen (16) quarter units (4 courses) of lower division Computer Science coursework that cover fundamental programming including object-oriented programming.
- CS 1160 Introduction to Computer Science I
- CS 2360 Introduction to Computer Science II
- CS 2370 Introduction to Computer Science III
- CS 2430 Computer Organization and Assembly Language Programming
Thirty-two (32) quarter units (8 courses) of upper division Computer Science coursework that covers a broad range of Computer Science and includes the following four courses or their equivalents.
- CS 3120 Programming Language Concepts
- CS 3240 Data Structures and Algorithms
- CS 3340 Introduction to Object-Oriented Programming and Design
- CS 3430 Computer Architecture
- CS 4560 Operating Systems
Successful completion of equivalents to all the following mathematics requirements is also required.
Mathematics Requirements for Admission
- A year of Calculus (MATH 1304, 1305, 2304)
- Linear Algebra (MATH 2101)
- Discrete Structures (MATH 2150)
- An upper division course in Probability or Statistics (STAT 3401, 3502, or 3601)
A student who has not met all of the above requirements may be admitted to the program at the discretion of the department as a "Conditionally Classified Graduate" student, provided the student's record clearly demonstrates the capability of meeting all these requirements.
No more than 20 quarter units taken while in "Conditionally Classified Graduate" status may be applied to the degree. Note that courses used to make up deficiencies for admission may not be applied toward the master's degree. A "Conditionally Classified Graduate" student who has no course deficiencies, a "B" or better average in at least 12 quarter units of post-baccalaureate study, and has satisfied the University Writing Skills requirement should petition the graduate coordinator for admission to the master's degree program with "Classified Graduate" status. A maximum of 13 units taken as an "Unclassified Post-baccalaureate" student may be applied to a master's degree.
Advancement to Candidacy
Advancement to Candidacy is a university requirement for graduation from a master's degree program. A student with "Classified Graduate" status may apply for Advancement to Candidacy after completing at least 16 quarter units towards the master's degree with a "B" average, including at least two 6000 level Computer Science courses with a "B" or better average.
Before Advancement to Candidacy, a student's complete course of study must be approved by the Computer Science Graduate Coordinator.
The following departmental requirements are in addition to the university requirements.
- Required Courses (10 units)
- CS 6000 Research Methodologies (2)
- CS 6260 Computation and Complexity (4)
- CS 6560 Operating Systems Design (4)
- Breadth Requirement (16 units)
- Two courses from each of the following two categories (16 units):
- Development/Theory (8 units)
- CS 6170 Automata and Formal Languages (4)
- CS 6310 Advanced Software Engineering (4)
- CS 6320 Software Engineering of Web-based Systems (4)
- CS 6520 Cryptography and Data Security (4)
- CS 6522 Advanced WWW Software Development (4)
- CS 6715 Data Compression (4)
- CS 6810 Topics in Artificial Intelligence (4)
- CS 6820 Machine Learning (4)
- CS 6870 Computer Simulation (4)
- MATH/CS 6750 Topics in Numerical Analysis (4)
- Systems/Architecture (8)
- CS 6110 Theory and Design of Compilers (4)
- CS 6432 VLSI Systems Design (4)
- CS 6525 Network Security (4)
- CS 6570 Distributed Computation (4)
- CS 6580 Distributed Systems (4)
- CS 6660 Database Systems (4)
- CS 6752 Digital Signal Processing (4)
- CS 6825 Computer Vision (4)
- Development/Theory (8 units)
- Two courses from each of the following two categories (16 units):
- Capstone Experience (1-5 units). A student must select and satisfy one of the following capstone requirements:
- CS 6901 Capstone Experience (4). A student must successfully complete at least 30 units of study including all required courses (CS 6000, 6260, and 6560), satisfy the WST requirement, and be in good standing before enrolling in Capstone Experience.
- CS 6909 Departmental Thesis (1-5). Students who write a thesis must have an advisor who agrees to oversee the work, and must have the proposed topic approved by the Computer Science Graduate Studies Committee.
- Electives (14-18 units)
The following courses (or their equivalents) may be counted toward the master's degree:
- Any graduate course in Computer Science (except CS 6899) may be applied to this category.
- Any Computer Science course numbered 3000 (except 3898) or higher, provided it has not been already applied toward a B.S. degree or toward prerequisites for admission. This restriction includes equivalent courses from other degree programs; exceptions require the approval of the Computer Science Graduate Committee.
- MATH 3151 Combinatorics
- MATH 4151 Graph Theory
- Courses equivalent to CS 4170/6170 (Automata and Formal Languages) and CS 4245 (Analysis of Algorithms) if not completed before admission to the M.S. program.
- Unit and Grade Requirements
At least 45 quarter units of approved upper division and graduate work. Of these, at least 26 units must be approved graduate (6000-level) courses. All work toward the 45 units must be at an average grade of "B" (3.0) or higher. Grades below "C-" will not be counted as prerequisites or toward the degree.
In addition to departmental requirements, every student must also satisfy the university requirements for graduation which are described in the Graduate Degree Information chapter of this catalog. These requirements include the 32-unit residence requirement, the five-year rule on currency of subject matter, the minimum number of units of 6000-level courses, the 3.00 GPA, and the University Writing Skills Requirement. For information on meeting the University Writing Skills Requirement, see the Testing Office website at www.csueastbay.edu/testing or call 510.885.3661.
|Course Number||Course Information|
|6000||Research Methodologies (2)
Seminar in recent research in Computer Science. Use of periodical and non-periodical literature for research in computer science. Students read, analyze, present, and discuss papers of current interest in Computer Science. Prerequisite: "Classified Graduate" standing in Computer Science M.S. degree program and permission of instructor.
|61101||Theory and Design of Compilers (4)
Grammars and parsing techniques, advanced theory and methods of code generation, code optimization, error recovery, use of compiler-generator tools. Prerequisite: CS 4110.
|61701||Automata and Formal Languages (4)
Alphabets, strings and languages; Chomsky hierarchy and language classes; regular languages, finite automata, regular expressions and operators; context-free languages, grammars, pushdown automata; context-sensitive languages; Turing machines and decidability. Prerequisites: MATH 2101, MATH 2150, MATH 2304.
|62601||Computation and Complexity (4)
Languages and algorithms; decision problems; Turing machines and Turing-Completeness; decidability; measures and classes of time and space complexity (e.g., P, NP, PSPACE); NP-Completeness. Prerequisites: CS/MATH 4170 (or CS 6170) and CS/MATH 4245; or permission of instructor. Cross-listed with MATH 6260.
|63101||Advanced Software Engineering (4)
Advanced concepts of object-oriented and architectural design, along with implementation. Pattern-based design of software using the Unified Modeling Language. Design patterns as re-usable architecture. Prerequisite: CS 3340.
|6320||Software Engineering of Web-Based Systems (4)
Current practices and trends in software design, development, and deployment of web-based systems, with particular emphasis on e-commerce. Projects include the latest technologies and techniques used by the Internet community. Prerequisites: CS 3520, CS 3340; or permission of instructor.
|6325||Advanced Software Testing (4)
Current practices and tools in software testing. Writing scripts for test automation. Sample topics include: acceptance test-driven development, test data generation, database testing, web testing, test maintenance. Prerequisites: CS 3240. A-F grading only.
|6330||Secure Software Development (4)
Security and safety in software design and development. Vulnerability detection and avoidance. Introduction to software analysis tools. 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. A-F grading only.
|6432||VLSI Systems Design (4)
The use of a highly integrated suite of CAD (Computer Aided Design) tools to design and test a bit-sliced microprocessor that implements concepts from CS 6430. Prerequisites: CS 4432 or consent of instructor. Three hrs. lect., 3 hrs. lab.
|65201||Cryptography and Data Security (4)
Cryptographic theory with applications to data and file access security. Substitution ciphers, stream and block cyphers, algebraic codes, error correcting codes, Shannon's theorem. Cryptosystems, including public key. The Data Encryption Standard. Issues of privacy, authenticity, integrity. Implementation issues, including key management and chaining. Prerequisites: CS 4560, CS 4170 or 4245, and a course in probability; or permission of instructor.
|65221||Advanced WWW Software Development (4)
Advanced WWW system architecture and software development. Database access, 2- and 3-tier systems, objects and components, XML, Servlets and JSP, Web Services, Enterprise Java Beans, ASP.NET. Programming exercises. Prerequisites: CS 3340 and CS 3520, or permission of instructor.
|65251||Network Security (4)
Principles of secure network communications. Techniques of authentication and identification, cryptographic key distribution and management, assurances of data integrity. Access control. Security policy; conformance of implementation to policy. Discussion of particular systems, protocols, and utilities, e.g., Kerberos, firewalls, various commercial standards. Prerequisite: CS 4590.
|6526||Security in Wireless, Mobile, Grid and Pervasive Computing (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 Mobile Ad Hoc Networks (MANETs), Security in Vehicular Ad Hoc Networks (VANETs), Security in Wireless Sensor Networks (WSN), Bluetooth Security, VoIP Security, Grid Security and Mobile Agents Security. Prerequisites: CS 4525, 6520, 6525.
|6527||Network Security Management (4)
Issues in the management of secure networks, including models, life cycle, threats and ethical considerations. CIA triad, security star and NSA triad, the information security life cycle, security plans, policy, and risk management, with techniques and technologies for security management. Threats to network and wireless security, disaster planning, cyber terrorism and Homeland Security. Students will complete Network Security Threat analysis project. Prerequisites: CS 6525, 6526. Not open to students with credit for CS 4527.
|65601||Operating Systems Design (4)
Theory of operating systems. Process synchronization, concurrency, resource management, security, performance evaluation, analytic models, human interfaces. Implementation issues. Prerequisite: CS 4560.
|65701||Distributed Computation (4)
Classical problems which abstract real-world network problems. Process synchronization and communication using message-passing systems. Topics may include mutual exclusion, leader election, global snapshots, Byzantine generals, consensus, shared registers, common knowledge and distributed spanning trees. Prerequisite: CS 4560.
|6575||Parallel Programming (4)
Course Content: Programming techniques and parallel computing architectures to enhance performance. Data parallelism, thread parallelism, and task parallelism. Memory models, shared memory and message passing. Synchronization, consistency, and interprocessor communication. Prerequisite: CS 6560.
|65801||Distributed Systems (4)
Issues in the design and implementation of distributed systems. Network layers, architectures, and topologies. Distributed process management, concurrency control, deadlock, and recovery. Prerequisites: CS 4560 and 4590.
|65911||Communication Network Analysis and Design (4)
The practice of network analysis and design. Topics include estimation of traffic demand, requirements specification, topology design, network cost analysis, routing, wired and wireless technologies, design tools, fault tolerance, and design of a LAN or WAN. Prerequisite: CS 4590.
|65921||Network Management (4)
Computer network management concepts, protocols, and industry standards. SNMP, CMIP, and web management. Management applications including fault, performance, configuration, accounting, and security management. Management tools and network modeling. Prerequisite: CS 4590.
|6593||Cloud Computing (4)
Cloud computing: its importance, architecture and issues; services and applications by type (Iaas, Paas, SaaS, IDaaS, CaaS); abstraction and virtualization; capacity planning; exploring platform as a service; cloud security; mobile clouds; application development and case studies; graduate project encompassing advanced synthesis and application of cloud computing principles. Prerequisite: CS 4590. Not open to students with credit in CS 4593. A-F grading only.
|6594||Broadband and Multimedia Networks (4)
Broadband and multimedia network architectures, services, and protocols. Audio, video, and voice coding, quality of service requirements, traffic management, and scheduling in high speed wired and wireless networks. Prerequisite: CS 3590. Not open to students with credit for CS 4594. A-F grading only.
|65961||Wireless and Mobile Network Architecture (4)
Wireless network architectures including cellular, WLAN, and satellite systems. Signal propagation models and reception techniques. Mobile computing issues including location management, routing, transport, and mobile application design. Prerequisites: CS 3590; graduate standing. Not open to students with credit for CS 4596.
|66601||Database Systems (4)
Design issues in current database systems: data models, storage management and access, distributed systems, query languages and query optimization, database integrity and security, encryption and decryption, concurrency control. Prerequisites: CS 4560, and 4660.
|6665||Database Systems Administration (4)
Database system architecture and issues in administration. Advanced techniques in database security, object management, performance analysis, SQL tuning, backup and recovery. Hands on experience administering an Oracle database. Prerequisite: CS 4660.
|67151||Data Compression (4)
Algorithms for data compression, Huffman coding, arithmetic coding, Lev-Zimpel coding. Adaptive variations of compression algorithms. Lossless and lossy compression. Transform methods and image compression. Coding theory and information-theoretic bounds. Applications to data transmission. Prerequisite: CS 3240, STAT 3401 or STAT 3502.
|6750||Topics in Numerical Analysis (4)
(See MATH 6750 for course description.)
|67521||Digital Signal Processing (4)
Linear systems and complex numbers, Fourier and Z transforms, A/D and D/A conversion techniques, Discrete Fourier Transform, Fast Fourier Transform, linear prediction, digital filters, speech processing. Prerequisites: MATH 1304, MATH 2101, CS 3240.
|6810||Topics in Artificial Intelligence (4)
Knowledge representation and reasoning. Theory and advanced programming techniques. Topics selected from areas of expert systems, natural language processing, image understanding, machine learning, games, and robotics.
|6820||Machine Learning (4)
Advanced topics in Artificial Intelligence, including induction, decision trees, ensemble learning; current-best-hypothesis search, knowledge representation, explanation-based learning, relevance information, inductive logic programming; Bayesian networks, instance-based learning; neural networks and genetic algorithms; reinforcement learning, and adaptive dynamic programming. Prerequisite: CS 4810 or 6810.
|68251||Computer Vision (4)
Mathematical and algorithmic approaches to the problem of computing properties of the 3-D world from one or more digital images. Imaging, image processing, feature detection, calibration, stereopsis, motion, object recognition, tracking. Prerequisites: MATH 2101, 2034; CS 3240.
|68311||Statistical Learning and Data Analysis (4)
Introduction to machine learning; emphasis on its underlying mathematics. Topics include: feasibility of learning, data representation, gradient descent, regression, over/under-fitting, regularization, neural networks, SVD, and spectral clustering. Prerequisites: MATH 2150 and STAT 3401 or 3502.
|6865||Topics in Graphical User Interface Programming (4)
Topics from event-driven programming using a windowed Graphical User Interface environment and Rapid Application Development tools. Standard control objects and more. Interaction design issues and human-computer interaction. Prerequisite: CS 3340.
|68701||Computer Simulation (4)
Introduction to construction and analysis of models by computer simulation. Study of one discrete and one continuous simulation language. Application to modeling biological, industrial, and physical processes. Prerequisites: MATH 3100, 3331, and a course in computer programming. Cross-listed with MATH 6870.
Development of an original telecommunications project which is summarized in a written abstract. Both the project and the abstract are submitted to the department which specifies their formats. Supervision by a department committee, at least one of whom must be a Cal State East Bay faculty member. Oral defense required. Prerequisite: advancement to candidacy.
|6900||Independent Study (1-4)|
|6901||Graduate Synthesis in Computer Science (4)
A synthesis of important areas of Computer Science, culminating in comprehensive examinations covering these areas. Prerequisites: Completion of at least 30 units toward the MS degree; satisfactory completion of all course requirements including CS 6260 and CS 6560, and the analysis/automata requirement. Credit only available to students in the M.S. Computer Science program. CR/NC grading only.
|6909||Departmental Thesis (1-5)
Development and writing of a research paper for submission to the department, which specifies its format. Supervision by a departmental committee, at least one of which must be a Cal State East Bay faculty member. Prerequisites: CS 6000, advancement to candidacy, and approval of thesis proposal by advisor and departmental committee. May be repeated for a maximum of 5 units.
- Enrollment in these courses is restricted to "Classified" and "Conditionally Classified Graduate" students. Others may enroll with the permission of the department.