Computer Science Department


Course Offerings

California State University, Stanislaus

801 W. Monte Vista Avenue

Turlock, CA 95382

Computer Science Department

Department Office: 209. 667.3185

Marlys Knutsen, Administrative Support


Thomas J. Carter, Ph.D.

Professor and Chair


Steve Cunningham, Ph.D.



Julie D. Gorman

Instructor/Systems Administrator


Edward L. Lamie, Ph.D.



John J. Sarraillé, Ph.D.



Raymond L. Zarling, Ph.D.




Course Offerings 2000/2001

Course Offerings 2000/2001

Course Descriptions

CS 4440 Theory of Algorithms (3) Algorithms for combinatorics; for numerical problems, including matrix operations; for systems programming applications; and for artificial intelligence; domain-independent techniques. Prerequisites: CS 3100 and MATH 2510 or MATH 2300. (Spring)

CS 4450 Coding and Information Theory (3) Topics to be selected from error detecting and correcting codes, encryption and decryption techniques, RSA and knapsack codes, algebraic coding theory, Hamming distance, sphere packing and its relation to optimal codes, Hamming, Huffman and Gray codes, entropy, channel capacity and Shannon's theorem, bandwidth and the sampling theorem. Prerequisite: CS 3100 or Math 2300 or equivalent.


CS 4480 Artificial Intelligence (3) Notational systems, structures and strategies for their choice; search strategies; parallel vs. serial processing; communication and perception; applications in psychology, medicine, and robotics. Prerequisite: CS 3100.

CS 4600 Computer Graphics II (3) Advanced topics in three-dimensional computer graphics. Emphasis on producing high-quality images on raster devices. Object modeling, lighting and color models, surfaces, antialiasing, ray tracing. Additional topics in texture mapping, object-oriented graphics, advanced graphics hardware, or animation may be covered. Prerequisites: CS 3600 and Math 2510 or equivalent. (Winter)

CS 4750 Operating Systems II (3) Concurrent processes, deadlock, and synchronization; name management; resource allocation; protection; advanced architectures. (Formerly CS 3760) Prerequisite: CS 3750. (Spring)

Programs Offered by Computer Science

The Department of Computer Science offers courses designed for quality undergraduate education to meet the needs of students majoring in computer science, as well as students in other fields with interests in differing aspects of the theory and practice of computing.

The department offers the Bachelor of Science degree. The program is designed to prepare students for careers in the computing profession as well as for advanced studies. The degree program presupposes seven semesters of college preparatory mathematics. In addition, courses in foreign languages and in logic would be useful.

The department also offers a minor in computer science.



Course Offerings 2000/2001

Course Offerings 2000/2001

Course Descriptions

Prerequisites to the Major

CS 1500 Computer Programming I (3 units)

CS 2500 Computer Programming II (3 units)

CS 2700 Assembly Language and

Computer Architecture (3 units)

Math 1410 Calculus I (4 units)

Math 1420 Calculus II (4 units)

Math 1620 Probability and Statistics (4 units)

Math 2300 Discrete Structures (3 units)

Math 2530 Elementary Linear Algebra (3 units)

Either one of these sequences:

Phys 2250, 2260 General Physics I, II with labs

(10 units)


Chem 1100, 1110 Principles of Chemistry I, II with labs

(10 units)

CS 3600 Computer Graphics I (3) An introduction to computer graphics. Geometry and graphics primitives, graphics devices, 2D and 3D transformations, clipping, 3D modeling and viewing, curves and surfaces, hidden lines and surfaces, applications. (Formerly CS 3300) Prerequisites: CS 3100; Math 2510 is recommended. (Fall)

CS 3740 Computer Organization (3) Basic computer architecture including one-address machines, two-address machines, stack machines, addressing methods, memories, I/O multiprogramming, multiprocessing, and microprogramming. Prerequisite: CS 2700. (Fall)

CS 3750 Operating Systems I (3) An introduction to computer operating systems, including batch, multiprogramming, multiprocessing, and timesharing. Topics include sequential processes, concurrent processes, memory management, segmentation, scheduling algorithms, security, and ethical issues relating to security and privacy. Prerequisites: CS 3100 and CS 3740. (Fall)

