Department of Computer Science
 
CS Home | CCLS Home | SFSU Home | Resources & Links | ACM | Contact
 
 

Search

Course Descriptions
Updated August 28, 2009
Undergraduate Courses

CSC 101 - Computers for Everyone
CSC 201 - Introduction to Computer Programming for Non-Majors
CSC 202 - .NET Programming with C#
CSC 203 - Java Programming
CSC 204 - Web Authoring
CSC 205 - Computer Game Design
CSC 206 - Python Programming
CSC 209 - See CSC 309
CSC 210 - Introduction to Computer Programming
CSC 211 - Introductory Software Lab

CSC 212 - Introduction to Software Development

CSC 213 - Fundamentals of Computer Science

CSC 215 - C Programming

CSC 217 - See CSC 317

CSC 271 - Introduction to ORACLE: SQL & PL/SQL

CSC 277 - Experimental Course Lower Division (see examples below)

CSC 305 - Social and Ethical Implications of Computing
CSC 309 - Computer Programming for Scientists and Engineers
CSC 310 - Assembly Language Programming and Introduction to Computer Organization
CSC 313 - Data Structures
CSC 317 - Introduction to Web Software Development
CSC 330 - Discrete Mathematical Structures
CSC 338 - Information Technology in a Global Society
CSC 413 - Software Development
CSC 415 - Operating Systems Principles
CSC 510 - Analysis of Algorithms I
CSC 520 - Theory of Computing
CSC 600 - Programming Language Design
CSC 615 - Unix Programming
CSC 620 - Natural Language Technologies
CSC 630 - Computer Graphics Systems Design
CSC 631 - Multiplayer Game Development
CSC 637 - Software Techniques for Computer Music
CSC 639 - Software Testing and Quality Assurance
CSC 640 - Software Engineering
CSC 641 - Computer Performance Evaluation
CSC 642 - Human Computer Interaction
CSC 644 - Computer Measurements
CSC 645 - Computer Networks
CSC 650 - Secure Networked Systems
CSC 651 - System Administration
CSC 656 - Computer Organization
CSC 658 - Programming Cafe
CSC 664 - Multimedia Systems
CSC 665 - Artificial Intelligence
CSC 667 - Internet Application Design and Development
CSC 668 - Advanced Object Oriented Software Design and Development
CSC 671 - Neural Networks
CSC 675 - Introduction to Database Systems
CSC 690 - Undergraduate Seminar
CSC 693 - Cooperative Education Program
CSC 694 - Cooperative Education
CSC 695 - Computing in the Community
CSC 697 - Senior Project in Computer Science
CSC 699 - Special Study

Graduate Courses

CSC 720 - Advanced Operating Systems

CSC 730 - Advanced Database Systems

CSC 737 - Software Techniques for Computer Music

CSC 745 - Computer Networks

CSC 775 - Introduction to Database Systems

CSC 810 - Analysis of Algorithms II

CSC 815 - Graph Theory Algorithms

CSC 820 - Advanced Natural Language Technologies
CSC 825 - Advanced Automata Theory
CSC 830 - Advanced Computer Graphics
CSC 831 - Multiplayer Game Development
CSC 835 - Distributed Systems
CSC 837 - Advanced Sound Synthesis
CSC 840 - Software Metrics and Quality Assurance
CSC 841 - Computer Performance Evaluation
CSC 842 - Human Computer Interaction
CSC 845 - Advanced Computer Networks
CSC 846 - Systems Architecture
CSC 848 - Advanced Software Engineering
CSC 849 - Information Retrieval
CSC 850 - Compiler Design
CSC 856 - Advanced Computer Architecture
CSC 857 - Bioinformatics Computing
CSC 858 - Biology for Scientists
CSC 864 - Multimedia Systems
CSC 865 - Artificial Intelligence
CSC 867 - Advanced Internet Application Design and Development
CSC 868 - Advanced Object Oriented Software Design and Development
CSC 869 - Data Mining
CSC 870 - Computational Discrete Geometry
CSC 871 - Neural Networks
CSC 872 - Pattern Analysis and Machine Intelligence
CSC 875 - Advanced Topic Database Design
CSC 878 - Advanced Object Oriented Programming
CSC 890 - Variable Topics - Hardware/Software Systems
CSC 890 - Writing for Computer Science and Engineering
CSC 893 - Supervised Industrial Research
CSC 895 - Applied Research Project
CSC 897 - Research
CSC 898 - Master's Thesis
CSC 899 - Special Study
Undergraduate Course Descriptions
Back to Undergraduate Program
 
