Developing Innovative Software

Tired of writing programs that nobody ever uses? Then, this is the course for you. Many people come up with novel ideas for software, but lack the resources or ability to develop the software. Students will apply their programming skills to develop and deliver software based on the requirements of a client. Students will learn critical communication skills required to work with a client, work in teams with classmates, and experience the software lifecycle from requirements elicitation through delivery.

Algorithms

How does Mapquest find the best route between two locations? How do computers help to decode the human genome? At the heart of these and other complex computer applications are nontrivial algorithms. While algorithms must be specialized to an application, there are some standard ways of approaching algorithmic problems that tend to be useful in many applications. Among other topics, we will explore graph algorithms, greedy algorithms, divide-and-conquer, dynamic programming, and network flow.

Software Design & Development

Building large software systems introduces new challenges to software development. Appropriate design decisions and programming methodology can make a major difference in developing software that is correct and maintainable. In this course, students will learn techniques and tools that are used to build correct and maintainable software, improving their skills in designing, writing, debugging, and testing software. Topics include object-oriented design, testing, design patterns, software architecture, and designing concurrent and fault tolerant systems. This course is programming intensive.

Beginning Ballet

Students will study the basic movements and fundamentals of classical ballet. The movements are taught in a pure form, at a relaxed pace before proceeding to more complex combinations. Ballet I sets the groundwork for the movements and musicality of the ballet lesson.

Data Structures (in Python)

This course builds on the basic programming concepts learned in Computer Science 150 and Computer Science 121, shifting the focus to the organization of data in order to improve efficiency and simplicity of programs. Topics include the study of abstract data types and data structures (such as linked lists, stacks, queues, and binary trees). This course is programming-intensive.

Data Structures (in Python)

This course builds on the basic programming concepts learned in Computer Science 150 and Computer Science 121, shifting the focus to the organization of data in order to improve efficiency and simplicity of programs. Topics include the study of abstract data types and data structures (such as linked lists, stacks, queues, and binary trees). This course is programming-intensive.

Astrophysics I: Stars/Galaxies

A calculus-based introduction to the properties, structure, formation, and evolution of stars and galaxies. The laws of gravity, thermal physics, and atomic physics provide a basis for understanding observed properties of stars, interstellar gas, and dust. We apply these concepts to develop an understanding of stellar atmospheres, interiors, and evolution, the interstellar medium, and the Milky Way and other galaxies.
Subscribe to