You are in the official 1987-88 General Catalog for California State University, Fresno.



COURSES

 

Computer Science (C Sci)

1. Critical Thinking and Computer Science (3)
Prerequisite: intermediate algebra. Overview of the field of computer science with an emphasis on critical thinking skills. Problem-solving strategies, algorithm design, and data abstraction. Introduction to hardware, theoretical limitations of computers, and issues arising from the growing role of computers in society.

10. Introduction to BASIC Programming (1)
Prerequisite: elementary algebra. Introduction to structured programming techniques using the programming language BASIC. Topics include input/output, branching, looping, subroutines, and computer graphics. No prior experience required.

20. Introduction to Computer Programming (4)
Prerequisite; ELM Exam, intermediate algebra and trigonometry. Introduction to programming in FORTRAN with emphasis on program design, debugging and documentation. Elementary applications and structured programming for algorithm development. (3 lecture, 2 lab hours)

40. Computer Programming I (4)
Prerequisites: ELM exam, intermediate algebra, and trigonometry. Introduction to problem solving, algorithm development, procedural and data abstraction; program design, coding, debugging, testing, and documentation; programming language Pascal. No credit if taken after C Sci 20. (3 lecture, 2 lab hours)

41. Computer Programming II (4)
Prerequisite: C Sci 40. Programming methodology, program correctness. Review of data types. Data structures: linear and nonlinear structures, files. Implementation of data structures. Recursion. Searching and sorting. (3 lecture, 2 lab hours)

112. Assembly Language Programming (4)
Prerequisite: C Sci 41. Boolean algebra, combinational logic, elementary digital circuits. A comparison of several assembly languages with an in-depth study of the organization of a particular computer. (3 lecture, 2 lab hours)

113A. Introduction to Computer Organization (4)
Prerequisite: C Sci 41. The organization and structuring of the major components of a modern computer: combinational circuits, sequential circuits, simulation of circuits, coding, computer organization, and architecture. A detailed study of a microcomputer or minicomputer. (3 lecture, 2 lab hours)

115. Data Structures (3)
Prerequisites: C Sci 41. Review of basic data structures. Graph, search paths, and spanning trees. Algorithm design and analysis of sorting, merging, and searching. Memory management, hashing, dynamic storage allocation. Integration of data structures into system design.

117. Structures of Programming Languages (4)
Prerequisites: C Sci 41, 60, and C Sci 112 or ECE 118. General concepts and paradigms of programming languages; scope and binding rules, applications and implementations of language concepts. Languages selected from: ADA, ICON, Miranda, ML, MODULA 2, OCCAM 2, PROLOG, LISP, Scheme, smallTalk. (3 lecture, 2 lab hours)

119. Introduction to Automata Theory (3)
Prerequisites: C Sci 41. Introduction to theoretical computer science. Sets; relations; mathematical induction; pigeonhole principle; diagonalization principle. Regular expressions, regular languages, finite automata, their relationship and their properties. Introduction to pushdown automata and Turing machines.

124. Introduction to File Processing (3)
Prerequisite: C Sci 115. Definition of file components, access methods, and file operations. Algorithms for efficient implementation of data structures; characteristics of bulk storage media for mainframe and microcomputers. Introduction to database management systems. (Spring semester)

126. Database Systems (3)
Prerequisite: C Sci 115. Database concepts; hierarchical, relational, and network models. Data normalization, data description languages, data manipulation languages, and query design. (Fall semester)

134. Compiler Design (3)
Prerequisites: C Sci 112, 115, 119. Syntax and semantics of programming languages. Lexical analysis, parsing techniques, parser generator, SLR and LALR parsing. Introduction to symbol table organization and semantic routines. Compiler generators. (Spring semester)

136. Compiler Construction (3)
Prerequisite: C Sci 134. Advanced topics in compiler design. Type checking. Run-time storage management. Intermediate code generation. Interpreters. Error recovery techniques. Code generation and optimization. (Spring semester)

