Computer Science, B.S.

Department

Department of Computer Science

Ming Li, Chair
Science II Building, Room C255
559.278.4373
www.fresnostate.edu/csm/csci

Degrees and Programs Offered

BS in Computer Science, B.S.
MN in Computer Science, Minor
MS in Computer Science, M.S.

Computer science is applied reasoning using both art and science: It requires the ability to communicate ideas through a combination of language and powerful technology. It is concerned with the interaction of humans and computers, as well as the application of computers to a myriad of specialized problems.

Program Description

The goal of the Department of Computer Science is to offer programs to a diverse audience: (1) students interested primarily in computing, (2) students interested primarily in applying computing to some other field of study, and (3) students who wish to include computing as part of their general education.

Facilities

Students and faculty have access to a networked environment of UNIX workstations (Sun Microsystems and Linux systems) and microcomputer laboratories of PCs. These systems are connected to campus and international networks.

Courses

Computer Science

CSCI 1. Critical Thinking and Computer Science

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. G.E. Foundation A3.

Units: 3
Course Typically Offered: Fall, Spring
GE Area: A3

CSCI 5. Computer and Applications

An introduction to the computer: tools, applications, and graphics. Overview of the components of computer systems; discussion on software systems, electronic mail, influence of computers on society and the future of computing; extensive hands-on experience with application tools and programming. PC (Windows) environment. CR/NC grading only. (2 lecture, 2 lab hours)

Units: 3
Course Typically Offered: Fall, Spring

CSCI 30. Introduction to the Internet

Topics include email, web browsers, searching, evaluation of web resources, HTML, web-page design, encryption, basic network communication. Special emphasis on the underlying technologies. (2 lecture (1 traditional/1 on-line), 2 lab hours)

Units: 3

CSCI 40. Introduction to Programming and Problem Solving

Prerequisites: Students must take the ELM exam; students who do not pass the exam must record a grade of C or better in a college-taught intermediate algebra course; trigonometry. Introduction to problem solving, algorithm development, procedural and data abstraction; program design, coding, debugging, testing and documentation; a high-level programming language. (3 lecture, 2 lab hours)

Units: 4
Course Typically Offered: Fall, Spring

CSCI 41. Introduction to Data Structures

Prerequisite: CSCI 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)

Units: 4
Course Typically Offered: Fall, Spring

CSCI 60. Foundations of Computer Science

Prerequisites: CSCI 40 (may be taken concurrently). Abstraction, iteration, induction, recursion, complexity of programs, data models, and logic. (3 lecture 2 lab hours)

Units: 4
Course Typically Offered: Fall, Spring

CSCI 100. Introduction to Computational Science

Prerequisites: G.E. Foundation and Breadth Area B. Fundamental concepts of computational science, computational modeling, computer simulations, and scientific applications. Topics include system-dynamics models, cellular-automaton simulations, computational and modeling tools, scientific visualization, high-performance computing. G.E. Integration IB.

Units: 3
GE Area: IB

CSCI 101. Computational Foundations for Bioinformatics

Prerequisites: CSCI 1, BIOL 102. Computational approaches to problems in molecular biology. Algorithms, heuristics, strings, graphs. Sequence comparison, mulitple alignment. Selected topics such as scripting, visual programming, laboratory workflow, databases, and queries. (2 lecture, 2 lab hours). (Formerly computer applications in the sciences).

Units: 3

CSCI 105T. Intro Programming Workshop

To be taken in conjunction with CSCI 40. Develops computational thinking, supplements programming instruction.

Units: 1

CSCI 112. Introduction to Computer Systems

Prerequisite: CSCI 41, CSCI 60. Computer arithmetic. Von Neumann architecture. Instruction sets, data types, formats, addressing. Register and ALU organization. Memory hierarchy. I/O Bus organization. Study of one or more assembly languages. Basics of implementation of higher-level languages. (3 lecture, 2 lab hours)

Units: 4
Course Typically Offered: Spring

CSCI 113. Introduction to Computer Organization

Prerequisite: CSCI 41. Fundamental issues of computer design at register-transfer level. Logical design of basic combinational and sequential modules. Organization and design of major functional blocks: ALU, CPU, memory, cache, input/output, hard-wired and microprogrammed control. Simulation of computer organization. INtroduction to high performance superscalar computer organization. (3 lecture, 2 lab hours)