CS 3850 Object Oriented Programming (3) Presents the most important objected-oriented features of a computer programming language such as C++. Emphasis on effective use of the paradigm. Counts for Computer Science elective credit. Corequisite: CS 3852. Prerequisite: CS 2500 or consent of instructor.



Course Offerings 2000/2001

Course Offerings 2000/2001

Course Descriptions

III. Electives __ 12 semester units selected from the following courses. A course may not be used as an elective if it is used to satisfy the depth requirement; at least 9 units must be in Computer Science courses.

CS 3000 Communication Networks (3 units)

CS 3200 Computer Simulation Techniques (3 units)

CS 3600 Computer Graphics I (3 units)

CS 3850 Object Oriented Programming (3 units)

CS 4250 Database Management Systems (3 units)

CS 4300 Compiler Theory (3 units)

CS 4410 Automata, Computability, and Formal Languages (3 units)

CS 4440 Theory of Algorithms (3 units)

CS 4450 Coding and Information Theory (3 units)

CS 4480 Artificial Intelligence (3 units)

CS 4600 Computer Graphics II (3 units)

CS 4750 Operating Systems II (3 units)

CS 4800 Software Engineering (3 units)

CS 4910 Cooperative Education (2-4 units)

CS 4940 Practicum in Computer Science (1-3 units)

CS 4950 Winter Term (when approved

by the department) (1-5 units)

CS 1700 Computer Programming for Scientific Application (3) An introduction to the use of the computer in scientific applications, using an appropriate language such as FORTRAN or PL/I. The course will cover data analysis techniques, real-time techniques, use of subroutine libraries, and algorithms such as the fast Fourier transform. Prerequisites: CS 1500 and Math 1410.

CS 2000 Effective Computing (3 units) To familarize students with current computing technologies used within education, home, and business envionments. Topics includ productivity tools such as work processing, spreadsheets, hardware, and operating systems. There will also be discussion of ethical and social issues concerning information technologies. Enrollment preference will be given to Liberal Studies majors. Corequisite: CS 2002. Satisfies GE area E1. Students may not used both CS 2000 and CS 4000 to satisfy GE requirements.

CS 2500 Computer Programming II (3) Continued development of discipline in program design, in style and expression, and in debugging and testing, especially for larger programs. Introduction to algorithmic analysis, string processing, recursion, internal search/sort methods, and simple data structure. Introduction to professional methodologies and ethics. Prerequisite: CS 1500. (Fall, Spring)

CS 2700 Assembly Language and Computer Architecture (3) Computer programming at the machine level. Machine language and basic machine architecture, addressing modes, subprogram linkage, program sectioning and overlays, I/O programming, macros, and interrupts. Prerequisite: CS 2500. (Fall)

CS 2970 Selected Topics During Winter Term (4).

CIS 4770 Systems Analysis and Design (3 units)

Math 4330 Numerical Analysis (3 units)

Math 4530 Abstract Algebra (3 units)

Phys 4250 Analog and Digital Electronics (4 units)



Course Offerings 2000/2001

Course Offerings 2000/2001

Degree Minor in Computer Science

Twenty-four units to include at least 9 upper-division units.

Lower-Division: Units

CS 1500 Computer Programming I........... 3

CS 2500 Computer Programming II......... 3

CS 2700 Assembly Language and

Computer Architecture ............ 3

One of the following year

sequence of courses ................. 6-8

Math 1410, 1420 Calculus I, II ............... 8

Math 1910, 1920 Calculus with

Applications I, II ..................... 6


CS 3050 File Processing ............................ 3

CS 3100 Data Structures and

Algorithms .............................. 3

One upper-division CS course as

approved by an advisor ............ 3

Total ........................................................ 24-26

Course Descriptions


CS 1000 Introduction to Computers (3) An introduction to the computer for the non-computer science major. Beginning programming, study of algorithms, problem solving and selected applications. A review of hardware and software, social impact of computing and the future of the computer. Use of microcomputers and timesharing computers. Prerequisite: None. (Fall, Spring)