144. Operating Systems and Computer Architecture I (3)
Prerequisites: C Sci 112, 115. Review o1 system architecture. Dynamic procedure activation. Process management'-interrupt hardware, process control blocks, concurrent processes, semaphores, monitors, deadlock. Storage management -- real and virtual. Processor management-job and processor scheduling, multiprocessing.

146. Operating Systems and Computer Architecture II (3)
Prerequisites: C Sci 113A, 144. Auxiliary storage management, disk scheduling, file and database systems. Performance measuring, monitoring and evaluation, analytic modeling. Networks, security and case studies.

148. Systems Programming (3)
Prerequisites: C Sci 113A, 144. Topics include implementation of operating system components and modification of existing systems. Device drivers, memory management, communication networks, and file systems will be examined. Projects will be emphasized.

150. Software Engineering (3)
Prerequisite: C Sci 115. History, goals, and motivation of software engineering. Study and use of software engineering methods. Requirements, specification, design, implementation, testing, verification, and maintenance of large software systems. Team programming.

154. Simulation (3)
Prerequisites: C Sci 41, 60; Math 75. Simulation as a tool for the study of complex systems in computer science, statistics and operations research. Generating random variables. Review of principles behind and examples of simulation languages.

164. Artificial Intelligence Programming (3)
Prerequisite: C Sci 117. Introduction to functional programming and applicative languages via LISP. Production systems. Knowledge-based systems. Examples from: game playing, theorem proving, language processing. Introduction to logic programming and declarative languages via PROLOG. Introduction to expert systems. (Fall semester)

166. Principles of Artificial Intelligence (3)
Prerequisite: C Sci 164. Automated reasoning including nonmonotonic logic. Topics from: robot planning, natural language processing, perception (computer vision, speech), learning.

172. Computer Graphics (4)
Prerequisites: Math 76, C Sci 41. Hardware devices, raster graphics, device in dependence, graphic data structure and representations, interactive techniques, and algorithms for the display of two- and three-dimensional objects, graphic transformations, graphics standards, modeling, animation, and scientific visualization. (3 lecture, 2 lab hours)

174. Design and Analysis of Algorithms (3)
Prerequisites: C Sci 115, 119. Models of computation and measures of complexity, algorithms for sorting and searching, set representation and manipulation, branch and bound, integer and polynomial arithmetic, pattern-matching algorithms, parsing algorithms, graph algorithms, NP-complete problems. (Spring semester)

186. Automata Theory and Formal Languages (3)
Prerequisite: C Sci 119. Introduction to formal language theory. Regular grammars, context-free grammars, context-sensitive grammars, unrestricted grammars; properties of context-free languages, push-down automata.

188. Theory of Computation (3)
Prerequisite: C Sci 186. Compatibility, effective procedures, algorithms; finite-state and infinite machines; Turing machines, recursive functions, limitations of effective compatibility, the halting problem, the debugging problem, computable and noncomputable real numbers. (Former Math 113 and C Sci 113A and C Sci 184)

190. Independent Study in Computer Science (1-3)

191T. Proseminar (1-3)

Prerequisite: permission of instructor. Presentation of selected topics in computer science.

194. Cooperative Education (1-4; max total 8)
Prerequisites: courses appropriate to the work experience; approval by major department cooperative education coordinator. Integration of work experience with academic program, individually planned through coordinator.

198. Project (3)
Prerequisite: senior standing in computer science or permission of instructor and approved subject. See Criteria for Thesis and Project. Study of a problem under the supervision of a faculty member. Presentation by the student in a seminar setting and a final report are required. Satisfies the senior major requirement for the B.S. in Computer Science.



IN-SERVICE COURSE

(See Course Numbering System.)

Computer Science (C Sci)

391T. Topics in Computer Science
(1-6; repeatable with different topics)


Return to Courses Menu
Return to General Catalog Home Page