Summer 2009 Course Descriptions
COMP 10-B Exploring Computer Science
Everyday life is becoming more and more dependent upon computers, which will create many opportunities and challenges for students during and after their college careers. This half-credit class offers you an opportunity to discover how computers work and how they can be used to solve general problems. You will be introduced to basic computer problem solving programming techniques through lectures and labs using the C++ programming language. No prior computer experience is necessary, only a desire to learn. For students exploring their career options, this class is applicable not only to computer science, but to cognitive science, economics, medicine and a host of other professions that depend highly on computers.
Prerequisite: A sincere interest in learning more about computer science and no prior programming experience.
COMP 22-B Discrete Mathematics
(Cross-listed as Mathematics 22.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.
Prerequisite: Math 11 or Computer Science 11 or permission of instructor.
COMP 50-B Introduction to Game Development
How do you create a complete computer / video game from start to finish? What are the different elements to a game? What makes a great game? Computer game development requires all facets of Computer Science, including Computer Graphics, Artificial Intelligence, Algorithms, Data Structures, Networking, and Human-Computer Interaction. It also requires knowledge of other disciplines including Economics, Mathematics, Physics, and Psychology. The value of this course goes beyond culminating Computer Science. It is largely a hands-on course where real-world skills including design, teamwork, management, documentation and solid communications are critical. This course will delve into topics such as the game engine, sound, rendering, modeling, and the user interface.
Prerequisite: COMP 15.
Note: A pre-requisite for COMP 0050B Special Topics: Introduction to Game Development is COMP 0015 Data Structures. All others should enroll in EXP 0032B Introduction to Game Development (call number - 00447).COMP 150-B Sensor Networks
Sensor Networks are distributed systems comprised of resource constrained devices that are tasked to collaborate toward some common sensory goal. Newer sensor networks are emerging that consist of heterogeneous sensing and actuation devices that are embedded into physical spaces, capture and manipulate more sophisticated data (e.g., audio, video) and may respond to the physical environment in which they are embedded (e.g., move cameras, toggle lights, un/lock doors). This class will provide an overview of the many domain specific challenges that these systems naturally confront, including task decomposition, resource allocation and scheduling, task distribution, resource usage optimization, data aggregation, and abstractions/languages for SN task specification. Students will work in small groups to create their own Sense and Respond applications.
Prerequisite: Comp 40 or EE 14.
Note: Crosslisted as EE 193-B.COMP 170-B Theory of Computation
Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems.
Prerequisite: COMP 15 and MATH 22.
COMP 11-C Introduction to Computer Science
The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.)
Prerequisite: High school programming course, COMP 10, EN 47, or consent.
COMP 15-C Data Structures
M 6:00p-8:15p, W 6:00p-7:15p, Halligan Hall 106
A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.
Prerequisite: COMP 11 or consent.
COMP 40-C Computer Architecture
Structure and function of the main components of a computer systems: processors, main memory, and disk storage devices. Processor design including instruction set design and interpretation. Assembly language programming. Implementation issues for high-level languages.
Prerequisite: COMP 15.
COMP 150-CB Special Topics: Serious Games
Modern computer gaming technology has been successfully and is increasingly used for purposes other than entertainment, such as training, education, advertising, communication, team building and more. This course will introduce the history, principles and practices of these serious games. We will review and analyze existing serious games, and discuss the tradeoffs involved in creating a game with a specific non-entertainment purpose, while still retaining the benefits of gaming. We will focus on game design principles, and also discuss the development issues that can arise. Students will participate in a group project to create a serious game.
Prerequisite: Comp 50-GD, or Comp 15 and consent of instructor.


