|Algebra to Algorithms||—||—||—||Spring 2011|
|Computability and Language Theory||—||Fall 2010*||Winter 2011*||Spring 2011*|
|Computer Science Foundations||—||—||Winter 2011||Spring 2011|
|Data and Information: Computational Linguistics||—||Fall 2010||—||—|
|Programming in C++ and Robotics||Summer 2010||—||—||—|
|Undergraduate Research in Scientific Inquiry||—||Fall 2010*||Winter 2011*||Spring 2011*|
*Upper division credit will be awarded for upper division work.
Algebra to Algorithms
Faculty: Judy Cushing
Description: Western science relies on mathematics as a powerful language for expressing patterns that appear in the natural world. Mathematical models allow predictions, more or less, of complex natural systems, and modern computing has both magnified the power of those models and helped shape new models that increasingly influence 21st-century decisions. Computer science, the constructive branch of mathematics, relies on mathematics for its culture and language of problem solving, and it also enables the construction of mathematical models. Patterns that appear in the natural world and are expressed in mathematical models also sometimes appear in the visual arts.
In this program, we will explore connections between mathematics, computer science, and the natural sciences, and develop mathematical abstractions and the skills needed to express, analyze and solve problems arising in the sciences. In addition, we will explore how to program interesting visual shapes using simple geometry. The regular work of the program will include seminars, lectures, problem solving workshops, programming labs, problem sets, and seminar papers. The emphasis will be on fluency in mathematical thinking and expression along with reflections on mathematics and society. Topics will include concepts of algebra, algorithms, programming and problem solving, with seminar readings about the role of mathematics in modern education and society.
This program is intended for students who want to gain a fundamental understanding of mathematics and computing before leaving college or before pursuing further work in the sciences or the arts.
Computability and Language Theory
Fall 2010, Winter and Spring 2011
Description: The computer is a tremendously useful tool. Is there anything it can’t do? Through studying topics in advanced computer science, this program will explore what computers can do, how we get them to do it, and what computers still can’t do. It is designed for advanced computer science students and students with an interest in both mathematics and computer science.
Topics covered will include formal computer languages, systems of formal logic, computability theory, and programming language design and implementation. Students will also study a functional programming language, Haskell, learn the theoretical basis of programming languages and do an in-depth comparison of the properties and capabilities of languages in the four primary programming paradigms: functional, logic, imperative, and object-oriented. Program seminars will explore selected advanced topics in logic, language theory and computability.
Topics will be organized around three interwoven themes. The Formal Languages theme will cover the theoretical basis of language definitions, concluding with a study of what is computable. The Logic theme will cover traditional logic systems and their limits, concluding with some non-traditional logic systems and their applications to computer science. In the Programming Language theme we will study both the theoretical basis and practical implementation of programming language definitions by comparing the implementations of the four programming language paradigms. Students will have an opportunity to conclude the program with a major project, such as a definition and implementation of a small programming language.
Computer Science Foundations
Winter and Spring 2011
Description: The goal of this program is to learn the intellectual concepts and skills that are essential for advanced work in computer science. Students will have the opportunity to achieve a deeper understanding of increasingly complex computing systems by acquiring knowledge and skills in mathematical abstraction, problem solving, and the organization and analysis of hardware and software systems. The program covers material such as algorithms, data structures, computer organization and architecture, logic, discrete mathematics and programming in a liberal arts computer science curriculum.
In both quarters the program content will be organized around four interwoven themes. The computational organization theme covers concepts and structures of computing systems from digital logic to operating systems. The programming theme concentrates on learning how to design and code programs to solve problems. The mathematical theme helps develop mathematical reasoning, theoretical abstractions and problem solving skills needed for computer scientists. The technology and society theme explores social, historical or philosophical topics related to science and technology.
Students who take the program Data and Information: Computational Linguistics in fall quarter, or who have equivalent experience, will be well prepared for this program.
Data and Information: Computation and Language
Description: Have you ever wondered how web searches work? It is often claimed that one can successfully search for web sites, maps, blogs, images…just by entering a few “key words”. How do they do it? More generally, how can computers be programmed to interpret texts and data?
This program will bring together faculty and students with interest and expertise in language and computer science with the goal of exploring these questions: When we (or Google’s computers) read a text, how do we (or they) understand what the text means? We humans bring to our reading of the text three critical things: 1) knowledge of the language in which the text is written—its grammar and the meanings of the words, and how words are put together into sentences and paragraphs, 2) our understanding of how the world works and how humans communicate, and 3) our natural human intelligence. Even with these abilities, however, we often misinterpret text (or data) or are faced with too much information. The help a computer gives us, however, is sometimes different from how we naturally think about the words, images, maps or other information that we encounter.
In this program we will explore how to use computing to understand language. Although the task is complex, an understanding of the abstract structure, logic and organization of language will guide us to successful computational processing of the more complex human languages.
In logic, our work will include looking at the structure of words, sentences, and texts (syntax) as well as their meanings (semantics and reasoning). We will examine the underlying grammatical structure of language and its close connection to computing and computer programming. In addition, we will learn to program in Python and study how computers are used to “understand” texts and data. Lectures, seminar and case studies will examine how to make data from text and text or meaning from data.
Programming in C++ and Robotics
Summer 2010, 2nd Session
Faculty: Richard Weiss
Description: We will explore computers, programming and AI through robotics. The robot we will use is the Scribbler by Parallax. Students will work on a project in groups after learning the basics about the robot. They will also learn the fundamentals of programming in C++. This is ideal for students who have programmed in another language. Students will develop an understanding of concepts such as object-oriented programming, program design, problem solving and C++ pointers.
Undergraduate Research in Scientific Inquiry
Fall 2010, Winter and Spring 2011
Description: Many faculty members in the Scientific Inquiry planning unit have ongoing research projects that offer students the opportunity to participate in research at the undergraduate level. Students typically begin by working in apprenticeship with faculty or laboratory staff and gradually take on more independent projects within the context of the specific research program as they gain experience. Well-prepared students are encouraged to take advantage of Evergreen’s flexible learning structure and excellent equipment to work closely with faculty members on original research. Faculty offering undergraduate research opportunities are listed below. Contact them directly if you are interested.
Judith Bayard Cushing studies how scientists might better use information technology in their research. She would like to work with students who have a background in computer science or one of the sciences (e.g., ecology, biology, chemistry or physics), and who are motivated to explore how new computing paradigms, such as object-oriented systems and new database technologies, can be harnessed to improve the individual and collaborative work of scientists.
Neal Nelson and Sheryl Shulman are interested in working with advanced computer topics and current problems in the application of computing to the sciences. Their areas of interest include simulations of advanced architectures for distributed computing, advanced programming languages and compilers, programming languages for concurrent and parallel computing, and hardware modeling languages.
Richard Weiss works on robotics, computer vision and artificial intelligence. He is also interested in computer architecture and security.
View: Full Description