Course Topics

CS 150 Introduction to Computer Science I
An introduction to computer science emphasizing problem solving. Problems are selected from a variety of interesting areas such as graphics, image processing, cryptography, data analysis, astronomy, video games, and environmental simulation. Topics include algorithm design and object oriented programming.

CS 151 Introduction to Computer Science II
A continuation of the ideas presented in 150 with particular emphasis on data structures. Implementation of abstract data types such as stack, queue, tree, and graph as well as important algorithms. Analysis of sorting and searching algorithms.

CS 200 Software Design and Development
This course builds upon the foundation of CS 150 and CS 151. It emphasizes modern programming practices and introduces students to complex ideas such as graphical user interfaces, model/view/controller architecture, threading, XML, Linux programming environments, programming tools, and program documentation.

CS-239 ST: Tech & Cult in Year Dragon
This travel course to China will explore the influence that the technology sector is having on one of the world's oldest cultures as it becomes one of the world's fastest growing economies. Students will participate in site visits and meet with representatives of tech companies with local as well as global economic influence in order to study the role that computer science and associated technologies are playing in this transformation. In order to gain an understanding of the interplay between new and old, students will also visit important sites such as Tian'anmen Square, Forbidden City, Yuyuan Garden (Old City), the Bund, and the Great Wall. A weekend home stay is planned to celebrate the Chinese New Year. Students will experience the traditions of Chinese culture while seeing first-hand the impact of technology, modernization, and rapid economic growth of that culture.

CS 441 Operating Systems
A study of operating system structures and algorithms emphasizing multiple user systems, CPU scheduling in a multi-tasking environment, concurrency and parallel computing concepts including communication and synchronization issues, storage management, and protection and security.