Subject Description
Computer Science

CSCI 498 | Internship Seminar

This scheduled weekly interdisciplinary seminar provides the context to reflect on concrete experiences at an off-campus internship site and to link these experiences to academic study relating to the political, psychological, social, economic and intellectual forces that shape our views on work and its meaning. The aim is to integrate study in the liberal arts with issues and themes surrounding the pursuit of a creative, productive, and satisfying professional life. Students receive 1.0 unit of academic credit for the academic work that augments their concurrent internship fieldwork.

CSCI 492 | Senior Thesis

A senior thesis allows students to explore areas of computer science that are new to them, to develop the skill of working independently on a project, and to synthesize and present a substantial work to the academic community. Thesis proposals are normally developed in consultation with the student's research committee. This committee consists of the student's faculty supervisor and two other faculty members. It is involved in the final evaluation of the project. The results are presented in a public seminar or written in a publishable form.

CSCI 491 | Senior Thesis

A senior thesis allows students to explore areas of computer science that are new to them, to develop the skill of working independently on a project, and to synthesize and present a substantial work to the academic community. Thesis proposals are normally developed in consultation with the student's research committee. This committee consists of the student's faculty supervisor and two other faculty members. It is involved in the final evaluation of the project. The results are presented in a public seminar or written in a publishable form.

CSCI 481 | Compilers and Compiler Writing

Compilers take input programs written in a high-level language and generate equivalent programs in a low-level language. This course introduces the mathematical tools (formal languages and automata) necessary for recognizing and validating input programs and the computational techniques used to construct equivalent output programs. Students develop first-hand experience with the process by implementing a sample compiler as a course project. The tools and techniques introduced in this course can be applied across a wide range of applications.

CSCI 475 | Operating Systems

One the most complex software systems ever assembled, the modern operating system serves as the interface between the human and the machine. This course traces how the simple idea of ``resource sharing'' unravels into some of the most confounding problems and original breakthroughs in computer science. Course topics include process and thread management, input/output, CPU scheduling, synchronization primitives, memory management, and file systems.

CSCI 462 | Senior Project

A practical computer software development experience to incorporate topics learned in advanced computer science courses with the tools and techniques for software development studied in the software engineering class. Students may enroll in either the one-semester, one-unit 460 or the two-semester, 0.5 unit per semester sequence, but not both.

CSCI 461 | Senior Project

A practical computer software development experience to incorporate topics learned in advanced computer science courses with the tools and techniques for software development studied in the software engineering class. Students may enroll in either the one-semester, one-unit 460 or the two-semester, 0.5 unit per semester sequence, but not both.

CSCI 460 | Senior Project

A practical computer software development experience to incorporate topics learned in advanced computer science courses with the tools and techniques for software development studied in the software engineering class. Students may enroll in either the one-semester, one-unit 460 or the two-semester, 0.5 unit per semester sequence, but not both.