CS 1200-1350 Programming Language Lab (1) Intensive study of a programming language. Total credit earned in CS 1200-1350 may not exceed three units. Credit may not be earned in a particular lab if credit for that programming language has already been earned. CS 1200, Ada Lab; CS 1210, APL Lab; CS 1220, Basic Lab; CS 1230, C Lab; CS 1240, COBOL Lab; CS 1250, Forth Lab; CS 1260, FORTRAN; CS 1270, Lisp Lab; CS 1280, Logo Lab; CS 1290, Modula 2 Lab; CS 1300, Pascal Lab; CS 1310, PL/I Lab; CS 1320, Prolog Lab; CS 1330, Snobol Lab. These courses are offered as dictated by interest and staffing. Prerequisite: Working knowledge of at least one programming language.

CS 1500 Computer Programming I (3) The usual entry course for Computer Science majors. Algorithm development and problem solving methods. Design and development of computer programs using a structured programming language such as Pascal. Prerequisite: Math 1050 or two years of high school algebra. (Fall, Spring)



Course Offerings 2000/2001

Course Offerings 2000/2001


CS 3000 Communication Networks (3) The emergence of telecommunications networks is creating new environments for human interactions that are rapidly altering occupational and social dynamics. This course introduces students to the diversity of network technologies and provides them with sufficient hands-on skills to work in this field. Topics include resource sharing, resource access, and communication. Corequisite: CS 3002. Prerequisite: CS 2500

CS 3050 File Processing (3) Study of the physical and logical characteristics of data stored on external storage devices. Data structures used to organize such information. Access methods and details of working with file systems. Prerequisite: CS 2500. (Fall)

CS 3100 Data Structures and Algorithms (3) Fundamental concepts and abstraction of data structures. The design and analysis of algorithms involving such data structures as arrays, stacks, queues, lists, trees, strings, graphs, and files. Techniques for estimating the time and memory requirements of computer programs. Several large programming assignments. Prerequisite: CS 2500.

(Fall, Spring)

CS 3200 Computer Simulation Techniques (3) Introduction to simulation, planning computer simulation experiments, simulation experiments, simulation models. Simulation methodology, design of experiments, analysis of data validation of models and results. Programming selected applications using GPSS. Prerequisites: Math 1600, 1610, 1620 or Econ 3200, and CS 1500 or

CIS 2010. (Spring)

The Major

I. Required Courses __ 16 semester units.

CS 3050 File Processing (3 units)

CS 3100 Data Structures and

Algorithms (3 units)

CS 3740 Computer Organization (3 units)

CS 3750 Operating Systems I (3 units)

CS 4100 Programming Languages (3 units)

CS 4960 Seminar in Computer

Science (1 unit)

II. Depth Requirement __ 9 semester units.

Complete three courses from the following list.

CS 4300 Compiler Theory (3 units)

CS 4410 Automata, Computability,

and Formal Languages (3 units)

CS 4440 Theory of Algorithms (3 units)

CS 4480 Artificial Intelligence (3 units)

CS 4800 Software Engineering (3 units)



Course Offerings 2000/2001

Course Offerings 2000/2001

CS 4000 Personal Computing (3) This course will give the student the knowledge and experience needed to use a personal computer effectively. A range of computers and software will be available; as much as possible, the student will be able to learn about systems which are directly usable in his or her area of study. Topics will include discussions of computer hardware, the range of capabilities of the personal computer, how to evaluate a piece of software, and how software is written. Prerequisite: Upper-division standing. (Fall, Winter, Spring)

CS 4100 Programming Languages (3) Study of programming language concepts such as binding, data structures, string handling, control structures, as embodied in various programming languages. Satisfies upper division writing proficiency requirement. Students must pass the Writing Proficiency Screening Test before gaining admission to this class. Prerequisite: CS 3100. (Spring)

CS 4250 Database Management Systems (3) Data definition and manipulation of selected commercially available Database Management Systems. Hierarchic, network and relational data models. Implementation of a Database Management System. Prerequisites: CS 3050 and CS 3100. (Spring)

