Population Ethics

(Offered as ENST 474 and PHIL 374) Is our planet overpopulated? And if so, how many of us should live on it? Population raises tricky questions that are both empirical and broadly philosophical: How should we weigh the well-being of future individuals against the lives of those currently living? Should we aim for a future population whose average or whose total level of well-being is maximized—or should we apply some other standard? Even more fundamentally: are we right to think of human life as, on balance, a positive thing?

Sem: Evolutionary Comp

Evolutionary computation techniques harness the mechanisms of biological evolution, including mutation, recombination, and selection, to build software systems that solve difficult problems or shed light on the nature of evolutionary processes. In this course students will explore several evolutionary computation techniques and apply them to problems of their choosing. The technique of genetic programming, in which populations of executable programs evolve through natural selection, will be emphasized.

Information Theory

Information Theory formally studies how to efficiently transmit and store digital information. 4K video streams, high-quality audio from Bluetooth speakers,  digital radio, and secure Internet communication are all possible thanks to the solid mathematical foundations of Information Theory.

Computer Graphics

This course will explore the algorithms used to create “realistic” three-dimensional computer images. Major topics will include object representations (polygons, curved surfaces, functional models), rendering algorithms (perspective transformations, hidden-surface removal, reflectance and illumination, shadows, texturing), and implementation techniques (scan conversion, ray tracing, radiosity). Students will create images using Pixar's Renderman.

Requisite: COSC 112 or consent of the instructor. Limited to 50 students. Spring semester. Professor Rager.

Parallel and Distributed

Modern computers are becoming increasingly parallel, with many cores or processors working concurrently to perform a single task. In order to utilize the full power of modern computers, it is essential to write programs that exploit parallelism. This course introduces students to the art and science of writing parallel programs. We consider two computing paradigms: shared memory and message passing.

Machine Learning

Machine Learning algorithms allow computers to be taught to perform tasks without being explicitly programmed. This course is an introduction to machine learning and data mining. The course will explore supervised, unsupervised, ensemble and reinforcement learning. Topics may include: decision tree learning, rule learning, neural networks, support vector machines, Bayesian learning, clustering, hidden Markov model learning, and/or deep learning. The material of this course has some overlap with that of Computer Science 241, but it is permissible to take both.

Algorithms & Vis.

In this course, we will explore how algorithmic and aesthetic principles can be employed in concert to create interactive graphical content on the web. Topics will include design layout and combinatorial optimization, the geometry of color spaces, graph drawing, computational geometry, generative design, and visualization of data and algorithms. In addition, we will consider issues of algorithmic efficiency in performing computationally intensive tasks. We will investigate topics from both theoretical and applied perspectives.

Thinking for CS

Analytical thinking is inherent in every aspect of computer science. We need to be able to answer questions such as: how do I know that my program works correctly? How efficient is my approach to solving a problem? How does human-readable code get translated into something that can run on physical hardware? What problems are even solvable by computers? In order to study such questions, computer scientists must be able to communicate with one another using a common language, express ideas formally and precisely, and reason logically about these ideas.

Electrochemistry

One of the most pressing scientific and technological challenges of the times is to devise efficient and sustainable renewable energy systems, accessible to all, that can mitigate the devastating effects that fossil fuel burning has had on our climate and the threat to future generations on earth. The sun is an awesome source of energy; one-hour of sunlight is sufficient to power the planet for one year.

Subscribe to