Subject Description
Computer Science

CSCI 210 | Data Structures

This course is the third in the CS introductory sequence. Its focus is on the construction and use of common data structures, especially within the Java language. The primary emphasis is on the student being able to develop, modify, and analyze strengths and weaknesses of these structures, in preparation for a formal course on algorithms. There is a weekly lab component.

CSCI 111 | Intermediate and Object-Oriented Programming

This course builds upon introductory programming fundamentals, unifying prior programming preparation within Java and its object-oriented programming (OOP) framework. Emphasis is placed on developing fluency in Java and strengthening the use of abstraction, modularity, and polymorphism in software design. This course also introduces topics such as recursion and elementary complexity analysis as foundational tools for problem solving and reasoning about algorithmic efficiency. This course has a weekly laboratory.

CSCI 498 | Capstone Planning Seminar

This 0.5-unit pass/fail course provides structure for students as they prepare for their senior capstone in computer science. Students identify a feasible project topic, survey relevant literature and technologies, and develop a coherent project plan that positions them to begin substantive work at the start of the following semester. Emphasis is placed on team definition (if applicable), project scoping, design, data acquisition, and early prototyping.

CSCI 162 | Intermediate Programming

This course builds on the material learned in an introductory computer science course in order to strengthen a student's foundation in programming. The emphasis of this course is on creating steadily larger and more structured programs, and to present students with opportunities to encounter problems with higher degrees of complexity. Material covered may include such topics as sorting, exception handling, file input/output, use of various data structures (e.g., multidimensional arrays, maps, sets, etc.), use of the debugger, and systematic testing.

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.