|
|

Department of Mathematics and Computer Science
College of Science
Office: North Science 335
Phone: (510) 885-3414
|
|
|
|
|
|
|
E-mail: mathcs@csuhayward.edu
http://www.mcs.csuhayward.edu |
Student Service Center: North Science 337
Telephone: (510) 885-4011
Professor Emeritus: Charles M. Marut
Professors: James S. Daley, Kathleen Hann, Edward L.
Keller (Associate Chair), Gary E. Lippman, Massoud Malek, Russell L.
Merris, Christopher L. Morgan, William R. Nico (Computer Science
Coordinator), Edna E. Reiter (Chair), Istvan Simon, Stuart Smith,
William Thibault, Bruce E. Trumbo, Donald L. Wolitzer, Ytha Y. Yu
Associate Professors: Jagdish Bansiya, Edward A. Billard,
Kevin A. Brown, Kevin E. Callahan, Julie S. Glass, Dan Jurca, Thomas W.
Roby, Farzan Roohparvar, Assim Sagahyroon
Assistant Professors: Leann Christianson, Roger W.
Doering, Levent Ertaul, Madhavi Gandhi, Lynne L. Grewe, Hilary J. Holz,
C. Matthew Johnson, Chung-Hsing OuYang, David Yang
Lecturers: Paula Albert, Jack A. Carter, Francis Conlan,
Michael A. Contino, Dorothy E. Fujimura, Phil Gonsalves, Ching-Cheng
Lee, David L. Pugno, Denise Sargent-Natour, Jean Simutis
Graduate Coordinator: Donald L. Wolitzer
Please consult the 2005-2006 online catalog for any changes
that may occur.
|
|
|

