You are in the official 1989-90 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.

15. C Programming (2)
Prerequisite: programming experience in a major high-level language, e.g., BASIC, COBOL, FORTRAN, Pascal. An introduction to the C programming language. Types, operators, expressions, flow of control, functions, pointers, and arrays. Standard libraries and programming tools. Emphasis on programming projects.

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) (CAN C SCI 4)

40. Computer Programming (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. (3 lecture, 2 lab hours)

41. Introduction to Data Structures (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)

101. Computer Applications in the Sciences (3)
Prerequisite: intermediate algebra; calculus recommended. Introduction to computers with emphasis on microcomputers. Preparation, storage, and processing scientific data, documents, and illustrations; graphing, manipulating, and simple statistical analysis of data; computer-to-computer communications and file transfers; use of CSU network resources; introduction to computer languages. (2 lecture, 2 lab hours)

105T. Workshop on Computer Languages (1-3)
Prerequisite: C Sci 40 or permission of instructor. Workshops in the use of various high-level programming languages or other selected languages in areas of database, statistical computation, or operating systems.

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. Algorithms and Data Structures (3)
Prerequisites: C Sci 41, 60. 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 Finite Automata (3)
Prerequisites: C Sci 41, 60. Strings, languages, and fundamental proof techniques. Regular expression, regular grammar, regular languages, finite automata, their interrelationship, and their properties. Introduction to context-free languages.

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. Introduction to Operating Systems (3)
Prerequisites: C Sci 41 and C Sci 112 or ECE 118. Operating system history and services. File systems. Memory management. Process management -- concurrent processes, communication, semaphores, monitors, deadlocks. Resource management -- processor and disk scheduling. Security and protection mechanisms.

146. Systems Architecture (3)
Prerequisites: C Sci 113A, 144. An in-depth analysis of one or more operating systems -- system data structures, hardware architecture, shell and kernel functions, I/O routines, interrupt handling. Other topics may include parallel hardware architectures, performance analysis. (Spring semester)

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. Introduction to Software Engineering (3)
Prerequisite: C Sci 41. 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. (Spring semester)

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. Formal Languages and Automata (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. (Spring semester)

188. Introduction to Computability (3)
Prerequisite: C Sci 119. Introduction to computability, effective procedures, algorithms; Turing machines, recursive functions, capabilities and limitations of effective procedures, the halting problem, computable functions and decidability. (Fall semester)

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