CS 4300 Compiler Theory (3) Lexical and syntactic analyses, push-down and parsing techniques, syntax directed translation, symbol table construction, error diagnostics, code generation. Prerequisite: CS 4100. (Fall)

CS 4410 Automata, Computability, and Formal Languages (3) Finite state concepts; sequential machines and state minimization; Chomsky grammars; algorithms on grammars; computability and Turing machines; non-computable functions. Prerequisite: CS 4100. (Spring)



Course Offerings 2000/2001

Requirements for the

Bachelor of Science in

Computer Science

Computer Science majors are to:

1. Complete University requirements for a Bachelor of Arts or Bachelor of Science degree (51 units minimum).

2. Complete the prerequisites to the major. No more than 8 units of CR-graded course work may apply toward the prerequisites to the major.

3. Complete the major of not less than 37 upper-division units.

4. Complete one upper-division course in Chemistry or Physics/Physical Sciences (3-4 units).

5. Complete PHIL 4401 Professional Ethics, 3 units.

6. Satisfy the departmental writing proficiency requirement.

No upper-division course which applies to the major or to the electives may be taken on a CR-graded basis except for CS 4910 (Cooperative Education) and CS 4960 (Seminar in Computer Science). Prerequisites to the major are expected to be completed before upper-division computer science courses are taken. Completion of a minor is not required. (See 1999-2000 University Catalog.)

Departmental Writing Proficiency Requirement

1. Pass the university-wide Writing Proficiency Screening Test (or have the equivalent transferred from another campus).

2. Pass a Computer Science course with a WP designation, or obtain certification from the departmental WP coordinator.

(See 1999/2000 University Catalog.)

Course Offerings 2000/2001

CS 4800 Software Engineering (3) A formal introduction to techniques in software design, development and verification. A large part of the course is a team project on which students will work on a large software project. (Formerly CS 3800) Prerequisites: CS 3050 and CS 3100.


CS 4910 Cooperative Education (2-4) This course provides an opportunity to acquire relevant, practical experience in supervised paid employment within the discipline. Students are placed in private or public sector positions under the supervision of the employer and departmental Co-op coordinator. Prerequisites: Sophomore standing and consent of Departmental Coordinator.

CS 4940 Practicum in Computer Science (1-3) Practical experience through directed work with department faculty/staff to extend course work knowledge. Six units maximum; up to three units may count towards elective credit. Prerequisite: Upper-division standing and consent of instructor.

CS 4950 Selected Topics (1-5) Development of a selected branch of Computer Science. Topics vary each term. Different topics may be taken for a maximum of 6 units. Prerequisite: Senior standing and consent of instructor.

CS 4960 Seminar in Computer Science (1) Presentation and discussion of selected topics in computer science from the current literature. Prerequisite: Senior standing and consent of instructor. (Spring)

CS 4980 Individual Study (1-4) For students capable of independent work and in need of advanced and specialized study. May be repeated for a total of 6 units. Prerequisite: Consent of instructor.




The Department of Computer Science is housed in the north wing of the Professional Schools Building. The computers are linked with Ethernet and connect to computing facilities campus wide and also worldwide through the Internet. Students and faculty use these facilities for computer science studies and research ranging from application programs to artificial intelligence, computer graphics, and software development.

Other computing facilities available to students include the Computer Center's workstations and laboratory machines. These are accessible from the computer science labs as well as several other laboratories on campus, many of which also have personal computers. Students at Stanislaus have access to a variety of computers ranging from mainframes to microcomputers.

Cover: Lady Ada Lovelace (first computer programmer)


The Computer Science Department offers a personal atmosphere for its' students. Most classes are fairly small and students can interact readily with their instructors. At Stanislaus, the student and instructor work together to build the background for the student's career.

CSU Stanislaus and the city of Turlock offer good access to the central Sierras, the Pacific, and the urban areas of San Francisco and the Silicon Valley, while providing a pleasant small town atmosphere and a relaxed pace.

Revised August 2000