Spring 2012 Courses

050. The Digital World
Eric Chown T 10:00 - 11:25, TH 10:00 - 11:25
Explores the means and the results of the digital revolution. How is information coded and stored? How can it be safeguarded? How does the widespread coding and transmission of data impact issues such as privacy and intellectual property? Examines systems such as BitTorrent both from the point of view of how they operate as digital tools, and the implications of their use and misuse.
101. Introduction to Computer Science
Daniela Oliveira M 1:00 - 2:25, W 1:00 - 2:25
What is computer science, what are its applications in other disciplines, and what is its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class. Assumes no prior knowledge of computers or programming.
210. Data Structures
Eric Chown T 1:00 - 2:25, TH 1:00 - 2:25
Solving complex algorithmic problems requires the use of appropriate data structures such as stacks, priority queues, search trees, dictionaries, hash tables, and graphs. It also requires the ability to measure the efficiency of operations such as sorting and searching in order to make effective choices among alternative solutions. Offers a study of data structures, their efficiency, and their use in solving computational problems. Laboratory exercises provide an opportunity to design and implement these structures. Students interested in taking Computer Science 210 are required to pass the computer science placement examination before class starts.
220. Computer Organization
William Silver M 1:00 - 2:25, W 1:00 - 2:25
Computer systems are organized as multiple layers. Each layer provides a more sophisticated abstraction than the layer upon which it rests. Examines system design at the digital logic, machine language, assembly language, and operating system layers of computer organization. The goal of the course is to understand how it is possible for hardware to carry out software instructions. Laboratory work familiarizes students with a particular machine and operating system through assembly-language programming and the use of logic design techniques to study the behavior of basic machine components.
280. Projects in Computer Science
Allen Tucker TH 1:00 - 3:55
Affords students the opportunity to work on large-scale software projects. Most involve the student, or team of students, contributing to an ongoing project. Emphasis placed on how the nature of such work differs from the coursework typically found in a computer science course. Work consists mainly of the projects, but students also required to give regular progress reports and presentations.
370. Computer Networks
Daniela Oliveira M 10:00 - 11:25, W 10:00 - 11:25
Computer networks are everywhere: e-mail, the Web, wireless networks, mobile devices, networked sensors, satellite communication, peer-to-peer applications. New applications based on networks appear constantly. Provides an introduction to the exciting field of computer networks by taking a top-down approach. Begins with an overview of computer networks, hardware and software components, the Internet, and the concept of protocols and layered service. Delves into details about the four main layers making up the computer network stack: Application (HTTP, FTP, e-mail, DNS, peer-to-peer applications and socket programming), Transport (TCP, UDP, and congestion control), Network (IP, routers, and routing algorithms) and Link Layer and Local Area Networks (medium access control, switches, and Ethernet). Also covers wireless and mobile networks (CDMA, WiFi, cellular internet access, mobile IP, and managing mobility).