Program Description
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. 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/Computer Science and Accounting/Computer Information Systems
Departments offer an interdisciplinary Master of Science degree program
in Telecommunication Systems.
Career Opportunities
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 • Teacher/Professor
Faculty
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.
Features
Computer Science students at Cal State Hayward have access to some of
the most modern and powerful computer equipment available. The campus
provides a network backbone, including connection to the Internet, and
hundreds of personal computers. The department also has equipment of
its own, including a network of Unix workstations and classrooms
equipped for computerized demonstrations. 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.
Scholarships
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.
Admission
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. The department then reviews the application,
making the decision whether to accept or reject the applicant. Each
applicant must have the score on the general portion of Graduate Record
Examination (GRE) submitted directly to the department. Submission of
scores on the Computer Science portion is optional.
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
Twenty-eight (28) quarter units (7 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 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 for
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 being Advanced to Candidacy, a student's complete course of
study must be approved by the Computer Science Graduate Committee.
The following departmental requirements are in addition to the
university requirements.
|
|
|
|
|
|
| A. |
Research Methodologies Requirement (2 units) |
|
CS 6000 Research Methodologies (2)
|
| B. |
Breadth Requirement (20 units) |
|
CS 6260 Computational Complexity (4)
CS 6560 Operating Systems Design (4)
At least one course from each of the following three
groups:
|
|
1. |
Theory |
|
CS 6140 Language Design (4), 6170 Automata and Formal
Languages (4), 6245 Combinatorial Algorithms (4), 6360 Formal
Specification and Verification (4), 6520 Cryptography and Data Security
(4); MATH 6750 Topics in Advanced Numerical Analysis (4)
|
|
2. |
Architecture |
|
CS 6430 Computer System Architecture (4), 6580 Distributed
Systems (4), 6585 Distributed and Client/Server Systems (4), 6825
Computer Vision (4)
|
|
3. |
Systems |
|
CS 6110 Theory and Design of Compilers (4), 6320 Software
Engineering of Web-Based Systems (4), 6570 Distributed Computation (4),
6660 Database Systems (4), 6715 Data Compression (4), 6810 Topics in
Artificial Intelligence (4), 6840 Principles of Computer Graphics (4)
|
| C. |
Capstone Experience (0-5 units). Select (1) or (2)
|
|
1. |
A comprehensive written examination. Details are available in
Mathematics/Computer Science Department,
|
|
2. |
A Departmental Thesis (CS 6909). 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.
|
| D. |
Electives (18-23 units) |
|
The following Cal State Hayward courses (or their
equivalents) may be counted toward the master's degree:
|
|
MATH 3151 Combinatorics
MATH 4151 Graph Theory
All 3000-level (except for CS 3898), 4000-level and 6000-level Computer
Science courses not used in categories (A), (B), and (C) above or as an
admission requirement may be used as electives toward the master's
degree.
|
| E. |
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.
|
Other Degree Requirements
In addition to departmental requirements, every student must also
satisfy the university requirements for graduation which are described
in the Graduate and Post-baccalaureate Studies chapter at the beginning
of the graduate section 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.
|
|
|

|
|
The
course prefix for the following courses is CS.
|
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. (Y)
|
6005
|
Teaching Computer Science at the University Level (1)
Theory, methodology, and practical experience in the teaching of
computer science at the university level. Includes discussion of
lecturing techniques, analysis of tests and supporting material,
preparation and grading of examinations, and related topics. Required
of departmental teaching associates. May be repeated for credit, but
only two units can be used toward the M.S. degree. Prerequisites:
graduate standing and permission of department.
|
6110
|
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.
|
6140
|
Language Design (4)
Topics in design and use of programming languages: object-oriented
languages, functional and applicative languages. Exception handling,
parallel processing and concurrency control. Fourth generation
languages. Prerequisites: CS 3120 and 4110.
|
6170
|
Automata and Formal Languages (4)
Deterministic and nondeterministic finite automata. Regular grammars,
languages, and expressions. Kleene's Theorem, algebraic
characterizations. Chomsky hierarchy. Languages: regular, context free,
context sensitive, recursive, type 0. Normal forms, pushdown automata,
pumping lemmas, closure. Time and tape bounded Turing machines.
Decision problems. Prerequisite: CS 4170.
|
6245
|
Combinatorial Algorithms (4)
Design and analysis of efficient combinatorial algorithms. Graph theory
and algorithms: flows in networks, max flow/min cut theorem. Theorems
of Menger, Hall, Tutte, Dilworth. Examples of algorithms drawn from
matching, maxflow, mincost flow, Hitchcock Problem, weighted matching,
linear programming. NP-complete problems, approximation algorithms.
Prerequisites: CS 4245; MATH 4151 recommended.
|
6260
|
Computational Complexity (4)
Models of computation, particularly deterministic and nondeterministic
Turing machines. Decision problems, measures of complexity (e.g. P, NP,
PSPACE). Approximation algorithms, randomized algorithms.
Prerequisites: CS/MATH 4170 or CS/MATH 4245 or permission of
instructor. Cross-listed with MATH 6260.
|
6310
|
Software Engineering (4)
Theory and practice of large software development projects, including
methods of requirement specifications, programming approaches, program
management, testing strategies, and performance evaluation. Team
organization and management. Software life cycles. Prerequisites: CS
2360, CS 3240, and a senior level Computer Science course in which
programs are written.
|
6315
|
Object-oriented Software Development for
Telecommunications (4)
Networking and telecommunications APIs. Class libraries for networking
and distributed services. Object-oriented software development tools,
languages, and techniques. Programming exercises. Prerequisites: CS
3240, CS 3590.
|
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.
|
6340
|
Advanced Topics in Object-Oriented Programming and
Design (4)
Advanced topics in object-oriented programming and design using the
Java platform. Threads, platform-independent network programming,
distributed objects, remote method invocation, CORBA, data-base
connectivity, persistence and serialization, Java beans, enterprise
Java beans, advanced GUI design. Prerequisite: CS 3340.
|
6360
|
Formal Specification and Verification (4)
Fundamental techniques of program specification and verification.
Inductive methods for proving program correctness, including invariant,
inductive and intermittent assertion methods and subgoal, structural
and computational induction. Prerequisites: CS 3240 and MATH 2150 (or
upper division mathematics course in which theorems are proved).
|
6430
|
Computer System Architecture (4)
Processor design: register transfer, processor control,
microprogramming. Design of instruction sets. Pipelining.
Microprocessor-based architectures. RISC architectures. Memory
hierarchies and organization: cache, RAM, mass storage. Addressing
mechanisms, I/O organization: polling, interrupts, DMA. Highly parallel
architectures. Prerequisites: CS 3430; CS 3432 and/or CS 3434
recommended.
|
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 and 6430 or consent of
instructor. Three hrs. lect., 3 hrs. lab.
|
6458
|
Optical Fiber Technologies (4)
(See TC 6458 for course description.)
|
6520
|
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.
|
6522
|
Advanced WWW Software Development (4)
Advanced WWW system architecture and software development. Database
access, 2- and 3-tier systems, objects and components, ORB, CORBA, COM,
ActiveX, Java Beans. Programming exercises. Prerequisites: CS 6585, TC
6205.
|
6525
|
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. Prerequisites: CS 6585, TC
6205.
|
6560
|
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
|
6570
|
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.
|
6580
|
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.
|
6585
|
Distributed and Client/Server Systems (4)
Distributed services, goals, and issues. Computer network architectures
and communications models. Remote procedure calls, event ordering,
naming, concurrency control, transactions, voting algorithms. Case
studies: ONC, DCOM. Development and management tools. Programming
exercises. Prerequisites: CS 3240 and CS 3590, or TC 3265.
|
6660
|
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 3660, 4560, and 4660.
|
6715
|
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.)
|
6752
|
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.
|
6800
|
Topics Seminar (4)
Presentation of selected topics beyond regular courses. Subjects will
vary. Prerequisites: "Classified Graduate" standing in Computer Science
M.S. degree program and consent of instructor.
|
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. Prerequisite: CS 4810.
|
6815
|
Artificial Intelligence in Telecommunications (4)
(See TC 6815 for course description.)
|
6825
|
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.
|
6830
|
Genetic Algorithms and Evolutionary Programming (4)
Theoretical and practical foundations of the design, complexity and
correctness of genetic programs and classifier systems; the formal
properties of various evolutionary approaches; the design of new
genetic operators, representations and fitness functions for specific
practical and scientific applications. Prerequisite: CS 4810.
|
6840
|
Principles of Computer Graphics (4)
Advanced graphics algorithms including viewing, scan conversion, hidden
line, hidden surface, ray tracing, shading and lighting, fractals.
Solid modeling. Software packages, development, and standards. Software
development on advanced graphics workstations. Prerequisite: CS 4840.
|
6844
|
Digital Image Processing (4)
Digital image acquisition, display, analysis, manipulation, and
transmission. Color space conversion, convolution, geometric
transformations, and compression. Programming exercises. Prerequisites:
CS 6585, TC 6101. Cross-listed with TC 6844.
|
6870
|
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.
|
6899
|
Project (5)
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
Hayward faculty member. Oral defense required. Prerequisite:
advancement to candidacy. Cross-listed with TC 6899.
|
6900
|
Independent Study (1-4)
|
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 Hayward faculty
member. May be repeated for a maximum of 5 units. Prerequisites: CS
6000, advancement to candidacy, and approval of thesis proposal by
advisor and departmental committee.
|
|