Units: 4
Course Typically Offered: Fall

CSCI 115. Algorithms and Data Structures

Prerequisites: CSCI 41, CSCI 60, MATH 75. 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. (3 lecture 2 lab hours)

Units: 4
Course Typically Offered: Spring

CSCI 117. Structures of Programming Languages

Prerequisites: CSCI 41, and CSCI 60. 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)

Units: 4
Course Typically Offered: Fall

CSCI 119. Introduction to Finite Automata

Prerequisites: CSCI 41, CSCI 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. (3 lecture 2 lab hours)

Units: 4
Course Typically Offered: Fall

CSCI 124. Introduction to File Processing

Prerequisite: CSCI 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.

Units: 3

CSCI 126. Database Systems

Prerequisites: CSCI 124. Database concepts; hierarchical and relational network models; object-oriented data models. Data normalization, data description languages, data manipulation languages, and query design.

Units: 3
Course Typically Offered: Spring

CSCI 130. Web Programming

Prerequisites: CSCI 115. Programming for the World Wide Web. Web servers and clients, Internet and Web protocols, and mark-up languages. Client side scripting, including both gateway and filter-based approaches. (2 lecture, 2 lab hours). (Formerly CSCI 191T).

Units: 3
Course Typically Offered: Spring

CSCI 134. Compiler Design

Prerequisites: CSCI 112, CSCI 115, CSCI 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.

Units: 3

CSCI 144. Introduction to Operating Systems

Prerequisites: CSCI 41, and CSCI 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. (3 lecture hours)

Units: 3
Course Typically Offered: Fall

CSCI 146. Systems Architecture

Prerequisites: CSCI 113, CSCI 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.

Units: 3

CSCI 148. Systems Programming

Prerequisites: CSCI 113, CSCI 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.

Units: 3

CSCI 150. Introduction to Software Engineering

Prerequisite: CSCI 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. (2 lecture, 3 lab hours)

Units: 3
Course Typically Offered: Fall

CSCI 152. Software Engineering

Prerequisite: CSCI 150. In-depth examination of techniques for specification, design, implementation, testing, and verification of software. Human-computer interfaces. Formal methods of software development. Use of software engineering tools for the development of substantial software projects. (2 lecture, 2 lab hours)

Units: 3
Course Typically Offered: Spring

CSCI 154. Simulation

Prerequisites: CSCI 41, CSCI 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.

Units: 3
Course Typically Offered: Fall

CSCI 156. Internetworking Systems and Protocols

Prerequisite: CSCI 144 or permission of instructor. Review of underlying network technologies. Application-level interconnections, network architectures, addressing, mapping abstract addresses to physical addresses, routing datagrams, error and control messages, protocal layering, gateways, subnets. Client-server interactions. Upper layers of protocol stacks. (2 lecture, 2 lab hours)

Units: 3
Course Typically Offered: Fall

CSCI 164. Artificial Intelligence Programming

Prerequisite: CSCI 117. Introduction to problem-solving methods from artificial intelligence. Production systems. Knowledge-based systems. Machine learning. Topics chosen from fuzzy logic, neural network models, genetic algorithms. Verification, validation, testing.

Units: 3

CSCI 166. Principles of Artificial Intelligence

Prerequisite: CSCI 164. Analysis of knowledge-based and neural models, including self-organization, sequential learning models, neurally inspired models of reasoning and perception. Integration of different paradigms.

Units: 3

CSCI 172. Computer Graphics

Prerequisites: MATH 76, CSCI 41, and (CSCI 112 or ECE 118). 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 transformation, graphics standards, modeling ,animation, VRML, and scientific visualization. (3 lecture hours)

Units: 3

CSCI 173. Advanced Computer Graphics

Prerequisite: CSCI 172. Visible surface algorithms, lighting and shading, textures, curves and surfaces, computer-aided design, advanced modeling techniques, solid modeling, advanced raster graphics architecture, advanced geometric and raster algorithms, user interface, ray tracing, animation techniques, and fractals. (2 lecture, 2 lab hours)

Units: 3

