Course Descriptions



You may need to download the current version of RealPlayer
in order to view the course previews.

 

 

CSCI 111 – Programming and Algorithms I in Java (3 units)
[Archived Web-based Course] [Preview]
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. If you are unsure if you meet the prerequisite for this course, please contact Dr. Anne Keuneke at 530-898-5998 or at amk@ecst.csuchico.edu prior to enrolling.

CSCI 112 – Programming and Algorithms II in C++ (3 units)
[Archived Web-based Course] [Preview]
Prerequisite: Grade of C- or better in in CSCI 111 (or EECE 135 for engineering majors).
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 will be expected to design, implement, test, and analyze a number of programs. For more information, please contact Dr. Renee Renner at 530-898-5419 or at renner@csuchico.edu prior to enrolling .

CSCI 221 – Assembly Language Programming (3 units)
[Archived Web-based Course] [Preview]
Prerequisite: CSCI 112
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. For more information, please contact Dr. Judy Challinger at 530-898-6357 or at jchallinger@csuchico.edu prior to enrolling.

CSCI 301 – Computer's Impact on Society (3 units)
Prerequisite: 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, and conflict resolution. Includes weekly reading, midterm, and final writing projects. No programming. This is an approved General Education course and is offered when requested by students. Contact Nancy Park at nepark@csuchico.edu or 530-898-6105 for more information.

CSCI 311 – Algorithms and Data Structures in Java (3 units)
[Archived Web-based Course]
Prerequisite: CSCI 112
The purpose of this course is to introduce students to object-oriented software design methodologies and implementation alternatives for various fundamental data structures and problems in computer science. In addition, due to the focus on object-oriented techniques and the capabilities Java provides, we will address newer problems such as multithreading in concurrent and distributed programming. We will study various data structure/algorithm combinations and analyze their relative advantages and disadvantages using both mathematical and empirical measurements. The Abstract Data Type (ADT) constructs of data abstraction and information hiding are emphasized throughout the course and are explicitly implemented for each data structure via Java objects.  If you are unsure if you meet the prerequisite for this course, please contact Dr. Anne Keuneke at 530-898-5998 or at amk@ecst.csuchico.edu prior to enrolling.

CSCI 311 -- Algorithms and Data Structures in C++ (3 units)
[Archived Web-based Course] [Preview]
Prerequisite: Grade of C- or better in CSCI 112
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. If you are unsure if you meet the prerequisite for this course, please contact Dr. Melody Stapleton at 530-898-5617 or at melody@ecst.csuchico.edu prior to enrolling.

CSCI 315 – Programming Languages (3 units)
[Archived Online Course] [Preview]
Prerequisite: CSCI 112
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 functional programming. In addition to these topics, this course provides an in-depth look at a modern language system: the Microsoft .NET Framework. The key features of the .NET Framework that will be covered include the Common Language Infrastructure (CLI), .Net Assemblies, .NET Metadata, Security, and the Common Language Runtime (CLR). We examine how these features provide programming language interoperability. The .NET Framework Class Library is explored, with a focus on the Base Class Library (BCL). Undergraduates should enroll in CSCI 315, and graduate students should enroll in CSCI 598. Please note that the course assignments for CSCI 598 will differ from those in CSCI 315. If you would like further information or are unsure if you meet the prerequisite for this course, please contact Dr. Judy Challinger at 530-898-6357 or at jchallinger@.csuchico.edu prior to enrolling.

CSCI 320 – Computer Architecture (3 units)
[Archived Online Course] [Preview]
Prerequisite: CSCI 221
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, cache consistency in multiprocessor systems, and implementation of a snooping cache. If you are unsure if you meet the prerequisites for this course, please contact Dr. Judith Challinger at 530-898-6357 or at jchallinger@csuchico.edu prior to enrolling.

CSCI 330 – Software Engineering (3 units)  
[Archived Web-based Course]
Prerequisites: CSCI 311, ENGL 130 (or its equivalent) with a grade of C- or higher.
Special problems in the development of large software systems. Software life cycle, requirements analysis, structural design, implementation, costing, standards, verification, and validation. A group project is required. This is a writing proficiency, WP, course; a grade of C- or better certifies writing proficiency for majors. If you are unsure if you meet the prerequisite for this course, please contact Dr. Len Fisk at 530-898-5980 or at lfisk@csuchico.edu prior to enrolling.

CSCI 340 – Operating Systems Programming (3 units)
[Archived Web-based Course]
Prerequisites: CSCI 311 and CSCI 320 .
Operating system fundamentals, including history, process and thread management, concurrency with semaphores and monitors, deadlocks, storage management, file systems, I/O, and distributed systems. If you are unsure if you meet the prerequisites for this course, please contact Dr. Robert Roggio at broggio2000@yahoo.com prior to enrolling.