Course
Units
CSC 101 Computers for Everyone
3

Prerequisites: None.

Comprehensive and basic overview of computers and their use for everyday tasks like information retrieval, Internet, writing, presentations, communication, Web publishing, e-commerce, entertainment, computation. No prior knowledge required.

 
 
 
CSC 201 Introduction to Computer Programming for Non-Majors
3

Prerequisites: Completion of General Education Quantitative Reasoning requirement with grade of C or above.

Introduction to a modern programming language. Algorithms and basic programming concepts. Programming assignments suitable for pre-calculus students. May not be taken for credit by Computer Science Majors.

 
 
CSC 202 .NET Programming with C#
3

Prerequisites: CSC 201 or CSC210 or BICS 263 or permission of the instructor.

Introduces students to .NET programming and the C# programming language. Topics covered include an overview of C#, Graphical User Interface (GUI) programming in Microsoft Windows, simple web services implementation, the implementation of simple WWW servers and browsers, and a full introduction to MS Visual Studio .NET.

 
   
CSC 203 Java Programming
3

Prerequisites: CSC 210 or consent of instructor.

The Java language and object oriented programming. The use of inheritance, polymorphishm, exception handling, and libraries; Java Applets and GUI Development using Swing.

 
  Back to Top
CSC 204 Web Authoring
3

Prerequisites: CSC 210 or consent of instructor.

Basic web authoring techniques and tools. Site design using popular applications. Technologies discussed include HTML, internet protocols, multi-media integration and scripting languages.

 
   
CSC 205 Computer Game Design
3

Prerequisites: MATH 70.

Theory and practice of computer game design. Technical aesthetic, cultural, and economic components of creating computer games. Graphics and art, physics, sound and music, genre analysis, and careers in the industry.

 
 
CSC 206 Python Programming
3

Prerequisites: CSC 210 or consent of instructor.

Python language programming, with basic principles of interpretative languages. The use of basic Python constructs and standard libraries (e.g. networking, regular expressions, GUI). Simple apps such as WWW, games.

 
Course Syllabus
 
CSC 210 Introduction to Computer Programming (in C++)
3

Prerequisites: a grade of C or better in MATH 226. CS majors must take CSC 212 concurrently or prior to CSC 210.

Introduction to a modern programming language. Design implementation, testing, debugging, maintenance and documentation of programs. Coverage of basic algorithms, programming concepts and data types (including simple types, arrays, structs and classes). Intro to concepts of object-oriented programming. Topics include both numerical and non-numerical problems. Required of Computer Science majors

Concurrent enrollment in CSC 211, Intro. Software Lab, is recommended.

Course Syllabus
  Back to Top
CSC 211 Introductory Software Lab
1

Prerequisite: Consent of instructor. Concurrent enrollment with 210 is recommended.

Hands on exercises in programming, including procedural, object oriented , C++ and Java programming. Students are expected to bring their own laptops.

Course Syllabus
   
CSC 212 Introduction to Software Development
2

Prerequisite: Consent of instructor.

Laboratory activities to supplement and amplify material covered in introductory programming classes. Introduction to SW and Program development in Unix/Linux, Windows and Mac. Usage of SW development tools. CR/NC only.

Concurrent enrollment in CSC 211, Intro. Software Lab, is recommended.

Course Syllabus
   
CSC 213 Fundamentals of Computer Science
(renumbered from 301 as of Fall 2003)
3

Prerequisites: a grade of C or better in MATH 227 and CSC 210, and passing grade in CSC 212. Transfer students may enroll in CSC 212 concurrently.

Fundamental algorithm concepts, computer organization, data structures and abstractions, programming methodologies, distributed and parallel computation, areas of application;artificial intelligence and database systems.

Concurrent enrollment in CSC 211, Intro. Software Lab, is recommended..

Course Syllabus
Back to Top
CSC 215 C Programming
3

Prerequisite: MATH 226 or consent of instructor.

Introduction to C programming covering all basic concepts, comparisons with C++, and team software development and performance issues. Homework and final project assignment.

 
CSC 271 Introduction to ORACLE: SQL & PL/SQL
3

Prerequisite: CSC 201, CSC 210, or any Programming Experience.

Oracle tools and methodologies to fulfill real-world business information requirements. Design and creation of database structures to store, retrieve, update, and display data in relational databases. (Also offered as BICS 277 and ENGR 277. Cannot be repeated under alternate prefix.) May not be used to satisfy major requirements.

  Back to Top
