Computer Information Systems Course Offerings

Please see the section on "Course Description Symbols and Terms" in the University Catalog for an explanation of course description terminology and symbols, the course numbering system, and course credit units. All courses are lecture and discussion and employ letter grading unless otherwise stated. Some prerequisites may be waived with faculty permission. Many syllabi are available on the Chico Web.

Introductory Programming
3.0 Fall

Programming for students not majoring in Computer Science or Engineering. This course introduces students to programming using an integrated graphical development environment. Event-driven, visual, and object-oriented programming concepts are presented. Projects include common business problems that require data entry, display of calculated results, report requests, conditional testing, arithmetic operations, array processing, data validation, searching, sorting, reading and writing to files, and database applications. 2.0 hours discussion, 2.0 hours activity. Formerly CSCI 110. (002298)

PCs and Peripherals
3.0 Spring

This course focuses on the hardware and software of the modern PC , currently available peripherals and upgrades, and the basics of networking. Included will be a survey of the pros and cons of different hardware choices for various PCs, peripherals, and networking options. 2.0 hours discussion, 2.0 hours activity. Formerly CSCI 323. (002337)

Information Systems Design
3.0 Fall

Prerequisites: CSCI 111 with a grade of C- or higher.

Systems analysis and design, and the role of Information Systems in organizations. Emphasis is on the project-team design approach. Operational criteria, system feasibility, requirements, and cost trade-offs. Integration of personnel, equipment, hardware, and software. Formerly CSCI 542. (002377)

Introduction to Databases
3.0 Spring

Prerequisites: CSCI 311 with a grade of C- or higher.

This course provides an introduction to the theory and methodology for database design and implementation. Topics may include a survey/lecture component as well as a project component. The survey component covers entity- relationship modeling, relational algebra and calculus theories, data definition and data manipulation languages such as SQL, file structures, transactions, concurrency control, recovery, tuning and optimization, and object-oriented databases. The project entails requirements definition, design, and implementation of a database application. Formerly CSCI 470. (002338)

Computer Security
3.0 Fall

Prerequisites: Any upper-division computer networking course.

This course provides a broad overview of some of the more technical aspects of Information Systems Security. The content is designed to prepare students for the Certified Information Systems Security Professional/Associate (CISSP/A) examination from the International Information Systems Security Certification Consortium (ISP2), including a discussion of each of the following topics: security management practices; access control systems; telecommunications and network security; cryptography; security architecture and models; operations security; applications and systems development; business continuity planning and disaster recovery planning; law, investigation, and ethics; and physical security. Formerly CSCI 448. (020232)

Advanced Computer Security
3.0 Spring

Prerequisites: CINS 448 with a grade of C- or higher.

This course provides advanced training in the engineering and management of information systems security, particularly those systems that play a role in U.S. national security, and is aimed at professionals who plan to work either as contractors or federal employees in the area of national security or defense. The course also prepares students for the Information Systems Security Engineering Professional (ISSEP) certification test prepared by the International Information Systems Security Certification Consortium (ISP2) in collaboration with the National Security Agency. Specific areas of concentration are systems security engineering; certification and accreditation (C&A); technical management; and U.S. Government Information Assurance (IA) regulations. Formerly CSCI 548. (020234)

Advanced Database Management Systems
3.0 Fall

Prerequisites: CINS 370 with a grade of C- or higher or MINS 235.

Course topics include database application programming using a high performance, high concurrency multi-user database management system. This course covers the SQL programming language including Data Definition Language, Data Manipulation Language, and Data Control Language. The course then focuses on a procedural database programming language including control structures, composite datatypes, explicit cursors, exception handling, and writing embedded SQL applications. 2.0 hours activity, 2.0 hours discussion. Formerly CSCI 570. (002381)

Advanced Database Architecture and Administration I
3.0 EvnSp

Prerequisites: CINS 370 with a grade of C- or higher.

Students install the latest release of a robust, scalable database system such as Oracle, and create and maintain a sample database. Topics covered include advanced database architecture, intro performance monitoring, network configuration, database security, user management, and backup/recovery techniques with powerful admin tools. Prepares for Oracle Certification. Formerly CSCI 574. (020614)