CSCI 174. Design and Analysis of Algorithms

Prerequisites: CSCI 115, CSCI 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 algorithm, graph algorithm, NP-complete problems.

Units: 3

CSCI 176. Parallel Processing

Prerequisites: CSCI 113, CSCI 144. Characteristics, and classification of computer systems. Notion and realization of parallelism. Pipeline design techniques. Vector processing. Array processing. Multiprocessing. Multiprocessing vs. multicomputers. Shared memory vs message-passing, problem solving and parallel programming. Architectural trends.

Units: 3

CSCI 177. Distributed Computer Systems

Prerequisites: CSCI 113, CSCI 144. Characteristics and design of distributed systems. Application and network interconnectivity. Enterprise computing. Distributed data and transaction management. Distributed operating systems. Distributed problem solving and programming.

Units: 3

CSCI 186. Formal Languages and Automata

Prerequisite: CSCI 119. Introduction to formal language theory. Context-free grammars, context-sensitive grammars, unrestricted grammars; properties of context-free languages, push-down automata.

Units: 3

CSCI 188. Introduction to Computability

Prerequisite: CSCI 119. Introduction to computability and complexity. Turing machines, recursive functions, reduction, undecidability, classes P and NP, and intractable problems.

Units: 3

CSCI 190. Independent Study

See Academic Placement -- [-LINK-]. Approved for SP grading.

Units: 1-3, Repeatable up to 6 units

CSCI 191T. Machine Learning

Prerequisite: CSCI 115. The introductory course on machine learning will give an overview of many concepts, techniques, and algorithms in machine learning ,covering topics such as Supervised Learning, Unsupervised Learning, Decision trees, Instance Based Learning, Bayesian Learning, Neural Networks, and Clustering. It will also provide understanding into how these techniques are being applied to critical industry problems in Data Mining and Data Analytics.

Units: 3

CSCI 194. Cooperative Education

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. CR/NC grading only.

Units: 1-4, Repeatable up to 8 units

CSCI 198. Project

Prerequisite: senior standing in computer science or permission of instructor and approved subject. See [-LINK-]. 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. Approved for RP grading.

Units: 3
Course Typically Offered: Fall, Spring

CSCI 200. Introduction to Research in Computer Science

Prerequisite: classified standing in computer science. Orientation to the graduate program, introduction to research methodology, and discussion of possible project and thesis topics.

Units: 1

CSCI 213. Computer Organization

Prerequisites: CSCI 112 and CSCI 113 or permission of instructor. Organization of memory, I/O, and processors. Computer busses. Microprogramming and instruction execution. Interrupts. Data communications.

Units: 3

CSCI 217. Programming Language Principles

Prerequisite: CSCI 117 or permission of instructor. Advanced topics in programming languages: concurrency, exceptions, types, procedures, execution models. Introduction to the formal specification of programming languages: syntax specification, semantic specification.

Units: 3

CSCI 226. Advanced Database Systems

Prerequisites: CSCI 126 and CSCI 144. Implementation of database systems on modern hardware systems. Operating system design issues, including buffering, page size, prefetching, etc. Query processing algorithms; design of crash recovery and concurrency contro

Units: 3

CSCI 230. Advanced Web Application Development

Prerequisite: CSCI 130 or permission of instructor. Application development for the World-Wide Web. Three-tier architecture; authentication, capability, and session management; versioning and open-source development. Case studies and project work. (Formerly CSCI 291T)

Units: 3

CSCI 244. Operating Systems

Prerequisite: CSCI 144. Operating system functions. Performance monitoring and fine-tuning. Network operating system design. Concurrency, analysis of deadlock. Selected topics from current research.

Units: 3

CSCI 246. Computer Architecture

Prerequisite: CSCI 144 or permission of instructor. Contemporary computer architectures. Pipelined, superscalar, shared and distributed memory, multicore and embedded systems. Memory hierarchy, computer arithmetic, interconnection networks. Selected topics from current research.

Units: 3

CSCI 250. Advanced Software Engineering

Prerequisite: CSCI 150 or permission of instructor. Theoretical and practical aspects of software engineering emphasizing requirements analysis, specification, design, coding, testing, correctness, maintenance, and management. Examination of reliability, performance, and software metrics.