CSC 277 Experimental Course
3

Prerequisites: TBD - for each course being proposed it will be different.

TBD - Each course will be different.

 
 
CSC 305 Social and Ethical Implications of Computing
1

Prerequisites: a grade of C or better in CSC 210.

Privacy and security. Censorship and freedom of Internet use. Social issues related to cryptography and the use of Internet. Ethical issues in software development. Legal issues of intellectual property, copyright, public domain software, shareware, patents, licenses, trademarks and trade secrets.

 
   
CSC 309 Computer Programming for Scientists and Engineers
3

Prerequisites: MATH 226 or consent of instructor.

Procedural programming in C for scientific applications. Good programming practices, and basic numerical and nonnumerical algorithms for scientists and engineers.

 
 
 
CSC 310 Assembly Language Programming and Introduction to Computer Organization
3

Prerequisites: a grade of C or better in ENGR 356.

Data representation. Assembly language programming. Subroutine linkage. Machine language encoding. Interrupt/exception handling. CPU datapath and control design.

Course Syllabus
  Back to Top
CSC 313 Data Structures
3

Prerequisites: a grade of C or better in CSC 213 and CSC 330. CSC 330 may be taken concurrently.

Linear and non-linear data structures, including linked lists, stacks, queues, trees, tables and graphs. Dynamic memory allocation and deallocation. Design of algorithms and programs for creating and processing data structures

Course Syllabus
CSC 317 Introduction to Web Software Development
3

Prerequisite: CSC 201 or CSC 210 or consent of instructor.

Intro to development of Web apps: client, web server and back-end database. Installation of: Apache Web Server, PHP processor, MySQL database. Develop a simple e-commerce application.

 
 
CSC 330 Discrete Mathematical Structures for Computer Science
3

Prerequisites: grades of C or better in CSC 210 and MATH 227.

Review of set algebra, relations and functions. Permutations. Propositional logic. Proof techniques. Introduction to graph theory. Infinite sets. Applications to Computer Science.

 
   
CSC 338 Information Technology in a Global Society
3

Prerequisite: a grade of C or better in ENG 214.

Study of an increasingly interconnected technology and sharing of information in the 21st Century. The important role technology plays in the U.S. and the world. Exploration of the information age in several social contexts.
Cross listed with ISYS 338.

 
   
CSC 413 Software Development
3

Prerequisites: a grade of C or better in CSC 313 and CSC 330.

Design and development of modern software applications. Object-oriented techniques: encapsulation, inheritance, and polymorphism as mechanisms for data design and problem solution. Software design, debugging, testing, and UI design. Software maintenance. Software development tools. Course Fee Required.

Course Syllabus
  Back to Top
CSC 415 Operating Systems Principles
3

Prerequisites: a grade of C or better in CSC 310, CSC 313, MATH 324, and PHYS 230.

Survey operating system concepts such as concurrent processes, basic synchronization techniques, deadlock, memory management, file systems, security, networks, distributed processing. Course Fee Required.

Course Syllabus
 
CSC 510 Analysis of Algorithms I
3

Prerequisites: a grade of C or better in CSC 313, MATH 324 and MATH 325.

Detailed study of the basic notions of the design of algorithms and the underlying data structures. Several measures of complexity are introduced. Emphasis on the structure, complexity, and efficiency of algorithms. Examples are taken from numerical and non-numerical computations.

Course Syllabus
   
CSC 520 Theory of Computing
3

Prerequisites: a grade of C or better in CSC 213, CSC 330 and MATH 325.

Introduction to automata, formal languages, and the notion of computability. Sequential machines as language acceptors. Context free and context sensitive grammars. Computable and recursive functions, universal turing machines, introduction to unsolvable problems.

Course Syllabus
   
CSC 600 Programming Language Design
3

Prerequisites: a grade of C or better in CSC 413.

Design concepts for high-level programming languages. Comparative study of several languages and an introduction to grammars and parsing techniques. Course Fee Required.

Course Syllabus
Back to Top
CSC 615 Unix Programming
3

Prerequisites: a grade of C or better in CSC 415 or consent of instructor.

Programming in a UNIX environment. Topics include: regular expressions; utilities such as awk, sed, grep, csh, sh, ksh; system calls such as signals, sockets, POSIX IPC and POSIX threads; kernel internal structures. Course Fee Required.

 
Course Syllabus
   
CSC 620 Natural Language Technologies
3

Prerequisites: a grade of C or better in CSC 413.

