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 341: Computer Networks
Concepts, principles, protocols, and applications of computer networks with a focus on the Internet. Application layer protocols such as http, smtp. Socket programming and peer-to-peer networks. Transport-layer protocols such as TCP, UDP and congestion control. Network layer algorithms for routing and broadcast, and multicast. Link-level protocols for local area networks such as Ethernet and WiFi. Issues in network privacy and security.
CS 363: Computer Graphics
An introduction to computer graphics, with an emphasis on applications programming. A commonly used application programming interface (API) is used to study geometric transformations, parallel and perspective projections, hidden surface removal, light sources, shading, and reflection. Students will write programs using the API and a high level programming-language. Offered alternate years.
CS 365: Internet Programming
In this course we examine three-tier Internet application architectures. Applications developed for the Internet typically have a database back end, an application server in the middle, and a web server on the front end. We will examine application programming frameworks from CGI to Servlets, and other modern application programming frameworks such as Ruby on Rails. Other topics include XML-based architectures such as RSS and web services, data transformation using XSL and XSLT. The course is largely project-driven; students will implement a complete web-based application.