Units: 3

CSCI 252. Software Development and Environments

Prerequisite: CSCI 150 or permission of instructor. Overview of advanced and state-of-the-practice software engineering methodologies and techniques for software development, software environments, software verification, software planning, or cost estimation. Selected topics from current research.

Units: 3

CSCI 253. Human-Computer Interaction

Software engineering approach to human-computer interaction. Design, evaluation, and implementation of user interfaces and experiences. Modeling, prototyping, inspection, and usability testing. Relationship of user interface characteristics to attention, errors, and efficiency.

Units: 3

CSCI 256. Wireless Communications and Mobile Computing

Review of basic wireless communication concepts, protocols, and architectures. Study of IEEE 802.11 based wireless LANs, wireless mobile ad hoc networks, wireless sensor networks, and wireless mesh networks. Mobile IP and cellular networks. (Formerly CSCI 291T)

Units: 3

CSCI 264. Artificial Intelligence

Prerequisite: CSCI 164 or ability to program in Lisp and Prolog. Software technology for artificial intelligence systems, including expert systems. Knowledge- based and rule-based systems. Explanation and learning. User-oriented interfaces.

Units: 3

CSCI 272. Computer Graphics

Prerequisite: CSCI 172 or permission of instructor. 3-D transformations, visible surface algorithms, shading, textures, curves and surfaces, computer-aided design, advanced modeling techniques, solid modeling, advanced raster graphics architecture, advanced geometric and raster algorithms, user interface, ray tracing, animation techniques, and fractals.

Units: 3

CSCI 274. Combinatorial Algorithms

Prerequisite: CSCI 174. Design and analysis of efficient algorithms for combinatorial problems. Network flow theory, matching theory, augmenting-path algorithms, branch-and-bound algorithms, data structure techniques for efficient implementation of combinatorial algorithms, analysis of data structures, application of data structural techniques to sorting, searching, and geometric problems.

Units: 3

CSCI 282. Theory of Computation

Prerequisite: CSCI 188 or permission of instructor. General models of computation, recursive functions, undecidable problems, propositional calculus, predicate calculus, complexity classes, NP-complete problems.

Units: 3

CSCI 284. Automata Theory

Prerequisite: CSCI 186 or permission of instructor. Formal Languages, abstract machines, algebraic approach to automata, term rewriting systems, formal power series, cryptography, parallel computation.

Units: 3

CSCI 290. Independent Study

Prerequisite: approval of department. See Academic Placement -- [-LINK-]. Approved for SP grading.

Units: 1-3, Repeatable up to 6 units

CSCI 291T. Seminar

Prerequisite: approval of instructor. Special topics in computer science of current interest and importance.

Units: 1-3, Repeatable up to 9 units

CSCI 291T. Bioinfomatics Computing

Prerequisites: CSCI 115, or permission of instructor. Computational and algorithmic approaches in bioinformatics. Heuristic/non-heuristic sequence alignment, suffix tree, genome alignment, motif finding, dene prediction, hidden Markov models. High-throughput sequencing data analysis methodologies and practices. Selected topics from current research.

Units: 3, Repeatable up to 9 units

CSCI 291T. Service Oriented Cloud Computing

This course offers a broader introduction that covers the concepts and technologies of Service Oriented Cloud Computing and programming models, and tools that support data/compute intensive scientific applications. A spectrum of topics may include Service Oriented Architecture (SOA), XML, SOAP, WSDL, BPEL, Web Services, Workflows, MapReduce, Virtualization, Hardoop, and some cloud systems (Amazon AWS, Microsoft Azure, Eucalyptus, FutureGrid, etc), as well as some cloud applications (Google Apps, Salesforce.com, etc).

Units: 3

CSCI 298. Research Project

Prerequisite: advancement to candidacy. See [-LINK-]. Independent investigation of an advanced topic as the culminating requirement for the master's degree. Approved for SP grading.

Units: 3

CSCI 298C. Project Continuation

Pre-requisite: Project CSCI 298. For continuous enrollment while completing the project. May enroll twice with department approval. Additional enrollments must be approved by the Dean of Graduate Studies.

Units: 0

CSCI 299. Master's Thesis

