Freshman Sophomore Junior Senior
CPSC 201a CPSC 202a Two electives CPSC 490a
CPSC 323a
CPSC 223b CPSC 365b Two electives One elective
One elective
and Sophomore Junior Senior
CPSC 201a CPSC 323a CPSC 490a
CPSC 202a One elective Two electives
CPSC 223b CPSC 365b Two electives
One elective
CPSC 201a Introduction to Computer Science MWF 10.30-11.20 Introduction to the concepts, techniques, and applications of computer science. Topics include computer systems (the design of computers and their languages); theoretical foundations of computing (computability, complexity, algorithm design); and artificial intelligence (the organization of knowledge and its representation for efficient search). Examples stress the importance of different problem-solving methods.
CPSC 202a Mathematical Tools for Computer Science TTh 1.00-2.15 Introduction to formal methods for reasoning and to mathematical techniques basic to computer science. Topics include propositional logic, discrete mathematics, and linear algebra. Emphasis on applications to computer science: recurrences, sorting, graph traversal, Gaussian elimination.
CPSC 223b Data Structures and Programming Techniques TTh 1.00-2.15 Topics include programming in C; data structures (arrays, stacks, queues, lists, trees, heaps, graphs); sorting and searching; storage allocation and management; data abstraction; programming style; testing and debugging; writing efficient programs.
CPSC 323a Introduction to Systems Programming and Computer Organization MW 1.00-2.15 Machine architecture and computer organization, systems programming in a high-level language, assembly language, issues in operating systems, software engineering, prototyping in nonprogramming languages.
After CPSC 223b.
CPSC 365b Design and Analysis of Algorithms TTh 2.30-3.45 Paradigms for problem solving: divide and conquer, recursion, greedy algorithms, dynamic programming, randomized and probabilistic algorithms. Techniques for analyzing the efficiency of algorithms and designing efficient algorithms and data structures. Algorithms for graph theoretic problems, network flows, and numerical linear algebra. Provides algorithmic background essential to further study of computer science.
After CPSC 202a and 223b.
Options
CPSC 421a Compilers and Interpreters MW 1.00-2.15 Compiler organization and implementation: lexical analysis, formal syntax specification, parsing techniques, execution environment, storage management, code generation and optimization, procedure linkage and address binding. The effect of language-design decisions on compiler construction.
After CPSC 323a.
CPSC 422b Operating Systems MW 1.00-2.15 The design and implementation of operating systems. Topics include synchronization, deadlock, process management, storage management, file systems, security, protection, and networking.
After CPSC 323a.
CPSC 426a Building Decentralized Systems MW 2.30-3.45 Challenges and techniques for building decentralized computing systems, in which many networked computers need to cooperate reliably despite failures and without assuming centralized management. Topics include decentralized storage systems, mobile and remote execution, hosting untrusted code, fault tolerance, naming, capabilities, information flow control, distributed shared memory, distributed hash tables, content distribution, and practical uses of cryptography.
After CPSC 323a.
CPSC 427a Object-Oriented Programming TTh 1.00-2.15 Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++.
After CPSC 223b.
CPSC 428b Language-Based Security TTh 2.30-3.45 Basic design and implementation of language-based approaches for increasing the security and reliability of systems software. Topics include proof-carrying code, certifying compilation, typed assembly languages, runtime checking and monitoring, high-confidence embedded systems and drivers, and language support for verification of safety and liveness properties.
After CPSC 202a, 323a, and MATH 222a or b, or equivalents.
CPSC 431a Computer Music: Algorithmic and Heuristic Composition MW 2.30-3.45 Study of the theoretical and practical fundamentals of computer-generated music, with a focus on high-level representations of music, algorithmic and heuristic composition, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.

