|
Faculty
Zena M. Ariola, professor (programming languages, lambda calculus, logic). B.S., 1980, Pisa; Ph.D., 1992, Harvard. (1992)
John S. Conery, professor (computational biology, parallel processing). B.A., 1976, California, San Diego; Ph.D., 1983, California, Irvine. (1983)
Janice Cuny, professor (computational science, domain-specific environments for high-performance computing). B.A., 1973, Princeton; M.S., 1974, Wisconsin; Ph.D., 1981, Michigan. (1993)
Dejing Dou, assistant professor (artificial intelligence, information integration, data mining). B.E., 1996, Tsinghua; M.S., 2000, Ph.D., 2004, Yale. (2004)
Sarah A. Douglas, professor (human-computer interaction). A.B., 1966, California, Berkeley; M.S., 1979, Ph.D., 1983, Stanford. (1983)
Arthur M. Farley, professor (communication networks, artificial intelligence). B.S., 1968, Rensselaer Polytechnic Institute; Ph.D., 1974, Carnegie-Mellon. (1974)
Stephen F. Fickas, professor (requirements engineering, software engineering, wearable ubiquitous computing). B.S., 1971, Oregon State; M.S., 1973, Massachusetts; Ph.D., 1982, California, Irvine. (1982)
Michael Hennessy, senior instructor. B.S., 1982, M.S., 1984, Oregon. (1984)
Anthony J. Hornof, associate professor (human-computer interaction, cognitive modeling, eye tracking). B.A., 1988, Columbia; M.S., 1996, Ph.D., 1999, Michigan. (1999)
Jun Li, assistant professor (computer and network security, network simulation and performance analysis, distributed systems). B.S., 1992, Peking; M.E., 1995, Chinese Academy of Sciences; M.S., 1998, Ph.D., 2002, California, Los Angeles. (2002)
Virginia M. Lo, associate professor (parallel and distributed computing, networks). B.A., 1969, Michigan; M.S., 1977, Pennsylvania State; Ph.D., 1983, Illinois at Urbana-Champaign. (1984)
Allen D. Malony, professor (parallel processing, performance evaluation, neuroinformatics). B.S., 1980, M.S., 1982, California, Los Angeles; Ph.D., 1990, Illinois at Urbana-Champaign. (1991)
Andrzej Proskurowski, professor (algorithmic graph theory, models of communication networks). M.S., 1967, Warsaw Technical; Ph.D., 1974, Royal Institute of Technology, Stockholm. (1975)
Reza Rejaie, assistant professor (computer networks, multimedia networking, network measurement). B.S., 1991, Sharif University of Technology; M.S., 1996, Ph.D. 1999, Southern California. (2002)
Jane M. Ritter, senior instructor. B.S., 1975, M.E., 1983, Wisconsin, La Crosse; Ph.D., 1987, Oregon. (1987)
Yannis Smaragdakis, associate professor (software engineering, programming languages, computer systems). B.S., 1993, Crete; M.S., 1995, Ph.D., 1999, Texas at Austin. (2006)
Kent A. Stevens, professor (computational biomechanics, three-dimensional visualization). B.S., 1969, M.S., 1971, California, Los Angeles; Ph.D., 1979, Massachusetts Institute of Technology. (1982)
Christopher B. Wilson, associate professor (computational complexity, models of computation). B.S., 1978, Oregon; M.S., 1980, Ph.D., 1984, Toronto. (1984)
Michal Young, associate professor (software engineering, software test and analysis). B.A., 1983, Oregon; M.S., 1985, Ph.D., 1989, California, Irvine. (1997)
Emeritus
Eugene M. Luks, professor emeritus. B.S., 1960, City University of New York, City College; Ph.D., 1966, Massachusetts Institute of Technology. (1983)
The date in parentheses at the end of each entry is the first year on the University of Oregon faculty.
Participating
David W. Etherington, Computational Intelligence Research Laboratory
Matthew L. Ginsberg, Computational Intelligence Research Laboratory
General Information
Computer science offers students the challenge and excitement of a dynamically evolving science whose discoveries and applications affect every aspect of modern life. Computer science is the study of the computer as a machine, both concrete and abstract; it is the study of the management of information; and it involves the design and analysis of algorithms, programs, systems, and programming languages.
The Department of Computer and Information Science is committed to a strong research program and a rewarding educational experience for undergraduate and graduate students.
The department offers instruction and opportunities for research in the following areas:
• theoretical computer science (computational complexity, models of computation, algorithm design)
• computational science
• operating systems, parallel processing, distributed systems, performance evaluation
• human-computer interaction, visualization
• software engineering
• networking
• databases and data mining
• programming languages and compilers
• artificial intelligence
The department offers bachelor’s, master’s, and doctoral degrees; in addition, two undergraduate minors and a selection of service courses are offered for students who want introductory exposure to computers and computer applications. The computer science programs at the university are continually evolving as the discipline matures and as students’ needs change.
Facilities
The Department of Computer and Information Science is housed in Deschutes Hall, which holds faculty and graduate student offices and extensive laboratory space for research and instruction.
Undergraduate premajors use a combination of computing labs staffed by computer and information science (CIS) graduate students, undergraduate tutors, and lab assistants. Undergraduate majors and graduate students share a collaborative computing lab for exclusive use by CIS students. Research projects and hands-on systems and networking courses are held in the Intel Systems research and education laboratory, which houses specialized equipment including Intel multicore workstations, dual-boot PCs, and a variety of networking hardware resources. Graduate and undergraduate students engaged in active research also have access to the computing facilities of the associated research lab.
The human-computer interaction laboratory has specialized equipment for interactive-systems research. Usability studies are supported by a laboratory with video cameras and audio recorders.
The cognitive modeling and eye-tracking laboratory features an Eyegaze eye tracker, used to collect and analyze the eye movements people make during human-computer interactions, and to develop eye-controlled user interfaces for people with disabilities.
Research in high-performance computing and computational science is supported by multiprocessing and storage resources shared between the department, the Computational Science Institute, and the Neuroinformatics Center.
To complement these facilities, the CIS department added a visualization lab with a tiled LCD display wall, 3-D stereo, and a high-definition tiled rear-projection system.
The advanced integration and mining laboratory fosters research on finding useful patterns from the mountain of data on neuroscience, medicine, biology, and networking, and on integrating data from heterogeneous resources such as databases, the World Wide Web, and the Semantic Web.
The network research laboratory features machines for research projects, including three academic nodes (a gift from Intel) connected to PlanetLab, a global research test bed.
The ubiquitous computing laboratory uses a mixture of custom-designed and commercial hardware to study the application of assistive software to everyday living. Researchers design software for use by persons with and without cognitive impairments.
In addition, the university is a member of Internet2, a high-speed network connecting major research institutions.
Additional institutes affiliated with the department can be found on the CIS website.
Careers
The undergraduate program is designed to prepare students for professional careers or graduate study. The field of computer science, which has become increasingly interdisciplinary over the past decade, offers a rich array of opportunities in fields as disparate as medicine, manufacturing, and the media as well as the computer industry.
Graduates come away with confidence that they can specify, design, and build large software systems; analyze the effectiveness of computing techniques for a specific problem; and work effectively in dynamic, problem-solving teams. The master of arts (M.A.) or master of science (M.S.) degree program prepares students for higher-level positions in the areas described above as well as for teaching positions in community colleges. The Ph.D. degree program trains students as scientists for advanced research in a specialized area of computer science and for teaching in universities.
Undergraduate Studies [back to top]
The Department of Computer and Information Science offers a major and a minor in computer and information science, a major in mathematics and computer science, and a minor in computer information technology.
Majors. The computer and information science major is intended for students who want to study computers and computer programming with strong mathematical and scientific foundations. The mathematics and computer science major emphasizes formal and abstract problem solving complemented by computational methods and computer technologies. This program, administered jointly with the Department of Mathematics, is described in the Mathematics and Computer Science section of this catalog. Both of these majors lead to the bachelor of arts (B.A.) or bachelor of science (B.S.) degrees.
Students majoring in computer and information science may choose to focus their studies in one of several areas of specialization, including in-depth tracks within computer science as well as multidisciplinary tracks involving courses from other departments. The current computer science tracks include foundations software development, computer networks, and database and informatics. The current multidisciplinary tracks include computational arts: multimedia, business information systems, bioinformatics, and computational biology. These tracks prepare students for careers in the private or public sector as well as for advanced graduate-level study.
All tracks build on the standard CIS core requirements. In addition, each track specifies a set of coordinated choices for fulfilling the math, science, and upper-division electives requirements. Students interested in specializing in a track should contact their adviser as early as possible.
Preparation. High school students who plan to major in computer and information science should pursue a strong academic program, including substantial work in mathematics and the sciences. Courses in algebra, geometry, trigonometry, and more advanced topics should be included. Substantial experience in expository and technical writing is highly desirable. Courses in computer programming or computer technology are useful but not required. Upon arrival at the university, freshmen should consult with a CIS adviser to find the entry-level course best suited to the student’s background.
Major Admission Policies and Premajor Requirements
Students who declare computer and information science as their intended major are classified as premajors and must formally apply for admission to the major after completing five premajor core coursesElements of Discrete Mathematics I,II (MATH 231, 232) and Computer Science I,II,III (CIS 210, 211, 212). A minimum GPA of 2.60 in these five courses is required for admission to the major. Each course must be completed with a grade of C or better. Each course may be retaken once, but the GPA is computed from all earned grades.
Students must submit a formal application for admission to the major before the end of the term in which they complete CIS 212 (fall or winter term).
Transfer or Second Baccalaureate Students
Transfer students should consult the online Interactive Transfer Catalog as well as a CIS adviser to determine whether computer science, mathematics, and science courses they have taken fulfill the major requirements. Completing only general-university requirements prior to transferring to the University of Oregon may not be sufficient preparation to complete a CIS degree in two years.
Students attending community college in Oregon are encouraged to obtain the Associate of Arts Oregon Transfer degree before entering the University of Oregon. While earning this degree, community college transfer students should take discrete mathematics, calculus, and computer science.
Major Requirements
Computer and information science majors must complete at least 54 credits of CIS courses, of which 24 must be earned in residence at the University of Oregon. In addition, majors must complete at least 24 credits in mathematics, 12 credits in the sciences, 4 credits of technical or business writing, and at least 12 additional credits (depending on the student’s chosen track). The specific requirements for the CIS major fall in five categories: core courses, track courses, mathematics, writing, and science.
Premajor Core
Computer Science I,II,III (CIS 210, 211, 212) is taken concurrently with Elements of Discrete Mathematics I,II,III (MATH 231, 232, 233).
Upper-Division Core
Computer and information science majors must take the following courses for a letter grade, except where noted: Introduction to Data Structures (CIS 313), Computer Organization (CIS 314), Introduction to Algorithms (CIS 315), Data Structures Laboratory (CIS 323), Operating Systems (CIS 415), Software Methodology (CIS 422), and Principles of Programming Languages (CIS 425). These courses lay the foundation for advanced work in computer science during the junior and senior years.
Writing
In addition to the university’s writing requirement, CIS majors must take either Scientific and Technical Writing (WR 320) or Business Communications (WR 321).
Foundations Track
In addition to the upper-division core and writing courses, computer and information science majors must complete a set of track requirements. The foundations track is the most general, allowing a student to choose a set of electives tailored to his or her interests and intended choice of career.
Foundations track students must take a minimum of 16 credits of upper-division CIS courses beyond the core courses. Special studies (CIS 399) or experimental courses (CIS 410) used as electives must require CIS 313 as a prerequisite and have regular weekly class meetings and homework assignments.
Only 8 credits in CIS 399409 may be applied to the upper-division elective requirement. None of these courses may be taken for more than four credits when used to satisfy this requirement.
Mathematics
Calculus I,II,III (MATH 251, 252, 253) or Honors Calculus I,II,III (MATH 261, 262, 263); and 7 to 8 credits of mathematics electives selected from MATH 256, 281282, 315, 341342, 346, 351352, 391393, 411415, 420422, 431433, 441, 444446, 451452, 455457, 461466.
Science
Majors must take at least 12 credits in one of the following four options:
1. General Physics (PHYS 201, 202, 203) or Foundations of Physics I (PHYS 251, 252, 253). Students are encouraged to complete the accompanying lab courses
2. General Chemistry (CH 221, 222, 223) or Honors General Chemistry (CH 224H, 225H, 226H). Students are encouraged to complete the accompanying lab courses
3. General Biology I,II,III (BI 211, 212, 213)
4. Psychology courses at the 200 level or above, of which at least 8 credits must be in the experimental and physiological fields (PSY 430468)
Specialization Tracks
Computational Arts: Multimedia
The computational arts: multimedia track, designed for computer and information science majors who plan to work in the field of multimedia arts, prepares the student for artistic and technical aspects of this area. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Introduction to Computer Graphics (CIS 441), User Interfaces (CIS 443), and the completion of a minor in multimedia from the art department in the School of Architecture and Allied Arts (fulfilled under the supervision of an art department adviser).
Upper-Division Electives. A minimum of 12 additional credits of upper-division CIS, music, or digital arts courses from the approved list (available from the CIS department office) or with the consent of a CIS adviser.
Mathematics. Calculus I,II (MATH 251, 252) or Honors Calculus I,II (MATH 261, 262) and at least one of Calculus III (MATH 253), Introduction to Methods of Probability and Statistics (MATH 243), or Elementary Linear Algebra (MATH 341).
Science. 12 credits in one of the four options listed under Major Requirements.
Business Information Systems
Graduates in the business information systems track are qualified to work as analysts, managers, developers, or consultants, and to enter leadership-development programs. Completion of this track, combined with professional work experience and economics courses, prepares students to enter the Lundquist College of Business M.B.A. program at the University of Oregon, and M.B.A. programs at other universities. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Database Processing (CIS 451), Introduction to Networks (CIS 432), Computer Ethics (CIS 490), and the completion of a minor in business administration from the Lundquist College of Business (fulfilled under the supervision of a business college adviser).
Upper-Division Electives. A minimum of 12 additional credits of upper-division CIS courses from the approved list (available from the CIS department office) or with the consent of a CIS adviser.
Mathematics. Calculus I,II,III (MATH 251, 252, 253) or Honors Calculus I,II,III (MATH 261, 262, 263).
Science. See Computational Arts: Multimedia.
Software Development
The software development track prepares students for careers in software engineering, software project management, software quality assurance, and almost any area involving the creation of software. Course work focuses on solving problems related to the cost of development as well as the quality of the software delivered in complex software projects. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Special Studies: C/C++ (CIS 399), Software Methodology II (CIS 423), and User Interfaces (CIS 443); one large programming project course chosen from Computational Science (CIS 455) or Introduction to Compilers (CIS 461); one theory course chosen from Data Structures (CIS 413), Automata Theory (CIS 420), or Introduction to Logic (CIS 427).
Upper-Division Electives. A minimum of 4 additional credits of upper-division CIS courses from the approved list (available from the CIS department office) or with the consent of a CIS adviser.
Mathematics. See Business Information Systems.
Science. See Computational Arts: Multimedia.
Computer Networks
The computer networks track prepares students for careers as network systems administrators, network protocol developer-programmers, or network security specialists in a wide range of environments, including educational institutions, business enterprises, and government agencies, as well as for advanced graduate studies and research in the field of computer networks. Course work encompasses most aspects of network theory and practice. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Introduction to Networks (CIS 432), Computer and Network Security (CIS 433), and Modeling and Simulation (CIS 445).
Upper-Division Electives. See Business Information Systems.
Mathematics. See Business Information Systems.
Science. General Physics (PHYS 201, 202, 203) or Foundations of Physics I (PHYS 251, 252, 253). Students are encouraged to complete the accompanying lab courses.
Database and Informatics
The database and informatics track prepares students for careers in database application programming, database design, doctoral work in business administration, and graduate work in informatics and database theory. Course work includes data structures, data architecture, and data mining. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Database Processing (CIS 451), Database Issues (CIS 452), and Experimental Course: Data Mining (CIS 410).
Upper-Division Electives. See Business Information Systems.
Mathematics. See Business Information Systems.
Science. See Computational Arts: Multimedia.
Bioinformatics
The bioinformatics track prepares students to apply computational and mathematical techniques to the analysis and management of biological data. Course work in this track combines depth in applied and formal aspects of computer science with rigorous training in biology. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Experimental Course: Bioinformatics (CIS 410), Experimental Course: Data Mining (CIS 410), and Database Processing (CIS 451); one the following sequences in biology: General Biology I,III,IV (BI 211, 213, 214) or Foundations I,II,III (BI 251, 252, 253).
Upper-Division Electives. A minimum of 12 additional upper-division electives from CIS, biology, or mathematics from the approved list (available from the CIS department office) or with the consent of a CIS adviser.
Mathematics. Calculus for the Biological Sciences I,II (MATH 246, 247) and Calculus III (MATH 253); or Calculus I,II,III (MATH 251, 252, 253); or Honors Calculus I,II,III (MATH 261, 262, 263).
Computational Biology
The computational biology track prepares students to apply computational techniques from computer science to address scientific problems in biology such as gene sequencing, protein analysis, and evolutionary modeling. Course work in this track combines depth in applied and formal aspects of computer science with rigorous training in biology. Students in this track must complete the following requirements in addition to the major requirements.
Required Courses. Experimental Course: Data Mining (CIS 410), Modeling and Simulation (CIS 445), and Computational Science (CIS 455); the biology sequence Foundations I,II,III (BI 251, 252, 253) and Organic Chemistry (CH 331).
Upper-Division Electives. See Bioinformatics.
Mathematics. See Bioinformatics.
Programming Experience
Students who take Computer Science I (CIS 210) are expected to have prior programming experience from a high school course, through employment, or in a course such as Introduction to Programming and Algorithms (CIS 122) or Science of Computing (CIS 170). Students who are unsure about their level of preparation should meet with a CIS adviser.
Sequence of Courses. Students with sufficient programming experience should take Elements of Discrete Mathematics I,II,III (MATH 231, 232, 233) and Computer Science I,II,III (CIS 210, 211, 212) in the freshman year. Students with little or no programming experience should take Introduction to Programming and Algorithms (CIS 122) and Science of Computing (CIS 170) in the freshman year, and the Elements of Discrete Mathematics and Computer Science sequences in the sophomore year.
Major Progress Review and Major in Good Standing
Each major must meet with his or her adviser and file the Major Progress Review form after completing 8 to 12 credits of the upper-division core. Mathematics and CIS core courses used to satisfy major requirements must be taken for letter grades and passed with grades of C or better. Data Structures Laboratory (CIS 323) is taken pass/no pass (P/N) concurrently with CIS 313. Other courses used to satisfy the major requirements may be taken for letter grades or pass/no pass. Grades of C or better or P must be earned in these courses. At least 12 of the upper-division credits applied to the degree must be taken in residence at the university. A student who receives two grades below C in the upper-division core is removed from the major.
Prerequisites
Prerequisites for CIS core courses must be completed with grades of C or better. Students who can present evidence of equivalent academic experience may submit a petition to the Undergraduate Education Committee to waive a prerequisite.
Mathematics and Computer Science
The Department of Computer and Information Science and the Department of Mathematics jointly offer an undergraduate major in mathematics and computer science, leading to a bachelor of arts or a bachelor of science degree. This program is described in the Mathematics and Computer Science section of this catalog. This major prepares students for a wide range of careers in the high tech industry, for advanced graduate study, and for careers as middle school and high school teachers.
Honors Program
Students with a GPA of 3.50 or higher in computer and information science and a cumulative GPA of 3.00 or higher are encouraged to apply to the department honors program after completing CIS 313, 314, 315, and 323. The application form is available in the department office. To graduate with departmental honors, a student must write a thesis under the supervision of a faculty member.
Internships
Practical work experience in the software industry is seen as a valuable complement to academic course work. The department works with students to place them in internship positions in the summer and throughout the academic year. Students may also use the services of the UO Career Center and other agencies to identify internship opportunities. Majors may receive academic credit for internships. To earn upper-division elective credit for an internship, the work experience must be at a technical level beyond CIS 313 or 323 and be sponsored by a CIS faculty member. A contract signed by the faculty sponsor, internship supervisor, and the student must be filed with the department before the internship begins.
Research
Faculty members in the computer and information science department receive grants from government, industry, and private sources to conduct research in their areas of expertise. Undergraduate majors are encouraged to take part in the various research groups and in the department. Most students begin approaching faculty members for such opportunities while taking the 300-level courses. Research can be used to fulfill upper-division electives, as part of an honors thesis, or in some cases as a paid internship.
Awards and Honorary Societies
The Erwin and Gertrude Juilfs Scholarship in Computer and Information Science, in honor of Erwin and Gertrude Juilfs, is awarded to one or more students who show exceptional promise for achievement as evidenced by grade point average, originality of research, or other creative activities.
The Geoffery Eric Wright Outstanding Junior Award, in honor of CIS student Geoffery Wright, is a scholarship for students displaying high-quality academic performance, commitment to learning, and a promise of further outstanding achievement in computer and information science and its applications.
Students with outstanding academic accomplishments may be invited to become members of Upsilon Pi Epsilon, the international honor society in computer science.
Minor Requirements
Computer and Information Science
The minor in computer and information science introduces the theories and techniques of computer science and develops programming skills that are applicable to the student’s major. It is a strong complement to a major in any of the sciences and in related fields such as multimedia arts. Students from all majors have found their career opportunities enhanced through the CIS minor.
Before enrolling in upper-division courses, students planning a minor in computer and information science must file an application form with the department. Each student should consult with a CIS faculty adviser to plan the minor program.
The CIS minor requires completion of 24 credits12 lower-division and 12 upper-division. Courses applied to the CIS minor must be completed with grades of C or better. CIS 409 and CIS 323 may not be used to fulfill requirements for the minor.
| Lower-Division Courses |
12 credits |
| Computer Science I, II, III (CIS 210, 211, 212) |
12 |
| Upper-Division Courses |
12 credits |
| Introduction to Data Structures (CIS 313) |
4 |
| Upper-division electives |
8 |
Computer Information Technology
The minor in computer information technology (CIT) prepares students to work with evolving technologies for work environments that require development and management of business databases, computer networks, web applications, and software systems. It provides practical experience in understanding the tools and technologies of the computing field. It goes well with majors in the professional schools such as business and journalism and is an excellent match with almost any major on campus.
Before enrolling in CIT upper-division courses, students planning a minor in computer information technology must file an application form with the department. Each student should consult with an assigned CIT faculty adviser to plan the minor program. The minor requires 24 credits12 lower-division and 12 upper-division.
Lower-division courses must be completed with grades of B or better. Upper-division courses must be taken in sequence and are offered only once a year. Upper-division courses must be completed with grades of C or better.
| Lower-Division Courses |
12 credits |
| Digital Information Processing (CIS 110) |
4 |
| Web Programming (CIS 111) |
4 |
| Advanced Business Systems (CIT 281) |
4 |
| Upper-Division Courses |
12 credits |
| Database Systems (CIT 381) |
4 |
| Information Architectures and Intranets (CIT 382) |
4 |
| Enterprise Networks (CIT 383) |
4 |
Graduate Studies [back to top]
The department offers programs leading to the master of arts (M.A.), master of science (M.S.), and doctor of philosophy (Ph.D.).
Master’s Degree Program
Admission. Admission to the master’s degree program in computer and information science is competitive. It is based on prior academic performance, Graduate Record Examinations (GRE) scores, and computer science background. Minimum requirements for admission with graduate master’s status are:
1. Documented knowledge of
a. Principles of computer organization
b. Software development and analysis
c. Data structures and algorithms analysis and design
2. GRE score on the general test. The computer science test is optional
3. A score of at least 600 on the Test of English as a Foreign Language (TOEFL) for applicants who have not spent at least three years in an English-speaking institution of higher learning. Applicants may be required to study one or more terms at the university’s American English Institute or elsewhere before taking any graduate work in the department. International applicants for teaching assistantships must also take the Test of Spoken English (TSE)
4. Three letters of recommendation, a statement of goals, and official transcripts
Application materials should be submitted by January 15 for admission the following fall term.
Admission to the master’s degree program requires the substantive equivalent of an undergraduate degree in computer science. A second bachelor’s degree program can be used to gain the required level of computer science background. Students without this background may be admitted conditionally and required to complete remedial course work before achieving unconditional standing in the program.
Basic Degree Requirements
The 54-credit master’s degree program consists of core courses, cluster depth-and-breadth courses, and elective courses.
Core Courses (12 credits). Algorithms and Complexity (CIS 621), Structure of Programming Languages (CIS 624), Advanced Operating Systems (CIS 630)
Cluster Courses (12 credits). Each student must take the required course (4 credits) and two depth courses (8 credits) from one cluster of related courses. A list of clusters is available in the department office.
Elective Courses (30 credits). Twelve of the 30 credits may be taken outside the department in an area closely related to the student’s professional goals, subject to approval by the student’s adviser; options include courses in linguistics, mathematics, physics, and psychology. Elective options within the department include any course numbered 500 or higher with the following limitations:
1. Up to 8 credits in Reading and Conference (CIS 605), with prior approval by the adviser
2. Up to 12 credits in Thesis (CIS 503) or Final Project (CIS 609)
3. Experimental Courses (CIS 510 or 610), which are new courses awaiting permanent status, with prior approval by the graduate education committee
4. Master’s students who do not complete a thesis or final project can count a maximum of 8 credits in CIS courses numbered 601608
5. Master’s students who complete a thesis or final project may apply up to 12 credits in Thesis (CIS 503) or Final Project (CIS 609), plus an additional 4 credits in CIS courses numbered 601608
Complex Software Systems. Students must show competency in the design and implementation of software systems by taking one course that requires a substantial programming project. A list of courses that satisfy this requirement is available in the department office.
Grade Requirements. The 24 credits in the required courses and the cluster courses must be passed with grades of B or better. Up to 12 of the 30 elective credits may be taken pass/no pass (P/N); graded elective courses must be passed with grades of mid-C or better. A 3.00 GPA must be maintained for courses taken in the program.
Master’s Thesis. The research option requires a written thesis and 9 to 12 credits in Thesis (CIS 503). Thesis research is supervised by a faculty adviser; this adviser and other faculty members constitute the thesis committee. The master’s thesis is expected to be scholarly and to demonstrate mastery of the practices of computer science. This option is recommended for students who plan subsequent Ph.D. research.
Master’s Project. The project option requires a minimum of 8 credits, and up to 12, in Final Project (CIS 609).
Under the supervision of a faculty member, the project may entail a group effort involving several master’s degree students. The project is subject to approval by the department’s graduate education committee.
Accelerated Master’s Degree Program
This program is open to students who earn a B.S. degree in computer and information science at the University of Oregon and who want to enter the master’s degree program.
If a UO undergraduate takes one or two 400-level electives that also are offered as 500-level courses, the student can petition the department to have 4 or 8 credits deducted from the total number of elective credits required for the master’s degree. The student must earn an A or better in the 400-level course and have an overall GPA of 3.50 in upper-division CIS courses to participate in this accelerated master’s program. Note that all admission procedures, as outlined in the Master’s Degree Program section, are also applicable.
Doctoral Degree Program
The doctor of philosophy in computer and information science is, above all, a high-quality degree that is not conferred simply for the successful completion of a specified number of courses or years of study. It is a degree reserved for students who demonstrate a comprehensive understanding of computer science and an ability to do creative research. Each Ph.D. student produces a significant piece of original research, presented in a written dissertation and defended in an oral examination.
The Ph.D. program is structured to facilitate the process of learning how to do research. Students begin by taking required courses to build a foundation of knowledge that is essential for advanced research. Early in the program the student gains research experience by undertaking a directed research project under the close supervision of a faculty member and the scrutiny of a faculty committee. In the later stages of the program, students take fewer courses and spend most of their time exploring their dissertation area to learn how to identify and solve open problems. The final steps are to propose an independent research project, do the research, and write and defend a dissertation.
Admission. Application materials should be submitted by January 15 for the following fall term. Materials include everything required for admission to the master’s program as well as a discussion of the anticipated research area.
Students who enter the UO with a master’s degree may petition the Graduate Education Committee for credit toward the course requirements listed below, indicating how their prior graduate work corresponds to these courses. See the graduate coordinator for the petition.
Degree Requirements
1. Course Requirements. Ph.D. candidates who enter the program without a master’s degree in computer science must take 48 credits in graduate course work including the core and cluster courses required for the M.S. program. Doctoral students must earn a minimum grade of B and an overall GPA of 3.50 in the six courses they use to satisfy the core and cluster requirements.
a. Core Courses (12 credits). Algorithms and Complexity (CIS 621), Theoretical Foundations (CIS 624), and Distributed Systems (CIS 630) must be taken by the end of the student’s second year
b. Cluster Courses (12 credits). A required course and two depth courses from a list of approved clusters. This list is updated each year to reflect experimental and other courses offered that year
c. Elective Courses (24 credits). An additional 24 credits of graduate-level course work; 12 must be from 600-level courses. Courses numbered 510 that appear on the approved course list may be included in any 500-level credits. For graduate-level courses taken in other UO departments, a petition to the Graduate Education Committee is required
d. Minimum Annual Enrollment. Ph.D. students are expected to enroll in at least 6 credits of 600-level course work each year. Research (CIS 601), Dissertation (CIS 603), and Reading and Conference (CIS 605) do not satisfy this requirement
2. Directed Research Project. Complete a directed research project, which is supervised by a faculty member and evaluated by a faculty committee. The research project comprises the following:
a. The definition and expected results of the project in the form of a Directed Research Project Contract
b. Delivery of the materials constituting the results of the project and oral presentation of the results
c. A private oral examination by the committee members
3. Status Change. All Ph.D. candidates are admitted conditionally. Successful completion of the directed research project leads to a change in the student’s doctoral status from conditional to unconditional
4. Oral Comprehensive Examination. Choose an area of research and work closely with an adviser to learn the area in depth by surveying the current research and learning research methods, significant achievements, and how to pose and solve problems. The student gradually assumes a more independent role and prepares for the oral comprehensive examination, which tests depth of knowledge in the research area. The graduate education committee approves the oral comprehensive examination committee, typically three members. The examination contains the following:
a. A survey of the area in the form of a position paper and an annotated bibliography
b. A public presentation of the position paper
c. A private oral examination by committee members
5. Advancement to Candidacy. After the oral comprehensive examination, the committee decides whether the student is ready for independent research work; if so, the student is advanced to candidacy
6. Dissertation and Defense. Identify a significant unsolved research problem and submit a written dissertation proposal to the dissertation committee. The dissertation committee, which typically comprises three department members, is approved by the graduate education committee. In addition to members from the department, the dissertation committee often includes an outside examiner. This outside examiner should be a leading researcher in the candidate’s field who is not at the University of Oregon. The outside member should be selected a year before the candidate’s dissertation defense, and no later than six months before.
The student submits a written dissertation proposal to the committee for approval. The proposal presents the research problems to be tackled, related research, methodology, anticipated results, and work plan. The committee may request an oral presentation, similar to the oral comprehensive exam, which allows the student to explain and answer question about the proposed research. The student then carries out the research.
The final stage is writing a dissertation and defending it in a public forum by presenting the research and answering questions about the methods and results. The dissertation committee, augmented by outside members according to university regulations, may accept the dissertation, request small changes, or require the student to make substantial changes and schedule another defense
7. Graduate School Requirements. Ph.D. students must meet the requirements set by the Graduate School as listed in that section of this catalog
Research Areas. It is important that a Ph.D. student be able to work effectively with at least one dissertation adviser. Hence the student should identify, at an early stage, one or more areas of research to pursue. The student should also find a faculty member with similar interests to supervise the dissertation.
Computer and Information Science Courses (CIS) [back to top]
110 Digital Information Processing (4) 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.
111 Web Programming (4) 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. Prereq: CIS 110 or equivalent, MATH 111.
115 Multimedia on the Web (4) Introduces the principles and practice of web communication using digital media, including graphics, animation, video, and sound. Labs cover software used to create interactive multimedia documents. Prereq: CIS 110 or equivalent.
122 Introduction to Programming and Algorithms (4) Problem solving, algorithm design, data structures, and programming using an object-oriented language in a Unix environment. Introduces techniques for program design testing and debugging. Prereq: CIS 110 or equivalent, MATH 111.
170 Science of Computing (4) Overview of basic ideas and areas of computer science; includes algorithms, hardware, machine organization, programming languages, networks, artificial intelligence, and associated ethical issues. Prereq: MATH 111.
196 Field Studies: [Topic] (12R)
198 Workshop: [Topic] (12R)
199 Special Studies: [Topic] (15R)
210, 211, 212 Computer Science I,II,III (4,4,4) 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. Prereq: programming course and MATH 112; coreq for CIS majors: MATH 231, 232, 233.
313 Introduction to Data Structures (4) 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. Prereq: CIS 212, MATH 232; coreq for CIS majors: CIS 323.
314 Computer Organization (4) Introduction to computer organization and instruction-set architecturedigital logic design, binary arithmetic, design of central processing unit and memory, machine-level programming. Prereq: CIS 212, MATH 231.
315 Introduction to Algorithms (4) Algorithm design, worst-case and average-behavior analysis, correctness, computational complexity. Prereq: CIS 313, 323; MATH 233.
323 Data Structures Laboratory (2) Programming laboratory. Data structures and object-oriented implementation. Prereq: CIS 212, MATH 232; coreq for CIS majors: CIS 313.
330 C/C++ and Unix (4) Practical software design and programming activities in a C/C++ and Unix environment, with emphasis on the details of C/C++ and good programming style and practices. Prereq: CIS 313, 323.
399 Special Studies: [Topic] (15R)
401 Research: [Topic] (121R)
403 Thesis (112R)
404 Internship: [Topic] (14R) Prereq: CIS 313.
405 Reading and Conference: [Topic] (112R)
406 Field Studies: [Topic] (121R)
407/507 Seminar: [Topic] (15R) Opportunity to study in greater depth specific topics arising out of other courses.
408/508 Workshop: [Topic] (121R)
409 Practicum (12R) 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. Prereq: departmental consent. R for maximum of 4 credits.
410/510 Experimental Course: [Topic] (15R)
413/513 Data Structures (4) Complex structures, storage management, sorting and searching, hashing, storage of texts, and information compression. Prereq: CIS 315.
415 Operating Systems (4) Principles of operating system design. Process and memory management, concurrency, scheduling, input-output and file systems, security. Prereq: CIS 313, 314, 323.
420/520 Automata Theory (4) Provides a mathematical basis for computability and complexity. Models of computation, formal languages, Turing machines, solvability. Nondeterminism and complexity classes. Prereq: CIS 315, MATH 233.
422/522 Software Methodology I (4) Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects. Pre- or coreq: CIS 315.
423 Software Methodology II (4) Application of concepts covered in CIS 422/522. Student teams complete a large system design and programming project. Final system specifications, test plan, user documentation, and system walk-throughs. Prereq: CIS 422.
425 Principles of Programming Languages (4) 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. Prereq: CIS 315.
427/527 Introduction to Logic (4) Basic notions of logic: propositional logic, first-order logic, Hilbert systems, sequent calculus, natural deduction. Soundness, completeness, undecidability. Current research in logic frameworks, automated deduction, Curry-Howard isomorphism. Prereq: MATH 233.
429/529 Computer Architecture (4) RISC (reduced instruction-set computer) and CISC (complex instruction-set computer) design, storage hierarchies, high-performance processor design, pipelining, vector processing, networks, performance analysis. Prereq: CIS 313, 314, 323.
432/532 Introduction to Networks (4) Principles of computer network design. Link technologies, packet switching, routing, internetworking, reliability. Internet protocols. Programming assignments focus on protocol design. Prereq: CIS 313, 314, 323. CIS 415 recommended.
433/533 Computer and Network Security (4) Examines fundamental security topics, including security policies and cryptography, and real-world solutions such as network intrusion detection, IPsec, security e-mail, web service. Prereq: CIS 432/532.
441/541 Introduction to Computer Graphics (4) Introduction to the hardware, geometrical transforms, interaction techniques, and shape representation schemes that are important in interactive computer graphics. Programming assignments using contemporary graphics hardware and software systems. Prereq: CIS 313, 323; pre- or coreq: CIS 314.
443/543 User Interfaces (4) Introduction to user interface software engineering. Emphasis on theory of interface design, understanding the behavior of the user, and implementing programs on advanced systems. Prereq: CIS 313, 314, 323.
445/545 Modeling and Simulation (4) Theoretical foundations and practical problems for the modeling and computer simulation of discrete and continuous systems. Simulation languages, empirical validation, applications in computer science. Prereq: CIS 314, 315.
451/551 Database Processing (4) Fundamental concepts of DBMS. Data modeling, relational models and normal forms. File organization and index structures. SQL, embedded SQL, and concurrency control. Prereq: CIS 315.
452/552 Database Issues (4) Covers central database issues such as access methods, security, tuning, and concurrency control. Examines alternative database models. Prereq: CIS 451/551.
453/553 Data Mining (4) Databases, machine learning, artificial intelligence, statistics, and data visualization. Examines data warehouses, data preprocessing, association and classification rule mining, and cluster analysis. Prereq: CIS 451/551.
455/555 Computational Science (4) Solving scientific problems with high-performance computers; algorithms, languages, and software used in scientific computing and visualization. Group projects on current research in physics, chemistry, biology, and other sciences. Prereq: CIS 314, 422.
461/561 Introduction to Compilers (4) Lexical analysis, parsing, attribution, code generation. Prereq: CIS 314, 425 or 624. CIS 420/520 strongly recommended.
471/571 Introduction to Artificial Intelligence (4) Basic themes, issues, and techniques of artificial intelligence, including agent architecture, knowledge representation and reasoning, problem solving and planning, game playing, and learning. Prereq: CIS 315.
490/590 Computer Ethics (4) Addresses ethical issues and social impacts of computing. Topics include crime, hacking, intellectual property, privacy, software reliability, employment, and worldwide networks.
Prerequisites to graduate-level CIS courses are intended as guidelines. Students who are uncertain about eligibility for enrollment in a course are encouraged to consult the instructor.
503 Thesis (116R)
601 Research: [Topic] (116R)
602 Supervised College Teaching (15R)
603 Dissertation (116R)
604 Internship: [Topic] (14R)
605 Reading and Conference: [Topic] (116R)
606 Field Studies: [Topic] (116R)
607 Seminar: [Topic] (15R)
608 Colloquium: [Topic] (1R)
609 Final Project (116R) Final project for master’s degree without thesis.
610 Experimental Course: [Topic] (15R)
621 Algorithms and Complexity (4) Design and analysis of algorithms, strategies for efficient algorithms, introduction to complexity theory including NP-completeness. CIS 420/520 strongly recommended.
622 Theoretical Foundations: [Topic] (4R) Selected topics from computability and complexity theory. Prereq: CIS 621. R twice when topic changes for maximum of 12 credits.
624 Structure of Programming Languages (4) Introduction to axiomatic, operational, and denotational semantics. Environments, stores, and continuations. Type theory, subtypes, polymorphism, and inheritance. Functional and logic programming.
630 Distributed Systems (4) Principles of distributed computer systems: interprocess communication, distributed file systems, distributed timing and synchronization, distributed programming, transactions, process scheduling, distributed shared memory. Prereq: CIS 415 or equivalent, CIS 429/529.
631 Parallel Processing (4) Advanced topics in parallel processing including massively parallel computer architecture, supercomputers, parallelizing compiler technology, performance evaluation, parallel programming languages, parallel applications. Prereq: CIS 429/529.
632 Computer Networks (4) Advanced issues in computer networks, focusing on research to extend the services offered by the Internet. Prereq: CIS 432/532.
640 Writing in Computer Research (2) Students learn to provide and accept constructive criticism of writing samples in a workshop format.
650 Software Engineering (4) 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.
677 Knowledge-Based Interfaces (4) Examination of research on knowledge-based user interfaces with particular attention to cognitive modeling. Topics include intelligent tutoring systems, natural language interfaces, and expert systems explanation. Prereq: CIS 471/571.
Computer Information Technology Courses (CIT) [back to top]
281 Advanced Business Systems (4) Develop integrated office applications using Visual Basic for Applications and Microsoft Access, Excel, and Word. Requires computer-laboratory work in addition to regularly scheduled hours. Prereq: CIS 111.
381 Database Systems (4) Introduction to database systems, emphasis on database design and access. Database concepts, data modeling, normalization, data warehousing, query languages, formulation of complex queries. Prereq: CIT 281.
382 Information Architectures and Intranets (4) Organization of information on the web and applications of Internet technology. Emphasis on planning, implementation, and issues that apply to building and maintaining business Intranets. Prereq: CIT 381.
383 Enterprise Networks (4) Fundamentals of data communication and networks applied to enterprise networks and the Internet. Network management and security. Prereq: CIT 382.
|