Prerequisite: advancement to candidacy. See [-LINK-]. Preparation, completion, and submission of an acceptable thesis for the master's degree. Approved for SP grading.

Units: 3-6

CSCI 299C. Thesis Continuation

Pre-requisite: Thesis CSCI 299. For continuous enrollment while completing the thesis. May enroll twice with department approval. Additional enrollments must be approved by the Dean of Graduate Studies.

Units: 0

Requirements

Bachelor of Science Degree - Computer Science Major Requirements

Undergraduate Program

The bachelor's degree in computer science prepares students for careers in the computing industry or for graduate study. Combined with a minor in another field of study, the bachelor's degree allows students to utilize their computing expertise in a variety of specialized fields. The core and computer science theory courses are excellent preparation for students who intend to pursue an advanced degree in computer science.

For the computer science major, the department offers courses that represent both the core of study considered essential to all aspects of computing and advanced study sequences in particular fields of interest. The core classes introduce all majors to the spectrum of thought represented in computing. The advanced sequences allow the individual student to pursue concentrated work within such areas as computer architecture, artificial intelligence, databases, compilers, operating systems, computer science theory, computer graphics, software engineering, programming languages, networking, distributed systems, and parallel processing. The department also offers topics courses to keep students informed of current advances and methods in computing.

In addition to courses designed for majors, the department offers courses intended to introduce computing to nonmajors. These courses will benefit any major who wishes to include computing in their undergraduate study.

Grade Requirements

All courses taken to fulfill major course requirements must be taken for a letter grade. All courses required as prerequisites for a course must be completed with a grade of C or better before registration will be permitted.

Administrative Academic Probation

A minimum Grade Point Average (GPA) of 2.0 must be maintained in all courses taken in the College of Science and Mathematics. Students who fail to maintain a 2.0 GPA in courses within their major may be placed on administrative academic probation. Failure to eliminate the grade point deficiency could result in disqualification from the College of Science and Mathematics.

Bachelor of Science Degree Requirements

Computer Science Major

Major requirements (59 units)
CSCI 40, 41, 60, 112, 113, 115, 117, 119, 144 (35 units)

Select seven of the following, including one of the sequences (21 units)
CSCI 124, 126, 130, 134, 146, 148, 150, 152S, 154, 156, 164, 166, 172, 173, 174, 176, 177, 186, 188, 191T (max total 6 units)

Approved sequences:
CSCI 124-126
CSCI 144-146 or 144-148
CSCI 150-152S
CSCI 156-ECE 146
CSCI 164-166
CSCI 172-173
CSCI 176-177
CSCI 186-188

CSCI 198 or complete an additional second course in one of the sequences above (3 units)

Additional requirements (10 units)
MATH 75, 76; PHYS 2A and 2B or PHYS 4A, 4AL, 4B, 4BL

General Education requirements (51 units)*

Total (120 units)

* This total indicates that 6 units from MATH 75 and PHYS 2A or PHYS 4A are being used to satisfy the General Education requirement of 51 units.

Note: Pass the Upper-Division Writing Exam (recommended to satisfy the upper-division writing skills graduation requirement).

Faculty

The faculty comes from a variety of areas including computer systems and architecture, theoretical computer science, programming languages, software engineering, computer graphics, distributed systems and parallel processing, neural networks, image processing, computer vision, pattern recognition, wireless communication and mobile computing, robot swarm communication, evolutionary computation, domain-specific languages, and real-time and embedded systems. They have in common a desire to provide a program that will give the student a broad range of experience in computer science as well as the depth of education that will be needed in the student's later career, whether professional or academic.

Name Degree Email Phone
Auernheimer, Brent J Doctor of Philosophy brent@csufresno.edu 559.278.2573
Li, Ming Doctor of Philosophy mingli@csufresno.edu 559.278.4792
Liu, Shih-Hsi Doctor of Philosophy shliu@csufresno.edu 559.278.4789
Lowe, Prudence M Master of Science plowe@csufresno.edu 559.278.7074
Park, Jin H Doctor of Philosophy jpark@csufresno.edu 559.278.4307
Ruby, David C Doctor of Philosophy druby@csufresno.edu
Seki, Shigeko Doctor of Philosophy seki@csufresno.edu 559.278.3026
Sutherland, Lawrence C lsutherland@csufresno.edu
Wilson, J T Doctor of Philosophy twilson@csufresno.edu 559.278.9138
Yeung, Henderson C Doctor of Philosophy hyeung@csufresno.edu 559.278.4638