Database Administration II: Advanced Tuning and Recovery
3.0 EvnFa

Prerequisites: CINS 574 or faculty permission.

Students install database software components and create and administer their own example databases. Features hands-on diagnosis and recovery in diverse, complex scenarios using advanced backup and recovery tools. Proactive performance analysis and tuning of applications, storage structures and database processes. Prepares for Adv. Oracle Certification. Formerly CSCI 674. (002431)

Computer Science Course Offerings

Computer Literacy
3.0 Fa/Spr

Introduction to the computer for non-computer science students. History of the computer, hardware, software, and a variety of computer applications are considered. The social impact and future of computers for communication systems are discussed. An integrated software package for word processing, spreadsheets, databases, and presentation is used. 2.0 hours activity, 2.0 hours lecture. Special fee required; see the Class Schedule. (002279)

Introduction to Computer Science
3.0 Fa/Spr

Students who have had limited experience with computers should take CSCI 101 before CSCI 111. CSCI 101 provides an overview of the fundamentals of computer science. Number systems and data representation are introduced. An overview of hardware, including the control unit, memory, the ALU, and I/O is provided. Software is introduced with an overview of operating systems, programming languages, applications, and software tools. Students are exposed to common operating systems and applications. Student also design and implement several programs. 2.0 hours discussion, 2.0 hours activity. (002280)

Living With Technology
3.0 Fa/Spr

This course explores the impact of technology on our lives. Aspects of our complex technological society are investigated through study of the various forms technology takes, and readings in contemporary literature regarding the impact these technologies have on individuals. Students are encouraged to reflect on technology in their own lives through journaling, and to discourse with their peers on the benefits and harm to individuals, society, and humanity that modern technology presents. This is an approved General Education course. (020623)

Programming and Algorithms I
4.0 Fa/Spr

Prerequisites: At least one year of high school algebra and strong computer skills or CSCI 101.

A first-semester object-oriented programming course, providing an overview of computer systems and an introduction to problem solving, object-oriented software design, and programming. Coverage includes the software life cycle, as well as algorithms and their role in software design. Students are expected to design, implement, and test a number of programs. 2.0 hours activity, 3.0 hours lecture. (002281)

Programming Problem Session
1.0 Fa/Spr

Corequisites: CSCI 111.

This course supplements CSCI 111 with additional programming activities. It provides students with the opportunity for additional assistance in developing programming abilities. 2.0 hours activity. Credit/no credit grading only. (020718)

Introduction to UNIX/Linux
3.0 Fall

A comprehensive introduction to using the UNIX/Linux operating system and the Windows based Cygwin Linux emulator. The course includes hands-on experience with commands, files, and tools. Topics include basic UNIX/Linux commands, filename expansion, command history, command editing, using the UNIX file system (files, file protection, directories), I/O redirection, network utilities, text utilities (editors, office tools), managing processes, pipes, regular expressions, basic shell programming, and advanced utilities (sed, grep, awk). 2.0 hours discussion, 2.0 hours activity. (002302)

Programming and Algorithms II
4.0 Fa/Spr

Prerequisites: CSCI 111 or EECE 135 with a grade of C- or higher. Note: The highlighted is different from what appears in the printed catalog. What is displayed is current and correct.

A second semester object-oriented programming course in computer science that emphasizes problem solving. This course continues the study of software specification, design, implementation, and debugging techniques while introducing abstract data types, fundamental data structures and associated algorithms. Coverage includes dynamic memory, file I/O, linked lists, stacks, queues, trees, recursion, and an introduction to the complexity of algorithms. Students are expected to design, implement, test, and analyze a number of programs. 3.0 hours lecture, 2.0 hours activity. Formerly CSCI 112. (002282)

Programming Problem Session
1.0 Fa/Spr

Corequisites: CSCI 211

This course supplements CSCI 211 with additional programming activities. It provides students with the opportunity for additional assistance in developing programming abilities. 2.0 hours activity. Credit/no credit grading only. (020719)