Natural language parsing technology and grammars. Elements of computational semantics, discourse structure and generation. Survey of related topics such as information retrieval, question-aswering, machine translation, speech processing. Paired with CSC 820. Students who complete CSC 620 may not take CSC 820 later for credit. Extra fee rquired. Course Fee Required.

   
CSC 630 Computer Graphics Systems Design
3

Prerequisites: a grade of C or better in CSC 313 and MATH 325.

This course covers computer graphics systems design and display hardware architecture. An overview is given of device-independent graphics systems, two- and three- dimensional viewing pipelines, hidden line and surface removal algorithms, raster graphics techniques and color space models. Web page design and Flash exercises give an introduction to animation and multimedia. Programming with the OpenGL library affords the class a chance to design advanced animation programs in three-dimensions. Course Fee Required.

Course Syllabus
  Back to Top
CSC 631 Multiplayer Game Development
3

Prerequisites: a grade of C or better in CSC 413 or consent of instructor.

This course will teach technologies and algorithms to develop multiplayer game. Topics include real-time 3D graphics programming, data structures for occlusion and collision detection, particle engines, and network programming for multiplayer architecture. Students will learn the above topics by building a multiplayer game through 3 programming projects and a team term project. Students also need to study and present an advance topic related to game development.

Course Syllabus
   
CSC 637 Software Techniques for Computer Music
3

Prerequisites: a grade of C or better in CSC 413 or consent of instructor.

Algorithms and software design for digital audio and computer music. Analysis and synthesis techniques. Real-time control and interaction. (Formerly CSC 635.) Course Fee Required.

Course Syllabus
   
CSC 639 Software Testing and Quality Assurance
3

Prerequisite: a grade of C or better in CSC 413 or ISYS 367, or ISYS 368, or consent of instructor. Students are advised to take this class concurrently with CSC 640 and/or ISYS 663

Technical and managerial aspects of testing and quality assurance in software development with emphasis on practical projects. Tools for testing and QA. Performance evaluation, verification and validation of software. Managing and documenting software testing and QA activities in local and outsourced projects.
Cross listed with ISYS 639 and team taught with SFSU ISYS Department

Course Syllabus
   
CSC 640 Software Engineering
3

Prerequisites: a grade of C or better in CSC 413; and grade C or better in CSC 317 or CSC 667; or consent of instructor.

Practical methods and tools for SW Engineering, including organizational teamwork. Course is paired with CSC 848. Students who have completed CSC 848 may not take CSC 640 for credit. Course Fee Required.

Course Syllabus
   
CSC 641 Computer Performance Evaluation
3

Prerequisites: a grade of C or better in CSC 415 or consent of instructor.

Computer performance analysis probelms related to system design, selection, and tuning. Modeling using stochastic and operational queuing models. Workload characterization, design, and performance measurement methods. Design of simulation models for computer systems. Paired with CSC 841. Students who have completed CSC 641 may not take 841 later for credit. Course Fee Required.

Course Syllabus
Back to Top
CSC 642 Human Computer Interaction
3

Prerequisites: a grade of C or better in CSC 413 or consent of instructor.

The design, implementation, and evaluation of human/computer interfaces. Topics include interface devices, interface metaphors, interaction styles, User Centered Design, testing, and quality assessment. Course Fee Required.

Course Syllabus
   
CSC 644 Computer Measurements
3

Prerequisites: a grade of C or better in CSC 413 and CSC 415.

Software measurement and experimentation tools. Data collection and analysis. Web measurements. Benchmarking and design of benchmarks. Use of software monitors. Course Fee Required.

   
CSC 645 Computer Networks
3

Prerequisites: a grade of C or better in CSC 415.

Computer network design, evaluation and testing. Computer network standards and implementation. Hardware/software design and compatibility issues. Paired with CSC 745. Students who have completed CSC 645 may not later take CSC 745 for credit. Course Fee Required.

Course Syllabus
Back to Top
CSC 650 Secure Networked Systems
3

Prerequisites: a grade of C or above in CSC 310, CSC 313, Math 324, or consent of instructor.

Analysis, planning, construction and operation of secure networked computing systems with an emphasis placed on security for environments connected to the Internet, encryption, assets, risk, authentication, trust, controls, defense, routers, firewalls, law, ethics. Course Fee Required.

Course Syllabus
   
CSC 651 System Administration
3

Prerequisites: a grade of C or above in CSC 313 and Math 324 or consent of instructor.