Roadmap

B.S. in Computer Science

Year One

Fall

  • GE Area A3-Critical Thinking
  • Lower-Division Major Course:
  • GE Area B4-Quantitative Reasoning
  • GE Area A1-Oral Communication
  • GE Area A2-Written Communication

Spring

  • GE Area C1-Arts
  • GE Area C1-Arts - OR - C2-Humanities
  • Lower Division Major Course
  • Lower Division Major Course
  • Lower Division Major Course

Year Two

Fall

  • Upper-Division Major Course :
  • Upper-Division Major Course :
  • GE Area B1-Physical Science
  • GE Area B1-Physical Science
  • GE Area D1-American History

Spring

  • Upper-Division Major Course :
  • Upper-Division Major Course :
  • Lower-Division Major Course :
  • Lower-Division Major Course :
  • GE Area D2-American Government

Year Three

Fall

  • Upper-Division Major Course :
  • Upper-Division Major Course:
  • Computer Science Elective:
  • GE Area D3-Social Science
  • GE Area C2-Humanities

Spring

  • Computer Science Elective:
  • Computer Science Elective:
  • Computer Science Elective:
  • GE Area E1-Lifelong Understanding
  • GE Area IB-Physical Univ & Life Forms

Year Four

Fall

  • Computer Science Elective:
  • Computer Science Elective:
  • GE Area IC-Arts & Humanities
  • GE Area ID-Soc, Pol, Econ Inst & Beh, Hist

Spring

  • GUpper-Division Major Course:

  • OR
    *Additional Elective Course:
  • Computer Science Elective:
  • GE Area MI-Multicultural/ International

Careers

Student using laptop keyboard

For the computer science major, courses are offered that represent both the core of study considered essential to all aspects of computing and advanced study sequences in particular fields of interest. The core classes introduce all majors to the spectrum of thought represented in computing. The advanced sequences allow the individual student to pursue concentrated work within such areas as computer architecture, artificial intelligence, databases, compilers, operating systems, computer science theory, computer graphics, software engineering, programming languages, networking, distributed systems, and parallel processing. The department also offers topics courses to keep students informed of current advances and methods in computing.

In addition to courses designed for majors, the department offers courses intended to introduce computing to nonmajors. These courses will benefit any major who wishes to include computing in their undergraduate study.

Job Opportunities

Graduates of the Computer Science program find job opportunities in computer design, software engineering, systems analysis, database design, computer graphics, and technical programming, and in computer manufacturing and industries using high-technology applications.

What You Can Earn

  • Programmer I:  $56,323 (in our region)
  • Software Engineer I: $60,432 (in our region)
  • Application System Architect: $100,418 (in our region)

Source: HR reported data from salary.com as of December 2012

Interesting Classes You Might Take

  • Introduction to Programming and Problem Solving
  • Structures of Programming Languages
  • Web Programming
  • Artificial Intelligence Programming
  • Bioinformatics Computing
  • Service Oriented Cloud Computing
  • Wireless Communications and Mobile Computing
  • Basic Game Programming

What You Can Learn

  • Software Engineering: software processes and life cycle; design and implement quality software; systematics software testing; and real-world software development via service-learning
  • Programming methodology, program correctness
  • Programming for the world wide web, including web servers and clients, internet web protocols, and markup languages
  • Operating system history and services

About the College

The College of Science and Mathematics provides professional training at the undergraduate and graduate levels to serve as a foundation for a career in science or mathematics, to provide preprofessional training in preparation for careers in medicine, dentistry, pharmacy, veterinary medicine and other professions or for continued study at the graduate level.

College Contact Info

The office of the Dean is located in Science II, Room 301.
Telephone: (559) 278-3936

Department Contact Information

Department of Computer Science
2576 E. San Ramon MS ST 109
Fresno, CA 93740-8039

Department Office Location:
Science II, Room 255

Phone: (559) 278-4373 (278-HERE)
Fax: (559) 278-4197

email