Assembly Language Programming
3.0 Note: The highlighted is different from what appears in the printed catalog. What is displayed is current and correct. Fa/Spr

Prerequisites: CSCI 111 or EECE 135 with a grade of C- or better. Note: The highlighted is different from what appears in the printed catalog. What is displayed is current and correct.

Topics include number systems and their rules for arithmetic; basic central processing unit (CPU) organization concepts such as registers, data paths, the arithmetic and logic unit (ALU) and the interface to random access memory (RAM); instruction formats, addressing modes and their uses with a variety of data structures; and parameter passing techniques including the use of a stack frame. The use of good programming methodologies to develop and document algorithms at the assembly language level is emphasized. 3.0 hours lecture, 2.0 hours activity. (002290)

Programming Problem Session
1.0 Fa/Spr

Corequisites: CSCI 221.

This course supplements CSCI 221 with additional programming activities. It provides students with the opportunity for additional assistance in developing programming abilities. 2.0 hours activity. Credit/no credit grading only. (020720)

Computer's Impact on Society
3.0 Fa/Spr

Prerequisites: ENGL 130 (or its equivalent) with a grade of C- or higher; Junior standing.

Impact of computers and high-tech systems on people, institutions, organizations, and environment. Examines the following: law, medicine, education, government, data banks, privacy, computer security, changing work, automation, robots, expert systems, AI, social responsibility, ethics, war, conflict resolution. Includes weekly reading, midterm, and final writing projects. Weekly lectures, discussions, films, and writing. No programming. This is a writing proficiency, WP, course; a grade of C- or better certifies writing proficiency for majors. This is an approved General Education course. (002309)

Algorithms and Data Structures
4.0 Fa/Spr

Prerequisites: CSCI 211 with a grade of C- or higher; MATH 217 recommended.

This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms. Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms. Data structure and algorithm combinations will be studied and analyzed along with their relative merits using both mathematical and empirical measurements. The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development. Students will be required to design, implement, test, and analyze their programs in at least one object-oriented language. 2.0 hours activity, 3.0 hours lecture. (002325)

Programming Problem Session
1.0 Fa/Spr

Corequisites: CSCI 311.

This course supplements CSCI 311 with additional programming activities. It provides students with the opportunity for additional assistance in developing programming abilities. 2.0 hours activity. Credit/no credit grading only. (020721)

Mind in the Machine - Honors
3.0 Spring

Prerequisites: Acceptance into the Honors Program, faculty permission.

An Honors seminar that explores the psychological, philosophical, social, biological, and technical aspects of machine "minds." Explores core issues within a subset of the disciplines that comprise the cognitive sciences, including artificial intelligence, philosophy, and psychology. Readings and discussions focus on theories of artificial intelligence and classic themes in human cognition and philosophy, such as determinism, consciousness, free-will, and the mind-body problem. The course focuses on increasing one's capability to express beliefs and evaluate arguments concerning various issues. This is an approved General Education course. This course is also offered as PSYC 332H. (002311)

Programming Languages
3.0 Fall

Prerequisites: CSCI 211 with a grade of C- or higher.

An investigation into the structure and syntax of current programming languages, including binding, scoping, data types, transfer-of-control structures, subprograms, abstract data types, object-oriented programming, and logical and functional programming. (002323)

Linear Programming Applications
4.0 EvnFa

Prerequisites: CSCI 311 with a grade of C- or higher.

Mathematical optimization and managerial decision techniques. Simplex method with applications, transportation problems, assignment problems, integer programming, network algorithms, and inventory models. 2.0 hours activity, 3.0 hours discussion. (002331)

Computer Architecture
3.0 Fall

Prerequisites: CSCI 221 with a grade of C- or higher.

The course introduces basic digital logic design techniques and integrates the topics of assembly language programming, computer organization, and computer design. Topics include the design of the arithmetic and logic unit (ALU), hardware multiplication and division, multiple clock cycle implementations, pipelined implementations, hazard detection and forwarding, design of a memory hierarchy, system busses and the design of a direct memory access (DMA) controller. (002336)

