Skip Navigation

Fall 2011 Courses

CIS 110 Information Processing
Integration of technology and information systems for creation, storage, and dissemination of information used in decision-making. Labs cover spreadsheets, Telnet, FTP, website creation tools.
CIS 111 Web Programming
Principles and practices of programming for the web using a scripting language: basic concepts of problem analysis, program design, implementation, and testing; web application architectures.
CIS 122 Intro to Programming and Problem Solving
Computational problem solving, algorithm design, data structures, and programming using a multi-paradigm programming language. Introduces techniques for program design, testing, and debugging.
CIS 210 Computer Science I
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
CIS 212 Computer Science III
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
CIS 313 Intermediate Data Structures
Design and analysis of data structures as means of engineering efficient software; attention to data abstraction and encapsulation. Lists, trees, heaps, stacks, queues, dictionaries, priority queues.
CIS 314 Computer Organization
Introduction to computer organization and instruction-set architecture--digital logic design, binary arithmetic, design of central processing unit and memory, machine-level programming.
CIS 323 Data Structures Lab
Programming laboratory. Data structures and object-oriented implementation.
CIS 407/507 Programming Competition
Repeatable when the topic changes. Opportunity to study in greater depth specific topics arising out of other courses.
CIS 413/513 Advanced Data Structures
Complex structures, storage management, sorting and searching, hashing, storage of texts, and information compression.
CIS 420/520 Automata Theory
Provides a mathematical basis for computability and complexity. Models of computation, formal languages, Turing machines, solvability. Nondeterminism and complexity classes.
CIS 422/522 Software Methodology
Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects.
CIS 425 Principles of Programming Languages
Syntax and semantics. Scope rules, environments, stores, denoted and expressed values, procedures, and parameters. Definitional interpreters. Types, overloading, parametric polymorphism, and inheritance. Varieties of abstraction.
CIS 432/532 Intro to Computer Networks
Principles of computer network design. Link technologies, packet switching, routing, inter-networking, reliability. Internet protocols. Programming assignments focus on protocol design.
CIS 471/571 Introduction to Artificial Intelligence
Basic themes, issues, and techniques of artificial intelligence, including agent architecture, knowledge representation and reasoning, problem solving and planning, game playing, and learning.
CIS 607 Network Research Seminar
We will review a collection of interesting papers related to various aspects of networking. In each session, one student presents one (or two) paper(s) and leads the discussion. The student who presents a paper should submit a good summary of the paper to our paper review archive, called paperQ. All other students should read the paper prior to class and actively contribute to in-class discussion.
CIS 610 Advanced Topics in Systems Security
Securing computer systems is one of the largest challenges that organizations face. While technology has changed, the fundamental problems of computer security have stayed remarkably similar. This course examines research in securing computer and operating systems, both past and present. Topics include protection systems, basic security principles, vulnerabilities, mandatory access controls, capability systems, virtual machines and security kernels, and distributed and web security.
CIS 610 Teaching Effectiveness Seminar
This course is intended:
  • to be taken by all new CIS GTFs
  • to provide an array of strategies to use during your GTF and teaching experience while you are at UO and after you leave
  • to encourage you to become more aware of how you teach and how to teach more effectively
  • to provide a forum in which you can share teaching problems and ideas with other GTFs
CIS 630 Distributed Systems
Principles of distributed computer systems: interprocess communication, distributed file systems, distributed timing and synchronization, distributed programming, transactions, process scheduling, distributed shared memory.
CIT 381 Database Systems
Introduction to database systems, emphasis on database design and access. Database concepts, data modeling, SQL, connecting database to web.