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. |
|
| |
|
|
|
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 |
|
|
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. |
|
| 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. |
|
| 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. |
|
| 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 MATH 330. MATH 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.
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 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 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. Extra 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. Extra 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. |
|
| |
|
| 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 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 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 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. Extra 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 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. Extra 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. Extra fee required. |
|
| Course Syllabus |
|
|
Back to Top |
| CSC
650 Secure Networked Systems |
3 |
Prerequisites:
a grade of C or better in CSC 415 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.
Extra fee required. |
|
| Course Syllabus |
|
| |
|
| CSC
651 System Administration |
3 |
Prerequisites:
a grade of C or better in CSC 413 and CSC 415. CSC 415
may be taken concurrently.
User
administration. Operating system installation, tuning, and
control. Network administration. Security management. Performance
tuning and management. Extra 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. Extra 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 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. Extra
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 Syllabus |
|
|
Back to Top |
| CSC
668 Object Oriented Programming |
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. Extra 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. Extra 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.
Extra 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. |
|
| |
|
| 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 experien |