Operating Systems
4.0 Spring

Prerequisites: CSCI 311 with a grade of C- or higher.

Operating system fundamentals, including history, process and thread management, concurrency with semaphores and monitors, deadlocks, storage management, file systems, I/O, and distributed systems. 2.0 hours activity, 3.0 hours discussion. (002328)

Shell Programming
3.0 Spring

Prerequisites: Grade of C- or higher in either CSCI 144 or CSCI 211.

Shell programming provides an easy means to perform a wide range of text/data manipulation, system administration, network administration, and software development tasks in the UNIX, Linux, and Windows environments. This course provides an introduction to shell programming and the types of problems for which it is well suited. Topics include regular expressions, advanced UNIX/Linux utilities, the Bash scripting language, and the Perl programming language. Students solve a variety of tasks using UNIX/Linux utilities, Bash Script, and Perl. This course is recommended for students pursing careers in software development, information technology, and information systems. 2.0 hours discussion, 2.0 hours activity. (002330)

Introduction to Computer Networks and Network Management
3.0 Fall

Prerequisites: Grade of C- or higher in either CINS 220 or CSCI 221.

This course is an introduction to basic networking technologies and network management concepts, including major network operating systems, communication protocols, and the supporting network hardware and software. The course emphasizes the hand-on experience of network management in a laboratory environment. 2.0 hours activity, 2.0 hours discussion. (002340)

Numerical Methods Programming
4.0 OddFa

Prerequisites: CSCI 311 with a grade of C- or higher.

Scientific programming methods, solution of simultaneous linear and non-linear equations, iterative techniques, matrix methods, error analysis, development of specific and general algorithms. 3.0 hours discussion, 2.0 hours activity. (002332)

Machines, Brains, and Minds
3.0 Fa/Spr

Prerequisites: Junior standing, faculty permission.

An examination of the emergence of artificial mind in machines, with special attention to related issues in the philosophy of mind and cognitive science. This is an approved General Education course. This course is also offered as PHIL 364. (002312)

Language, Intelligence, and Computation
3.0 Spring

This course presents a practically based treatment of artificial intelligence, and a general introduction of technical issues associated with the development of intelligent systems. The course addresses issues of knowledge representation and natural language processing in particular, from a computational perspective. Students write programs to perform simple analyses of natural language and logical reasoning. Students also explore the limits of computation, using practical and theoretical approaches. 2.0 hours lecture, 2.0 hours activity. This is an approved General Education course. (002313)

Industry Internship
1.0-3.0 Fa/Spr

Prerequisites: CSCI 311 with a grade of C- or higher, faculty permission.

This internship is offered for 1.0-3.0 units. Students must register directly with a supervising faculty member. You may take this course more than once for a maximum of 15.0 units. Credit/no credit grading only. (002342)

Special Problems
1.0-3.0 Fa/Spr

Prerequisites: Faculty permission.

This course is a special topic offered for 1.0-3.0 units. You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the department chair. You may take this course more than once for a maximum of 6.0 units. Credit/no credit grading only. (002351)

Computer Science Activity
1.0 Inquire

Prerequisites: Membership in a Computer Science student professional organization

Co-curricular activity associated with one or more student professional organizations. Examples include collegiate competitions, such as the ACM Programming Contest, and service projects. Substantial participation is required (approximately 30 hours minimum). 3.0 hours supervision. You may take this course more than once for a maximum of 3.0 units. Credit/no credit grading only. (020713)

Software Engineering
3.0 Fall

Prerequisites: CSCI 311 or EECE 337, ENGL 130 (or its equivalent) with a grade of C- or higher. Note: The highlighted is different from what appears in the printed catalog. What is displayed is current and correct.

An overview of software engineering principles and practice. Topics include: traditional software engineering methodologies, agile software engineering methodologies, requirements engineering, software design, risk analysis, quality assurance, testing, group dynamics, communication, and project planning/management. Students work in groups to design and implement a semester long software project. 2.0 hours discussion, 2.0 hours activity. Formerly CSCI 330. (002310)

