Skip Navigation

Fall 207 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 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 409 Supervised Consulting
The student assists other students who are enrolled in introductory programming classes. For each four hours of scheduled weekly consulting, the student is awarded 1 credit. Repeatable for maximum of 4 credits.
CIS 410/510 Object Oriented 3D APIs
Principles, practices and design philosophy of 3D computer graphics programming using Object Oriented Application Programmer Interfaces. Taught primarily from the perspective of the API, not the implementation underlying the API. A prime goal of the class is to provide the student with a mix of knowledge about such APIs and the skills to use them effectively.
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 443/543 User Interfaces
Introduction to user interface software engineering. Emphasis on theory of interface design, understanding the behavior of the user, and implementing programs on advanced systems.
CIS 451/551 Database Processing
Fundamental concepts of DBMS. Data modeling, relational models and normal forms. File organization and index structures. SQL, embedded SQL, and concurrency control.
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 Atomicity
Atomicity is a fundamental concept that arises in several fields of computer science including computer architecture, operating systems, networks and distributed systems, databases, programming languages, and software engineering. It has developed somewhat independently in different fields, but recently has begun to converge again in a ferment of activity. We'll try to make sense of the tangle of closely related concepts and have a look at current research developments, including open problems and work in progress.
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 610 Scientific Writing Workshop
This experimental course, taught for the first time in Fall 2004, is intended to help graduate students learn to write scientific papers for publication. We will follow a workshop format with peer review and discussion of writing samples. Students will be required to provide frank but constructive criticism of writing samples provided by other students, and to accept criticism in the same spirit.
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.
CIS 650 Software Engineering
Examines recent models and tools in software engineering including modifications to the traditional software life-cycle model, development environments, and speculative view of the future role of artificial intelligence.
CIT 381 Database Systems
Introduction to database systems, emphasis on database design and access. Database concepts, data modeling, SQL, connecting database to web.