User administration. Operating system installation, tuning, and control. Network administration. Security management. Performance tuning and management. Course Fee Required.

Course Syllabus
   
CSC 656 Computer Organization
3

Prerequisites: a grade of C or better in CSC 415 (may be taken concurrently) or consent of instructor.

Instruction set design. Piplelined datapath and control. Cache and memory system design. Input/output subsystems. Software/hardware interactions. Parallel processing. Course Fee Required.

Course Syllabus
 
CSC 658 Programming Cafe
3

Prerequisites: CSC 413 with grade C or better or consent of instructor.

Extensive programming practice to advance programming skills and processes; pair programming exercises; code review techniques and practice.

Course Syllabus
Back to Top
CSC 664 Multimedia Systems
3

Prerequisites: a grade of C or better in CSC 413

The focus of this course is to present comprehensive topics in multimedia, such as basics of image and video processing, compression, multimedia databases, standard, synchronization, formats in perspective of systems and algorithms. This course is paired with CSC 864. Students who completed CSC 864 may not take CSC 664 for credit. For graduate credit, survey and presentation of recent literatures is required. Course Fee Required.

Course Syllabus
   
CSC 665 Artificial Intelligence  
3

Prerequisites: a grade of C or better in CSC 413 or consent of instructor.

Computational methods for studying intelligence. Automated problem solving, heuristic search, planning, inference, natural language processing and machine learning. Paired with CSC 865. Students completing this courses may not take CSC 865 later for credit. Course Fee Required.

   
CSC 667 Internet Application Design and Development
3

Prerequisite: a grade of C or better in CSC 413 or consent of instructor.

The focus of this course is to teach the principles of the technologies that the Web is based upon. It will cover Client-Server architecture, Extensible Markup Language (XML), HyperText Transfer Protocol (HTTP), then client-side applications (JavaScript and Java Web Start/JNLP), programming languages for server-side applications (Python, Java Server Pages and Servlets), and advanced techniques and topics on the WWW. Course Fee Required.

Course Syllabus
Back to Top
CSC 668 Advanced Object Oriented Software Design and Development
3

Prerequisite: Senior or graduate standing, and at least a C grade in CSC 413, or consent of instructor.

Basic principles of object oriented analysis and design utilizing UML, advanced object oriented programming principles, design patterns, frameworks and toolkits; Agile software design processes. Development of a mid-size programming project working in teams. Paired with CSC 868. Students completing this course may not take CSC 868 later for credit. Course Fee Required.

Course Syllabus
   
CSC 671 Neural Networks
3

Prerequisite: a grade of C or better in CSC 413.

Analysis of artificial neural networks. Selected applications from: associative memories, learning, search, data bases, fuzzy set techniques, pattern recognition and adaptive processing. Paired with CSC 871. Students completing this course may not take CSC 871 later for credit. Course Fee Required.

   
CSC 675 Introduction to Database Systems
3

Prerequisite: a grade of C or better in CSC 413.

Relational query languages. Semantic data models. Logical and physical database design. Privacy Issues. Implementation techniques (catalogs, query optimization, concurrency control, security, and integrity enforcement). Paired with CSC 775. Students completing this course may not take CSC 775 later for credit. Course Fee Required.

Course Syllabus
Back to Top
CSC 690 Undergraduate Seminar
3

Prerequisite: consent of instructor.

Topic to be specified in the Class Schedule. This course is used from time to time to present subjects not covered in the regular Computer Science curriculum. May be repeated for credit as topics vary. Course Fee Required.

   
CSC 693 Cooperative Education
6 or 12

Prerequisite: a U 293 or consent of instructor.

Units do not count toward the major. May be repeated for a total of 24 units. Contact the Cooperative Education office for information. CR/NC grading only.

 
   
CSC 694 Cooperative Education
3 ,6,12

Prerequisite: consent of Computer Science Department.

A detailed report on projects undertaken in a business, government, or industrial position of at least one semester's duration. For students who wish to apply work experience to academic credit. Please compare to AU (All University) 693.

Back to Top
CSC 695 Computing in the Community
2

Prerequisite: junior or senior standing, computer experience, and consent of instructor.

Extensive fieldwork training Bay Area non-profit agencies in the use of computer tools such as conferencing and database systems. Development of user documentation. CR/NC grading only.

   
CSC 697 Senior Project in Computer Science
3

Prerequisite: a grade of C or better in CSC 415, CSC 510, or CSC 640, or consent of instructor.

A culminating experience in individual design, implementation, and professional documentation of a software product under close supervision of a faculty member.

   
CSC 699 Special Study
3