Software Engineering Tools
3.0 Spring

Prerequisites: CSCI 430 with a grade of C- or higher.

An in depth look at software development tools and software engineering methodology. Topics include: agile software development, version control, static and dynamic code analysis, bug tracking, debugging, and build management. Students work in groups on a semester long project to understand and modify and existing large open source product. An agile software engineering methodology is used to manage the modification project. 2.0 hours activity, 2.0 hours discussion. (020615)

Fundamental UNIX System Administration
3.0 Fall

Prerequisites: CSCI 344 with a grade of C- or higher.

This course guides students through the fundamental responsibilities of UNIX system administration. Topics include file system monitoring, file and directory archiving, user account management, shutdown and rebooting sequences, system backups, system log responsibilities, and basic system security. Projects focus on the creation of shell scripts to automate system administration tasks. 2.0 hours discussion, 2.0 hours activity. (002372)

Web Programming Fundamentals
3.0 Fall

Prerequisites: CINS 370 with a grade of C- or higher.

This course is a comprehensive introduction to the major technologies used in the construction of interactive, client-server Web sites. Emphasis is placed on the protocols and standards used for exchanging data between the client and server programs. Both client and server side implementation methods are discussed using programming and scripting languages for the creation of dynamic Web pages. The use of direct client-to-server network communication, performance implications for implementation technologies, and techniques for increasing Web site security are discussed. (002368)

Directed Programming Experience
3.0 Fa/Spr

Prerequisites: CSCI 311 with a grade of C- or higher, Senior standing.

This capstone course provides a culminating activity in computer science. Students will work independently to specify, design, develop, test, and document a complete software application under faculty supervision. Students present status reports at weekly meetings, and present their finished project at the end of the semester. (002343)

Topics in Computer Science
1.0-3.0 Inquire

This course is a special topic offered for 1.0-3.0 units. Exploration of selected topics in Computer Science. Consult semester schedules for specific listings. Standard letter grading only. (002389)

Honors Research Project/Thesis
3.0 Fa/Spr

Prerequisites: Open only to juniors and seniors in the major.

Open by invitation to computer science majors with a GPA of 3.5 or higher in the major. This Honors in the Major course focuses on the development of a creative research project in computer science, its presentation, discussion of relevant research materials, and the reporting of findings. 9.0 hours supervision. (002391)

Object-Oriented Programming
3.0 Fall

Prerequisites: CSCI 311 with a grade of C- or higher.

This class focuses on object-oriented programming using large class libraries and interactive programming environments. The course centers on good object-oriented design and implementation by addressing these issues with examples throughout the semester. Students will experience the development environment and extensively use the library of at least one object-oriented programming language. Topics include the proper use of inheritance and model/view/controller distinctions, various issues concerning multithreaded systems, I/O, exception handling, and distributed computing. (002356)

Compiler Design
3.0 Spring

Prerequisites: CSCI 311 with a grade of C- or higher.

The elements of lexical, syntactical, and semantic analysis including finite and push-down automata, top-down and bottom-up parsing, error detection and recovery, semantic actions and code generation. (002369)

Object-Oriented Analysis & Design
3.0 OddSp

Prerequisites: Object-oriented programming experience.

This class is complementary to classes in Object-Oriented Programming (OOP). The focus will be on object-orientation in the earlier phases of the software life cycle: object-oriented analysis (OOA), which creates models of the world based on objects and object-oriented design (OOD), which relates specifically to the design of software. The close relationship between OOA, OOD, and OOP will be examined. Use of the Unified Modeling Language (UML) and Design Patterns will be applied. (002355)

Systems Programming
3.0 EvnSp

Prerequisites: CSCI 340 with a grade of C- or higher.

A hands-on project course that examines the development of systems software. It provides an introduction to writing low level programs in the UNIX/Linux environment. Topics include using system calls, processes, threads, concurrency, process/thread synchronization, signals, and interprocess communication. The course includes several large programming projects which provide students solid experience in lower level programming. (002378)

Advanced Network Management
3.0 Spring