CSCI 448 – Survey of Computer Security (3 units)
[Archived Web-based Course] 
Prerequisites: Any upper-division computer networks course or permission of the instructor.
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. If you are unsure if you meet the prerequisite for this course or have questions about course content, please contact Dr. Seung Bae Im at 530-898-5056 or at sim@ecst.csuchico.edu prior to enrolling.

CSCI 465 – Web Programming Fundamentals (3 units)
[Archived Web-based Course] 
Prerequisite: CSCI 311
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. Technologies utilized will include some of the following: XHTML and XML, Java, JavaScript, JSP, and Servelets, CGI and Perl, PHP and MySQL, C# and ASP.NET. Students will be expected to develop at least one complete dynamic Web application, in addition to smaller programming exercises. Questions regarding this course may be directed to Dr. Judith Challinger at 530-898-6357 or at judyc@ecst.csuchico.edu. View the course syllabus.

CSCI 470 – Database Management (3 units)
[Archived Web-based Course] [Preview]
Prerequisite: CSCI 112
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. If you are unsure you meet the prerequisites for this course, please contact Dr. Len Fisk at 530-898-5980 or at lfisk@csuchico.edu prior to enrolling.

CSCI 490 – Directed Programming Experience (1–3 units)
Prerequisites: CSCI 311 and faculty permission
This course is a special topic programming experience offered as for 1-3 units. You must register directly with a supervising faculty member. Directed experience in programming systems and applications, weekly conferences, limited to a maximum of 4 units during degree program. Projects may consist of from 1 to 10 students working on software development teams. You may take this course more than once for a maximum of 3.0 units. Credit/no credit grading only. Contact Nancy Park at nepark@csuchico.edu or at 530-898-6105 for more information.

CSCI 511 – Object-Oriented Programming & Implementations in Java (3 units)
[Archived Web-based Course] [Preview]
Prerequisites: CSCI 311] . Instructor strongly recommends CSCI 533 (Object-Oriented Analysis and Design).
This class focuses on object-oriented programming using the large class libraries and interactive programming environments provided in the Java Programming Language. Topics include both design considerations (e.g. model/view/controller architectures) and the programming constructs of user-interfaces, multi-threaded systems, I/O, database connectivity (JDBC), exception handling, and distributed computing (client/server programming with sockets). Note: this is not just a Java "intro". The labs are designed to focus on certain strengths (not basics) of Java. If you are unsure if you meet the prerequisite for this course, please contact Dr. Anne Keuneke at 530-898-5998 or at amk@ecst.csuchico.edu prior to enrolling.

CSCI 515 – Compiler Design (3 units)
[Archived Web-based Course] [Preview]
Prerequisites: CSCI 112
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.

CSCI 540 – Multi-User Operating Systems (3 units)   
[Archived Web-based Course] 
Prerequisites: CSCI 340 or permission of instructor.
An analysis of multi-user operating systems, to include an in-depth study of current techniques used by a specific multi-user OS.

CSCI 547 – Computer Networks (3 units)
[Archived Web-based Course] [Preview]
Prerequisites: CSCI 340
Covers the concepts, vocabulary, design issues, and techniques currently used in the area of computer networks. Topics include history and evolution, transmission media, interconnection topology, control methods, protocols, types of nodes, network interfaces, performance analysis, diagnosis and maintenance, taxonomy, bridges, and gateways. Case studies of existing state-of-the-art networks are included. If you are unsure you meet the prerequisites for this course, please contact Dr. Seung-Bae Im at 530-898-5056 or at sim@ecst.csuchico.edu prior to enrolling.

CSCI 550 – Theory of Computing (3 units)
[Archived Web-based Course] [Preview]
Prerequisites: MATH 317 (Discrete Mathematical Structures)
An introduction to formal languages, grammars, and automata theory with unsolvable problems. If you are unsure if you meet the prerequisite for this course, please contact Dr. Benjoe Juliano at 530-898-4619 or at juliano@ecst.csuchico.edu prior to enrolling.

CSCI 566 – Computer Graphics (3 units)
Prerequisites: CSCI 311
[Archived Web-based Course] [Preview]
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. If you are unsure if you meet the prerequisite for this course, please contact Dr. Judy Challinger at 530-898-6357or at jchallinger@csuchico.edu prior to enrolling.

CSCI 567 – Graphical User Interface Implementation (3 units)
Prerequisites: CSCI 311
[Archived Web-based Course] [Preview]
This course introduces the student to the implementation of graphical user interfaces using object-oriented programming. We will utilize the Java programming language and the Swing API. Learn to give your applets and applications a sophisticated graphical user interface! Previous knowledge of the Java language is not required, but at least 3 semesters of previous experience programming in an object-oriented language is expected. For more information, please contact Dr. Judy Challinger at 530-898-6357 or at jchallinger@csuchico.edu prior to enrolling. The course syllabus is available here: http://www.ecst.csuchico.edu/~judyc/0304S-csci233/syllabus.html.