Ability to read music is assumed. After CPSC 202a and 223b.
CPSC 434b Mobile Computing and Wireless Networking MW 2.30-3.45 Introduction to the principles of mobile computing and its enabling technologies. Topics include wireless systems; information management; location-independent and location-dependent computing models; disconnected and weakly-connected operation models; human-computer interactions; mobile applications and services; security; power management; and sensor networks.
After CPSC 202a and 323a.
CPSC 437b Introduction to Databases TTh 1.00-2.15 Introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and normal forms. Object-oriented databases. Database data structures: files, B-trees, hash indexes.
After CPSC 202a and 223b.
CPSC 440b Numerical Computation TTh 2.30-3.45 Algorithms for numerical problems in the physical, biological, and social sciences: solution of linear and nonlinear systems of equations, interpolation and approximation of functions, numerical differentiation and integration, optimization.
After CPSC 112a or b or an equivalent introductory programming course; MATH 120a or b; and MATH 222a or b or 225a or b or CPSC 202a.
CPSC 445a Introduction to Data Mining MW 1.00-2.15 A study of algorithms and systems that allow computers to find patterns and regularities in databases, to perform prediction and forecasting, and to improve their performance generally through interaction with data.
After CPSC 202a, 223b, and MATH 222a or b, or equivalents.
CPSC 462a Graphs and Networks TTh 2.30-3.45 A mathematical examination of graphs and their applications in the sciences. Families of graphs include social networks, small-world graphs, Internet graphs, planar graphs, well-shaped meshes, power-law graphs, and classic random graphs. Phenomena include connectivity, clustering, communication, ranking, and iterative processes.
Prerequisites: linear algebra and discrete mathematics; a course in probability is recommended.
CPSC 463b Machine Learning MW 2.30-3.45 Paradigms and algorithms for learning classification rules and more complex behaviors from examples and other kinds of data. Topics may include version spaces, decision trees, artificial neural networks, Bayesian networks, instance-based learning, genetic algorithms, reinforcement learning, inductive logic programming, the MDL principle, the PAC model, VC dimension, sample bounds, boosting, support vector machines, queries, grammatical inference, and transductive and inductive inference.
After CPSC 202a and 223b, or with permission of instructor. CPSC 365b is recommended.
CPSC 468a Computational Complexity TTh 1.00-2.15 Introduction to the theory of computational complexity. Basic complexity classes, including polynomial time, nondeterministic polynomial time, probabilistic polynomial time, polynomial space, logarithmic space, and nondeterministic logarithmic space. The roles of reductions, completeness, randomness, and interaction in the formal study of computation.
After CPSC 365b or with permission of instructor.
CPSC 469b Randomized Algorithms TTh 1.00-2.15 A study of randomized algorithms from several areas: graph algorithms, algorithms in algebra, approximate counting, probabilistically checkable proofs, and matrix algorithms. Topics include an introduction to tools from probability theory, including some inequalities such as Chernoff bounds.
After CPSC 365b; a solid background in probability is desirable.
CPSC 470a Artificial Intelligence MWF 10.30-11.20 Introduction to artificial intelligence research, focusing on reasoning and perception. Topics include knowledge representation, predicate calculus, temporal reasoning, vision, robotics, planning, and learning.
After CPSC 201a or b and 202a.
CPSC 473b Intelligent Robotics MWF 10.30-11.20 Introduction to the construction of intelligent, autonomous systems. Sensory-motor coordination and task-based perception. Implementation techniques for behavior selection and arbitration, including behavior-based design, evolutionary design, dynamical systems, and hybrid deliberative-reactive systems. Situated learning and adaptive behavior.
After CPSC 202a; after or concurrently with CPSC 223b.
CPSC 475b Computational Vision and Biological Perception MW 1.00-2.15 An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students.
After MATH 120a or b and CPSC 112a or b, or with permission of instructor.
CPSC 479a Advanced Topics in Computer Graphics TTh 2.30-3.45 An in-depth study of advanced algorithms and systems for rendering, modeling, and animation in computer graphics. Topics vary and may include reflectance modeling, global illumination, subdivision surfaces, NURBS, physically-based fluids systems, and character animation.
After CPSC 202a and 223b.

 
joe.txt · Dernière modification: 2011/01/17 15:33 par suitable