Prerequisites: CSCI 346 with a grade of C- or higher.

This course covers advanced network management concepts and implementations including a network operating system, workstation management, and domain administration. Coverage also includes TCP/IP administration and router/hub management. The course provides hands-on experience on network management in a laboratory environment. (002382)

Advanced Computer Networks
3.0 Fall

Prerequisites: CSCI 346 with grade of C- or higher.

This course provides hands-on experience on network infrastructure management for hubs, switches, and routers in a laboratory environment. (002383)

Theory of Computing
3.0 Spring

Prerequisites: CSCI 311 with a grade of C- or higher; Math 217.

An introduction to formal languages, grammars, and automata theory with unsolvable problems. (002371)

Computer Graphics Programming
3.0 Fall

Prerequisites: CSCI 311 with a grade of C- or higher.

This course covers algorithms and data structures in computer graphics. Topics include output primitives and their attributes, 2-D and 3-D geometric transformations and viewing, 3-D object modeling, parallel and perspective projections, visible surface detection, illumination models, and rendering algorithms. (002363)

Graphical User Interfaces
3.0 EvnFa

Prerequisites: CSCI 311 with a grade of C- or higher.

Implementation of graphical user interfaces using object-oriented programming. Topics include the model-view-controller design pattern, use of a variety of user interface components, event handling, customization, graphics contexts, and layout. (002365)

Digital Image Processing
3.0 OddFa

Prerequisites: CSCI 311 with a grade of C- or higher.

Explores the field of digital image processing, providing an overview of its many areas of application and delving into the details of a select set of algorithms. Topics include imaging, digital images, basic image manipulation, grey level and color enhancement, neighborhood operations, the frequency domain, geometric operations, segmentation, morphological image processing, and image compression. Formerly CSCI 668. (002407)

Advanced Computer Graphics
3.0 Spring

Prerequisites: CSCI 566 with a grade of C- or higher.

Advanced topics in computer graphics, including hierarchical models and scene graphics, texture and bump mapping, compositing, antialiasing, representation and rendering of curves and surfaces, physically based models and particle systems, fractals, and techniques used in scientific visualization. Formerly CSCI 666. (002406)

Artificial Intelligence
3.0 Fall

Prerequisites: CSCI 311 with a grade of C- or higher.

An introduction to the basic principles, techniques, and applications of Artificial Intelligence. Coverage includes knowledge representation, logic, inference, problem solving, search algorithms, game theory, perception, learning, planning, and agent design. Students will program with AI language tools. Additional areas may include expert systems, machine learning, natural language processing, and computer vision. (002360)

Expert Systems and Applications
3.0 Spring

Prerequisites: CSCI 211 with a grade of C- or higher.

The basic concepts and techniques of expert systems. Emphasis is on the reasoning behind expert system design, practical problem solving (comparisons and use of expert system shell implementations), and advanced problem solving techniques such as those employed in machine learning and knowledge acquisition. (002359)

Robotics and Machine Intelligence
3.0 Fall

Prerequisites: CSCI 211 and CSCI 221, both with a grade of C- or higher. Note: The highlighted is different from what appears in the printed catalog. What is displayed is current and correct.

This course introduces students to the field of robotics by emphasizing the task of endowing machines with intelligence. Topics include various case studies of robot architectures and algorithms that facilitate embodying a robot with behaviors that are traditionally associated with human cognition (e.g., perception, reasoning, intelligent navigation, vision, learning, etc.). Students conduct research and experiments with robotics hardware and software. 2.0 hours activity, 2.0 hours lecture. (002361)

Advanced Topics in Computer Science
3.0 Inquire

This course is a special topic offered for 1.0-3.0 units. Exploration of selected topics in Computer Science. Consult semester schedules for specific listings. Standard letter grading only. (020184)

Distributed Computing
3.0 Spring

Prerequisites: CSCI 511 and classified graduate standing.

This course focuses on distributed computing using the object-oriented paradigm, large class libraries, and the interactive programming environment. The course is designed to prepare the student to do commercial enterprise development. Topics may include object serialization, beans, multithreading, networking, remote objects, database connectivity, servlets, and client/server programming with enterprise and application servers. (002395)