CSCI 570 - Advanced Database Management Systems (3 units)
[Archived Web-based Course] Prerequisites: CSCI 470 [Formerly CSCI 273] or MINS 235 [Formerly MINS 018]. Course Description: 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.  If you are unsure if you meet the prerequisite for the course, please contact Dr. Stapleton at 530-898-5617 or at mjstapleton@csuchico.edu before enrolling.

CSCI 580 – Artificial Intelligence (3 units)
[Archived Web-based Course] [Preview] Prerequisite: Grade of C- or better in CSCI 311.
An introduction to the basic principles, techniques, and applications of Artificial Intelligence. Coverage includes knowledge representation, logic, inferencing, 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. For more information, please contact Dr. Renee Renner at 530-898-5419 or at renner@csuchico.edu.

CSCI 598 – Advanced Topics in Computer Science: Data Mining (3 Units)
[Archived Web-based Course]
Prerequisites: Classified graduate student standing in Computer Science.
Course Description: This course introduces the student to basic concepts, tasks, methods, and techniques in data mining; in particular, the course focuses on practical machine learning tools and techniques used in data mining. Students will develop an understanding of the data mining process and issues, learn various techniques for data mining, and apply the techniques in solving data mining problems using data mining tools and systems. Students from departments such as Biology, Mathematics, and Electrical & Computer Engineering who are working in interdisciplinary research (e.g., bioinformatics, modeling, data analysis) are especially encouraged to take this course.
Please direct all prerequisite and eligibility questions to Dr. J (Dr. Benjoe Juliano) at Juliano@csuchico.edu . Additional course information is also available at http://www.ecst.csuchico.edu/~juliano/csci682/DataMining/

CSCI 598 – Advanced Topics in Computer Science: Mobile/Wireless with J2ME (3 Units)
[Archived Web-based Course]
Prerequisites: C- or better in CSCI 311 - Algorithms and Data Structures, or classified graduate student standing in Computer Science.
Course Description: This course is an introduction to programming for consumer devices, such as mobile phones, PDAs, TV set-top boxes, and other embedded devices. The Java 2 Platform, Micro Edition (J2ME) includes Java virtual machines and a set of standard Java APIs that provide flexible user interfaces, a robust security model, a broad range of built-in network protocols, and support for both networked and offline applications. The J2ME platform is deployed on millions of devices, supported by leading tool vendors, and used by companies worldwide. If you have any questions about this course, contact Dr. Judith Challinger at 530-898-6357 or at jchallinger@csuchico.edu. To see a course syllabus, use this link: http://www.ecst.csuchico.edu/~judyc/0607F-csci598/syllabus.html

CSCI 598 – Advanced Topics in Computer Science: The .NET Framework (3 Units)
[Archived Web-based Course]
Prerequisites: Classified graduate student standing in Computer Science.
Course Description: 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 functional programming. In addition to these topics, this course provides an in-depth look at a modern language system: the Microsoft .NET Framework. The key features of the .NET Framework that will be covered include the Common Language Infrastructure (CLI), .Net Assemblies, .NET Metadata, Security, and the Common Language Runtime (CLR). We examine how these features provide programming language interoperability. The .NET Framework Class Library is explored, with a focus on the Base Class Library (BCL). Undergraduates should enroll in CSCI 315, and graduate students should enroll in CSCI 598. Please note that the course assignments for CSCI 598 will differ from those in CSCI 315. If you would like further information or are unsure if you meet the prerequisite for this course, please contact Dr. Judy Challinger at 530-898-6357 or at jchallinger@.csuchico.edu prior to enrolling.

CSCI 611 – Distributed Computing (3 units)
[Archived Web-based Course] [Preview]
Prerequisites: Programming experience in Java. This could be accomplished through CSCI 511 (Object-Oriented Programming in Smalltalk and Java) OR one (1) year experience in Java programming. (The first program uses a substantial program you should have already written in Java.)
Course Description: Advanced programming in Java covers programming for both single system software distribution and across networks/devices. In this course, particularly, we will cover the advanced topics that a Java programmer will need to know so that they will be in a position to do commercial Java development both for single services and for distributed processes across multiple devices. The course provides an in-depth coverage of object serialization, Java Beans, XML, Servlets, JSP's, networking, remote objects (RMI), and distributed computing through Jini, Java Message Services and JavaSpaces. If you are unsure if you meet the prerequisite for the course, please contact Dr. Anne Keuneke at amk@ecst.csuchico.edu or at 530-898-5998 before enrolling.

CSCI 620 – Computer Architecture (3 units)

[Archived Web-based Course] [Preview]

Prerequisites: CSCI 320 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. If you are unsure if you meet the prerequisites for this course, please contact Dr. Benjoe Juliano at 530-898-4619 or at juliano@ecst.csuchico.edu prior to enrolling.