Prerequisite: departmental permission and consent of instructor.

An approved study proposal must be on file by the time of registration. Library and laboratory research projects. Final report must be approved by the instructor and filed with the department.

Back to Undergraduate Program
 
Graduate Course Descriptions
Back to Graduate Program
 
Course
Units
720 Advanced Operating Systems
3

Prerequisite: Satisfaction of English Level I or concurrent enrollment in SCI 614; and CSC 415 with a grade of B or better, or consent of instructor.

Advanced operating systems topics such as analysis of scheduling and memory management algorithms, use of concurrent languages for systems development and distributed systems. Term projects include design and implementation of major components of an operating system. Course Fee Required.

   
730 Advanced Database Systems
3

Prerequisite: a grade of C or better in CSC 413 and CSC 675.

Advanced course in Database Systems offering in depth coverage of key topics: Standard SQL, query optimization, concurrency control, crash recovery, authorization and integrity enforcement; and an introduction to object oriented, extensible, deductive and/or distributed database systems. Course Fee Required.

   
737 Software Techniques for Computer Music
3

Prerequisite: CSC 413 with grade of C or better, or consent of instructor.

Algorithms and software design for digital audio and computer music. Analysis and synthesis techniques. Real-time control and interaction. (Paired with CSC 737. Students who have completed CSC 737 may not take CSC 637 for credit.)

 
   
745 Computer Networks
3

Prerequisite: a grade of C or better in CSC 415.

Computer network design, evaluation and testing. Computer network standards and implementation. Hardware/software design and compatibility issues. Paried with CSC 645. Students who have completed CSC 645 may not take CSC 745 for credit. Course Fee Required.

 
Back to Top
775 Introduction to Database Systems
3

Prerequisite: a grade of C or above in CSC 413.

Relational query languages. Semantic data models. Logical and physical database design. Privacy issues. Implementation techniques (catalogs, query optimization, concurrency control, security and integrity enforcement). Paired with CSC 675. Students who have completed CSC 675 may not take CSC 775 for credit. Course Fee Required.

 
   
810 Analysis of Algorithms II 
3

Prerequisite: Pass GET or enrolled in SCI 614, C or better in CSC 510

Review major design strategies. Theory of NP-Completeness. Approximation algorithms. On-line algorithms. Parallel and Distributed algorithms. Algorithms for specific areas of interest. Course Fee Required.

 
   
815 Graph Theory Algorithms  
3

Prerequisite: graduate status or consent of instructor.

Selected topics from graph theory, matching theory, flows in networks and game playing programs. Emphasis in on algorithms. Correctness proofs and computational efficiency discussed. On game playing programs the emphasis is on the alpha-beta pruning algorithms and heuristics, and is illustrated by a completed game.

Back to Top
820 Advanced Natural Language Technologies
3

Prerequisite: a grade of C or better in CSC 413 or consent of instructor.

Natural language parsing technology and grammars. Elements of computational semantics, discourse structure and generation. Survey of related topics such as information retrieval, question-answering, machine translation, speech processing. Paired with CSC 620. Students who completed CSC 620 may not take CSC 820 for credit. Course Fee Required.

   
CSC 825 Advanced Automata Theory
3

Prerequisites: CSC 520 or equivalent

Advanced topics in theoretical computer science and their application to a broad range of areas including bioinformatics, compilers, data and image compression, natural language processing, networking and web applications. Course Fee Required.

 
   
830 Advanced Computer Graphics
3

Prerequisite: a grade of C or better in CSC 630 or consent of instructor.

Survey topics and prepare for research projects in Computer Graphics 2D/3D software development. Enhanced visual realism. Ray tracing. Research literature. Course Fee Required.

   
831 Multiplayer Game Development
3

Prerequisite: CSC 413 or consent of instructor.

Computer graphics and network characteristics of multiplayer games. Design and development of a game as a team project. Paired with CSC 631. Students who have completed 631 may not take 831 for credit.

 
   
835 Distributed Systems
3

Prerequisite: a grade C or better in CSC 415 or consent of instructor.

Introduction to the concepts and design of Distributed Systems. The course is accompanied by a term project using current middleware technologies. Course Fee Required.

Back to Top
837 Advanced Sound Synthesis
3

Prerequisite: a grade C or better in CSC 635 or 637, or consent of instructor.

Current algorithms and practices in sound synthesis and timbral control, for music, sound effects, and interactive environments. Design of real-time software synthesis systems. Course Fee Required.

   
840 Software Metrics and QA
3