Topics in Programming Language Theory
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in programming language theory as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002392)

Computer Architecture
3.0 Spring

Prerequisites: EECE 320 Note: The highlighted is different from what appears in the printed catalog. What is displayed is current and correct. and classified graduate standing.

Provides a thorough and fundamental treatment of the art of computer architecture. Topics include concepts of von Neumann architectures, methods of evaluating CPU performance, instruction-set design and examples, compiler issues, instruction pipelining, superscalar processors, methods for reduction of branch penalty, memory hierarchies, I/O systems, floating-point arithmetic, and current issues in parallel processing. (002436)

Topics in Computer Architecture
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in computer architecture as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002423)

Software Engineering
3.0 Fall

Prerequisites: CSCI 430 and classified graduate standing.

In-depth study and application of the planning, design, implementation, and management of complex software systems. Topics include requirements engineering, formal specifications, object-oriented analysis, design patterns, and peopleware. Teams of students will implement a large software project using a cutting edge software engineering approach. (002394)

Topics in Software Engineering
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in software engineering as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002396)

Operating Systems
3.0 Spring

Prerequisites: CSCI 340 and classified graduate standing.

In-depth study of operating systems concepts including results from recent research. Topics may include processes, threads, virtual memory, file systems, distributed computing, scheduling, protection, and communication protocols. Students may be required to implement operating system projects. (002430)

Topics in Networking
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in networking as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002413)

Design and Analysis of Algorithms
3.0 Fall

Prerequisites: CSCI 311, MATH 217, and classified graduate standing.

Algorithms from many areas of computer science will be analyzed. Topics include algorithm design techniques (such as divide-and-conquer, greedy algorithms, dynamic programming, and others), mathematical and empirical analysis of algorithms and NP-completeness. (002417)

Topics in Computer Theory
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in computer theory as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002419)

Topics in Computer Graphics
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in computer graphics as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002408)

Topics in Database Systems
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in database systems as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002435)

Topics in Artificial Intelligence
3.0 Inquire

Prerequisites: Classified graduate standing.

Further study of selected advanced topics in artificial intelligence as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. You may take this course more than once for a maximum of 12.0 units. (002402)

Research methods in Computer Science
3.0 Fa/Spr

Prerequisites: Candidate status.

This course interweaves three distinct themes (investigation, experimentation, and technical writing), that culminate in a comprehensive research project, presentation, and oral defense. First, the students are immersed into the research process within Computer Science. This includes an understanding of the role, ethics, and responsibility of researchers in Computer Science. The second focus is on rigorous design of experiments for the purpose of testing research hypothesis, simulations, and models, and interpreting the results of those experiments. Finally, proficiency in communication of scientific ideas and findings will be addressed, from intensive reading, critiques, technical writing and oral presentations. (020616)

Independent Study
1.0-6.0 Fa/Spr

Prerequisites: Classified graduate standing, faculty permission.

This course is an independent study offered for 1.0-6.0 units. You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the student's graduate advisory committee chair. You may take this course more than once for a maximum of 6.0 units. Credit/no credit grading only. (002451)

Seminar in Advanced Topics
3.0 Inquire

This course is a seminar offered for 1.0-3.0 units. Typical subjects in past semesters have included microprogramming theory, operating system development, software engineering principles, data communications, analysis of algorithms, and program optimization. Consult the Class Schedule for listing and prerequisites. 2.0 hours activity, 2.0 hours discussion. (002446)

Master's Project
3.0 Fa/Spr

Prerequisites: Candidate status.

You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the student's graduate advisory committee chair. Master's Project courses earn a Credit grade upon completion. (002461)

Master's Thesis
1.0-6.0 Fa/Spr

Prerequisites: Candidate status.

This course is offered for 1.0-6.0 units. You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the student's graduate advisory committee chair. Master's Thesis courses earn a Credit grade upon completion. You may take this course more than once for a maximum of 6.0 units. (002453)