CSCI 630 – Software Engineering (3 units)

[Archived Web-based Course] [Preview]

Prerequisites: CSCI 330 and classified graduate standing.
In-depth study and application of the planning, design, implementation, and management of complex software systems. Topics include requirements engineering, use case development, object-oriented analysis, software architecture, design patterns, and more. If you are unsure if you meet the prerequisites for this course, please contact Dr. Robert Roggio at broggio2000@yahoo.com prior to enrolling.

CSCI 639 – Topics in Software Engineering (3 units)
[Archived Web-based Course]
Prerequisites: CSCI 630 or permission of instructor.
This is the continuation of a two-course sequence addressing the practical aspects of software development emphasizing object technology and process. This course continues the topics of CSCI 630 and includes software architecture, use case design using Rational Rose or other suitable tools to realize class and interactive diagrams, design patterns, user interface design, frameworks, technologies for web-based application development, code generation, testing, and other related topics. If you are unsure if you meet the prerequisite for this course, please contact Dr. Robert Roggio at broggio2000@yahoo.com prior to enrolling.

CSCI 640 – Operating Systems (3 units)      

[Archived Web-based Course]
Prerequisites: CSCI 340 and classified graduate standing.
Course Description: 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.

CSCI 650 – Design and Analysis of Algorithms (3 units) 

[Archived Web-based Course] [Preview]
Prerequisites: CSCI 311, MATH 317 (Discrete Mathematical Structures), 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. If you are unsure if you meet the prerequisite for this course or would like more information, please contact Dr. Anne Keuneke at 530-898-5998 or at amk@ecst.csuchico.edu prior to enrolling.

 

CSCI 679 Oracle Database 10g – Architecture and Administration including Networking and Basic Backup and Recovery - Workshop I  (3 units)[Archived Web-based Course]  [Preview]

Prerequisites: Database design experience or CSCI 470 or instructor permission

Course Description: Oracle DBAs manage the industry's most advanced information systems and command some of the highest salaries. This course is a first step towards success as an Oracle professional, designed to give a firm foundation in basic database administration. In this class, students learn how to install Oracle components as well as create and maintain an Oracle database.  Students will gain a conceptual understanding of the Oracle database architecture and how its components work and interact with one another. Students will also learn how to create an operational database and properly manage the various structures in an effective and efficient manner including performance monitoring, database security, user management, and backup/recovery techniques.  Powerful new Oracle tools are featured throughout the course.  The lesson topics are reinforced with structured hands-on practices.  This course is made possible via the Oracle Academic Initiative – a partnership between higher education and Oracle Corporation - and is designed to prepare the student for the corresponding Oracle Certified Associate exam.  If you are unsure if you meet the prerequisite for the course, please contact Dr. Melody Stapleton at mjstapleton@csuchico.edu or at (530) 898-5617 before enrolling.

CSCI 679Oracle 10g Backup, Recovery and Performance Tuning (Database Administration) - Workshop II (3 units) [Archived Web-based Course] [Preview]
Prerequisites : CSCI 470 or CSCI 570
Course Description: This course advances knowledge as an Oracle professional in the area of database administration. Students learn how to configure an Oracle database for multilingual applications. Various methods of recovering a database using RMAN, SQL, and Flashback technology are practiced. Tools to monitor database performance and steps to improve database performance are also covered. Students also learn how to use various database technologies, such as the Resource Manager, the Scheduler, and Automatic Storage Management (ASM). Lesson topics are reinforced with structured hands-on practice. CSCI-679 Oracle 10g Database Administration Workshop I and this course are designed to prepare students for the Oracle Database 10g: Database Administrator Certified Associate and Certified Professional Exams. If you are unsure if you meet the prerequisite for the course, please contact Dr. Melody Stapleton at mstapleton@csuchico.edu before enrolling. Information about the certification exams can be found at: http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=47#1

CSCI 682 Seminar in Artificial Intelligence: Computer Games (3 units)
[Archived Web-based Course] 
Course Description: This course focuses on the aspects of Artificial Intelligence used in Game Programming. Intelligence is a factor in game design which is being taken more seriously by game developers and producers than ever before. This course will look at AI in games from the early days of Checkers and Chess to making characters appear more interesting and believable as "living" creatures in today's games. Not just for gamers; topics include knowledge acquisition, decision-making processes, pattern recognition, use of intelligent agents, dealing with adversaries and much more. If you are unsure if you meet the prerequisite for this course or have questions about course content, please contact Dr. Anne Keuneke 530-898-5998 or at amk@ecst.csuchico.edu prior to enrolling.

CSCI 698 - Seminar in Advanced Topics - Computer Security (3 units)
Course Description: This course is no longer offered. Instead, please see CSCI 448 - Survey of Computer Security.