Prerequisite: a grade of C or better in CSC 640 or consent of instructor.

Measurement and modeling in Software Engineering. Software performance evaluation methods. Techniques and tools for software quality assurance. Software quality standards. Design and use of software metric tools. Course Fee Required.

   
841 Computer Performance Evaluation  
3

Prerequisite: a grade of C or better in CSC 656 or consent of instructor.

Computer performance analysis problems related to system design, selection, and tuning. Modeling using stochastic and operational queuing models. Workload characterization, design, and performance measurement methods. Design of simulation models for computer systems. Paired with CSC 641. Students who completed CSC 641 may not take CSC 841 for credit. Course Fee Required.

 
   
842 Human Computer Interaction
3

Prerequisite: classified standing in graduate program.

Design, implementation, evaluation of human/computer interfaces. Topics include those covered in CSC 642; however, emphasis is placed on HCI with respect to culminating experience work. Course Fee Required.

  Back to Top
845 Advanced Computer Networks
3

Prerequisite: a grade of C or better in CSC 645, 720 or consent of instructor. MATH 250 strongly recommended.

Survey of current design and implementation techniques for development and analysis of high performance network protocols. Emphasis is on strategies appropriate for internet use (i.e. TCP/IP based). Course Fee Required.

   
CSC 846 Systems Architecture
3

Prerequisites: a grade of C or better in CSC 656, or consent of instructor.

Principles of computer systems architecture, with emphasis on hardware/software interactions for large applications and design for performance. Course Fee Required.

   
CSC 848 Advanced Software Engineering
3

Prerequisites:a grade of C or better in CSC 413; and grade C or better in CSC 317 or CSC 667; or consent of instructor.

Practical methods and tools for SW Engineering, including organizational teamwork. Course is paired with CSC 640. Students who have completed CSC 848 may not take CSC 640 for credit. Course Fee Required.

 
Back to Top
849 Information Retrieval
3

Prerequisite: CSC 848 or consent of instructor.

Software engineering methods and tools for representation, storage, organization of, and access to information items. Retrieval modeling and evaluation. Query languages. Searching Web and digital libraries. Course Fee Required.

Back to Top
850 Compiler Design
3

Prerequisite: C or better in CSC 413 and consent of instructor.

Techniques for design and implementation of compilers including lexical scanners, top down and bottom up parsers, precedence grammars, symbol table manipulation, LR (k) grammars, semantic routines, and code generators. Course Fee Required.

   
856 Advanced Computer Architecture
3

Prerequisite: Satisfaction of English Level I or concurrent enrollment in SCI 614; and, a grade of C or better in CSC 656 or consent of instructor.

Advanced pipeling. Instruction level parallelism. Advanced memory system design. Compiler techniques for performance. New technologies/application. Course Fee Required.

   
CSC 857 Bioinformatics Computing
3

Prerequisites: CSC 858 (Bio for CS) which may be taken concurrently, or consent of the instructor.

A broad range of topics in computational biology as practiced in life science industry and leading research organizations. Provides computational background required to participate in R&D. Course Fee Required.

Back to Top
CSC 858 Biology for Scientists
3

Prerequisites: Graduate student in College of Science and Engineering.

Basics of biological science relevant to studies in CSC, MATH, physical sciences, and ENGR. Do not need background in life sciences. Emphasis on macromolecules, genetics, genomics, development & systems biology.

   
CSC 864 Multimedia Systems
3

Prerequisites: a grade of C or better in CSC 413.

This course presents comprehensive topics in multimedia systems. This course is paired with CSC 664. Students who completed CSC 664 may not take CSC 864 for credit. For graduate credit, survey and presentation of recent literatures is required. See CSC 664 for more detail. Course Fee Required.

 
   
865 Artificial Intelligence
3

Prerequisite: CSC 413 or consent of instructor.

Computational methods for studying intelligence. Automated problem solving, heuristic search, planning, inference, natural language processing, and machine learning. Paired with CSC 665. Students who have completed CSC 665 may not take Csc 865 for credit. CSC 865 covers more advanced material, written assignments, and/or oral presentations.

   
867 Advanced Internet Application Design and Development
3

Prerequisite: CSC 413 with a grade of C or better or consent of instructor.

Fundamental technologies on which WWW is based. Paired with CSC 667. Students who have completed 667 may not take CSC 867 for credit.

 
Back to Top
868 Advanced Object Oriented Software Design and Development
3

