Fall Term
110-01 Computers, Information, and SocietyNew information, ranging from gene sequence data to records of oceanic earthquakes to presidential polling results, is growing rapidly each year. The use of information and databases in virtually all aspects of modern life is both an indispensable aspect of modern society and a potential risk to our privacy, security, and even our identity. How do modern databases work? How is database information organized and distributed? How are databases protected from intrusion and other unauthorized uses? We will learn how to build and use databases in order to answer these questions using domains such as biology, economics, and psychology. Basic computational constructs such as variables, functions, parameters, and control structures will be used to solve interesting database problems.Ellis
110-02 Computers, Information, and SocietyMany of today’s computing applications are designed to interact with humans, necessitating a change both in how programs are written and how information is presented for human viewing. As computers become ever more integrated into society, it becomes increasingly important to provide content that facilitates the interaction between humans and computers. Kinetic content, whether animation or video, allows information and meaning to be conveyed from computers to humans far more effectively than simple textual content. This course will explore the core computing concepts of event-driven programming, objects, modularity and control flow in the context of designing and creating computer animation and video, and the programs that utilize this kinetic content as the primary means of human-computer interaction.Spezialetti
115L. Introduction to ComputingA fundamental treatment of computer science
topics featuring the study of the high-level programming language Java. Topics
discussed will include computer architecture, programming languages, and ethical
issues involved in computer use. Problem solving techniques involved in writing programs
will be studied, proper style and documentation will be required, and object oriented
program design will be introduced. A required weekly lab will involve an intensive
study of programming techniques in Java. Prerequisite: Either Computer Science 105 or
mathematics skills appropriate for enrolling in a calculus class. (1 1/4 course
credits)Ellis, Morelli
215L. Data Structures and AlgorithmsA study of data structures and algorithms
using a high-level programming language. The basic data structures (lists, stacks,
queues, trees, and files) and basic algorithms (searching, sorting, and file
management) will be introduced and implemented. Data and procedural abstraction, software
design principles, and the analysis of the complexity of algorithms will be
discussed. Details related to writing will be covered in a required weekly lab.
Prerequisite: Computer Science 115L with a grade of C- or better. (1 1/4 course
credits)Morelli
219. Theory of ComputationA selection of topics intended to serve as an
introduction to formal languages and automata theory. The topics will be chosen from
among finite state machines, pushdown automata, Turing machines, the Chomsky language
hierarchy and related questions of computability. Prerequisites: Computer Science 115L
and either Mathematics 205 or Computer Science 203. Offered in alternate
years.Miyazaki
240. Principles of Software EngineeringThe study of issues involved in
developing large-scale software systems. Topics covered include software life cycle,
system design and specification, advanced programming concepts and techniques for
software testing, debugging and maintenance. The issues studied will be applied to team
programming projects. Prerequisite: C- or better in Computer Science 215L. Enrollment
limited.Ellis
315. Systems SoftwareA study of the organization and implementation of
computer operating systems. Topics include operating systems organization, file
systems, memory and process management, resource allocation, recovery procedures,
multiprogramming and distributed processing. The Unix operating system will be used and
emphasis will be placed on how various system functions have been implemented in the
Unix environment. Prerequisite: Computer Science 230.Spezialetti
[320. Analysis of Algorithms]A continuation of the study begun in Computer
Science 215 of the complexity of algorithms used in computing. The notions of P, NP,
and NP-complete problems and of noncomputability will be covered. The algorithms
studied will include examples involving sorting, graphs, geometry and
combinatorics. Theoretical aspects of algorithms will be studied as well as practical
aspects useful in writing programs. Prerequisites: Computer Science 215L with a grade
of C- or better and Mathematics 205 or Computer Science 203.
[333. Computer Networks]An introduction to the principles and practices of local
area and wide area networking. Topics include the study of the layers of computer
networking, network configurations, protocols, security and reliability. Issues
related to implementing networking configurations will be studied. Prerequisite: C- or
better in Computer Science 215L. Enrollment limited.
[352. Artificial Intelligence]A study of basic principles and research methods in
artificial intelligence. The course exposes students to selected topics in the field
including pattern recognition, problem solving, theorem proving, knowledge
representation, and natural language understanding by computers. The course will draw on
recent advances made by cognitive scientists in each of these applications. Students
are expected to study the theoretical background of an application. They will also
complete several programming and simulation assignments during the semester.
Prerequisite: Computer Science 215L with a grade of C- or better.Morelli
399. Independent StudyIndependent work to develop maturity and initiative in the
solution of a problem in the area of the students special interests. This
course may require concurrent registration in Computer Science 403 or 404. Submission
of the special registration form, available in the Registrars Office, and the
approval of the instructor and chairperson are required for enrollment. (1-2 course
credits)Staff
403. Computer Science SeminarStudents engaged in research (Computer Science 419)
or independent study (Computer Science 399) and senior exercise students will meet
with computer science faculty for oral presentations and critical discussions of
journal papers, research plans and research progress. Seniors using this course to satisfy
the senior exercise requirement will be expected to complete a research or design
project and make a formal presentation on its results to the seminar. The project may
be an extension or revision of a project conducted in one of their other major
courses. Prerequisite: permission of the instructor. (1/2 course credit per
semester)Morelli
[415. Special Topics in Computing]The study of a specific intermediate or
advanced topic in computer science. A specific topic may involve a specialized area
of computer science or applications of computer science principles to other
disciplines. Topics will vary from year to year depending on current developments in
computing or interests of the instructor. This course may be repeated for credit.
semester)TBA
419. Research in Computer Science (Library) Students will conduct original
research projects, culminating with a final formal paper, under the direction of an
individual faculty member. Students electing this type of independent study should
plan on initiating the work no later than the fall of their senior year. Honors candidates
should plan on no less than two semesters of study; others may enroll in one or more
semesters. A written research plan must be submitted during the semester prior to
taking this course. Prerequisites: permission of the instructor and
concurrent enrollment in Computer Science 403 or 404. This course may be repeated for
credit. Submission of the special registration form, available in the
Registrars Office, and the approval of the instructor and chairperson are required
for enrollment. (1/2 course credit per semester)Staff
425. Research in Computer Science (Laboratory) Students will conduct original
research projects, culminating with a final formal paper, under the direction of an
individual faculty member. Students electing this type of independent study should
plan on initiating the work no later than the fall of their senior year. Honors candidates
should plan on no less than two semesters of study; others may enroll in one or more
semesters. A written research plan must be submitted during the semester prior to
taking this course. Prerequisites: permission of the instructor and
concur-rent enrollment in Computer Science 403 or 404. This course may be repeated
for credit. Submission of the special registration form, available in the
Registrars Office, and the approval of the instructor and chairperson are
required for enrollment. (1/2 course credit per semester)Staff
466. Teaching Assistantship. Submission of the special registration form, available in
the Registrars Office, and the approval of the instructor and chairperson are
required for enrollment. (1/2 -1 course credit)Staff
490. Research Assistantship(1/2 -1 course credit)Staff
498. Senior Project Part I
This course is comprised of a research or implementation project and a final written report. This course is open to all senior majors who intend to complete a 2-semester project and is required of all students who wish to earn honors in Computer Science. A student who intends to complete a year long project must locate a project advisor and must submit a preliminary proposal to the project advisor by the last day of classes in the Spring semester of the junior year. In addition to the proposal, submission of the special registration form, available in the Registrar's Office, and the approval of the instructor and chairperson are required for each semester of this year-long project. (1/2 course credits are considered pending in the first semester; 1/2 course credits will be awarded for completion in the second semester. Staff
Spring Term
110-01 Computers, Information, and SocietyNew information, ranging from gene sequence data to records of oceanic earthquakes to presidential polling results, is growing rapidly each year. The use of information and databases in virtually all aspects of modern life is both an indispensable aspect of modern society and a potential risk to our privacy, security, and even our identity. How do modern databases work? How is database information organized and distributed? How are databases protected from intrusion and other unauthorized uses? We will learn how to build and use databases in order to answer these questions using domains such as biology, economics, and psychology. Basic computational constructs such as variables, functions, parameters, and control structures will be used to solve interesting database problems.Ellis
110-03 Computational Intelligence and SocietyComputers and robots are becoming increasingly powerful and are now capable of solving problems that were once beyond human ability. Computer chess programs routinely beat the best human players. Computers have proved significant mathematical theorems. Autonomous robots explore space, mow the lawn, and take care of the home-bound elderly. Some observers believe that computers will soon exceed human intelligence. What are the implications of computer intelligence on society and individuals? Should intelligent machines have rights? Should we limit computer power? Can we? As we explore these questions, we will learn how to build puzzle-solving and game-playing programs that display rudimentary forms of intelligence. Basic computational constructs such as variables, functions, parameters, and control structures will be covered.Morelli
115L. Introduction to ComputingA fundamental treatment of computer science
topics featuring the study of the high-level programming language Java. Topics
discussed will include computer architecture, programming languages, and ethical
issues involved in computer use. Problem solving techniques involved in writing programs
will be studied, proper style and documentation will be required, and object oriented
program design will be introduced. A required weekly lab will involve an intensive
study of programming techniques in Java. Prerequisite: either Computer Science 114 or
mathematics skills appropriate for enrolling in a calculus class. (1 1/4 course
credits)Yoon
203. Mathematical Foundations of ComputingAn introduction to the principles of
logic and discrete mathematics required in the study of computer science. Topics
covered may include: propositional and predicate logic and their relationship to
general proof techniques used in computing and correctness proofs of programs;
mathematical induction applied to recursion and recurrence relations; set theory with
an emphasis on infinite sets used in computing; counting principles useful in
analyzing graphs and trees; relations and functions and their relationship to
data-bases and functional programming languages. Computer programs will be used to
explore concepts examined in the course. Prerequisites: Computer Science 114 or previous
programming experience.Miyazaki
215L. Data Structures and AlgorithmsA study of data structures and algorithms
using a high-level programming language. The basic data structures (lists, stacks,
queues, trees, and files) and basic algorithms (searching, sorting, and file
management) will be introduced and implemented. Data and procedural abstraction, software
design principles, and the analysis of the complexity of algorithms will be
discussed. Details related to writing will be covered in a required weekly lab.
Prerequisite: Computer Science 115L with a grade of C- or better. (1 1/4 course
credits) Miyazaki
[304. Computer Graphics]An introduction to geometric
and computer graphics principles needed for developing software with graphical
output. General principles of designing and testing of software systems with reusable
components will be emphasized. Geometry and computer graphics topics covered will
include coordinate systems, geometric transformations, windowing, curves, fractals,
polyhedra, hidden lines, surfaces, color and shading. Graphical programs that model
phenomena from the natural sciences or aid the visualizing of conceptual models in
computer science and mathematics will be used for examples and assignments.
Prerequisites: Mathematics 132 and Computer Science 215L.
[316. Foundation of Programming Languages]A study of the organization,
specification and behavior of programming languages The course will focus on five
different programming language paradigms: imperative, object-oriented, functional,
logic, and concurrent. Programming assignments using example languages from each of these
paradigms will be required. Emphasis will be placed on learning C++, PROLOG and LISP
in a Unix environment. Other topics covered include language syntax, control
structures, objects and functions. Prerequisite: Computer Science 215L with a grade
of C- or better.
372. Database FundamentalsPrinciples of database systems, including such topics
as data independence, storage structures, relational data models, CODASYL and network
data models, security, and integrity. A programming project may be required.
Prerequisite: Computer Science 215L with a grade of C- or better.Ellis
[375. High-Performance Computing]
This course will introduce various programming models and techniques for multiprocessors. Students will design, implement, and evaluate parallel algorithms for solving complex problems that demand high computational speed. Topics covered include parallel machine architecture, analysis of parallel algorithms, load balancing, and various parallel algorithms including sorting, searching, linear systems, and image processing. Prerequisite: C- or better in Computer Science 230 or 320 and C- or better in either Mathematics 205 or Computer Science 203.
399. Independent StudyIndependent work to develop maturity and initiative in the
solution of a problem in the area of the students special interest. This course
may require concurrent registration in Computer Science 403 or 404. Submission of the
special registration form, available in the Registrars Office, and the approval of
the instructor and chairperson are required for enrollment.
404. Computer Science SeminarStudents engaged in research (Computer Science 419)
or independent study (Computer Science 399) and senior exercise students will meet
with computer science faculty for oral presentations and critical discussions of
journal papers, research plans and research progress. Seniors using this course to satisfy
the senior exercise requirement will be expected to complete a research or design
project and make a formal presentation on its results to the seminar. The project may
be an extension or revision of a project conducted in one of their other major
courses. Prerequisite: permission of the instructor. (1/2 course credit per
semester)Spezialetti
[415. Special Topics in Computing]The study of a specific intermediate or
advanced topic in computer science. A specific topic may involve a specialized area
of computer science or applications of computer science principles to other
disciplines. Topics will vary from year to year depending on current developments in
computing or interests of the instructor. This course may be repeated for credit.
419. Research in Computer Science (Library)Students will conduct original
research projects, culminating with a final formal paper, under the direction of an
individual faculty member. Students electing this type of independent study should
plan on initiating the work no later than the fall of their senior year. Honors candidates
should plan on no less than two semesters of study; others may enroll in one or more
semesters. A written research plan must be submitted during the semester prior to
taking this course. Prerequisites: permission of the instructor and
concurrent enrollment in Computer Science 403 or 404. This course may be repeated for
credit. Submission of the special registration form, available in the
Registrars Office, and the approval of the instructor and chairperson are required
for enrollment. (1/2 course credit per semester)Staff
425. Research in Computer Science (Laboratory) Students will conduct original
research projects, culminating with a final formal paper, under the direction of an
individual faculty member. Students electing this type of independent study should
plan on initiating the work no later than the fall of their senior year. Honors candidates
should plan on no less than two semesters of study; others may enroll in one or more
semesters. A written research plan must be submitted during the semester prior to
taking this course. Prerequisite: permission of the instructor and
con-current enrollment in Computer Science 403 or 404. This course may be repeated
for credit. Submission of the special registration form, available in the
Registrars Office, and the approval of the instructor and chairperson
are required for enrollment. (1/2 course credit per semester)Staff
466. Teaching Assistantship. Submission of the special registration form, available in
the Registrars Office, and the approval of the instructor and chairperson are
required for enrollment. (1/2 -1 course credit)
490. Research Assistantship(1/2 -1 course credit)Staff
499. Senior Project Part II
This course is comprised of a research or implementation project and a final written report. This course is open to all senior majors who intend to complete a 2-semester project and is required of all students who wish to earn honors in Computer Science. A student who intends to complete a yearlong project must locate a project adviser and must submit a preliminary proposal to the project adviser by the last day of classes in the Spring semester of the junior year. In addition to the proposal, submission of the special registration form, available in the Registrar's Office, and the approval of the instructor and chairperson are required for each semester of this year-long project. (1/2 course credits are considered pending in the first semester; 1/2 course credits will be awarded for completion in the second semester. - Staff
|