Prerequisite: Senior or graduate standing, at least a grade C in CSC 413 or consent of instructor.

Basic principles of object oriented analysis and design utilizing UML, advanced object oriented programming principles, design patterns, frameworks and toolkits; Agile software design processes. Development of a mid-size programming project working in teams. Paired with CSC 868. Students completing this course may not take CSC 868 later for credit. Course Fee Required.

 
869 Data Mining
3

Prerequisite: A grade of C or better in CSC 510 and CSC 675; or consent of instructor

Knowledge discovery process; basic data mining concepts; key data mining algorithms, including association rule mining, classification, clustering and anomaly detection; and data mining applications and tools in a variety of domains, such as bioinformatics and web mining.

   
870 Computational Discrete Geometry
3

Prerequisite: CSC 210, CSC 330, MATH 325, or consent of instructor.

Comprehensive overview of basic topics in computational discrete geometry: generating functions, complexity theory, convex hull, nearest-neighbor problems, efficient algorthms, etc. Course Fee Required.

   
871 Neural Networks
3

Prerequisite: CSC 413.

Analysis of artificial neural networks. Selected applications from: associative memories, learning, search, data bases, fuzzy set techniques, pattern recognition and adaptive processing. Paired with CSC 671. Students who have completed CSC 671 may not take this course for credit. CSC 871 covers more advanced material, written assignments, and/or oral presentation than CSC 671. Course Fee Required.

   
872 Pattern Analysis and Machine Intelligence
3

Prerequisite: grades of C or better in CSC 510 and CSC 520 or consent of instructor.

Foundation of pattern analysis and machine intelligence. Artificial intelligence: agent, logic, search. Machine learning: Bayesian classification. Neural network: simulated annealing. Imaging: image segmentation, object recognition.

Course Syllabus
   
875 Advanced Topic Database Design  
3

Prerequisite: CSC 675 and consent of instructor. A good working knowledge of relational database applications development as well as standard systems implementation techniques (concurrency control, recovery, query optimiazation, etc.).

Presentation of a subject outside and beyond the regular database systems curriculum. Course may be repeated once as topics in database design vary.

Back to Top
878 Advanced Object Oriented Programming
3

Prerequisite: CSC 668/868 or consent of instructor.

Current topics in Object Oriented Programming will be considered. Sample topics include Object Oriented Analysis and Design, Design Patterns and Java environments (JDK, SWING, etc.). Students will study topics and develop applications applying the principles considered. Design reviews will be conducted in class to provide critical analyses in a group setting.

   
890 Graduate Seminar (Old Curriculum - no longer offered)
1

Prerequisite: Satisfaction of English Level I and consent of graduate instructor.

Topics to be specified in Class Schedule. Presentation of a subject outside the regular computer science curriculum particularly beyond the level of the regular courses.

   
890 Variable Topics - Hardware/Software Systems
3

Prerequisite: consent of instructor.

Topics to be specified in Class Schedule. Presentation of a subject outside the regular computer science curriculum particularly beyond the level of the regular courses. May be repeated for credit when topics vary.

Back to Top
890 Writing for Computer Science and Engineering
3

Prerequisite: Pass on GET or CR in SCI 614.

Writing for computer scientists/engineers: technical writing, reports, culminating experience reports, software requirements and spec, user interface text, error messaging, project communications, etc. (CR/NC, not repeatable, does not count towards degree)

   
893 Supervised Industrial Research
1

Prerequisite: consent of instructor.

Supervised computer science employment in software research and development area. Objectives are career development and occupational experience. May be repeated for a total of 3 units. Subsequently, may be repeated on CR/NC basis. Must be approved by graduate adviser.

   
895 Applied Research Project
3

Prerequisite: CSC 720, 810 856, plus two other courses as approved by graduate adviser.

Graduate Approved Program and Proposal for Culminating Experience Requirement forms must be approved by the Graduate Division before registration.

Back to Top
897 Research
3-6

Prerequisite: consent of Computer Science Department.

Independent and original investigation under supervision of a faculty member.

   
898 Master's Thesis
3

Prerequisite: consent of program and advancement to candidacy for the Master of Science in Computer Science.

Graduate Approved Program and Proposal for Culminating Experience Requirement forms must be on file in the Graduate Studies Office before registration.

   
899 Special Study
1-3 

Prerequisite: approval of the department and the instructor.

Special study of a particular problem under the direction of a faculty member. The student must present a written, detailed report of the work accomplished to the staff of the department.

Back to Graduate Program
webteam | OC License