Description of Computer Science Courses - Fall 2005
EN- 1-ECS Introduction to Computers in Engineering
Introduction to how computers can be used for engineering problem solving;
that is, to analyze data and to simulate engineering systems and devices.
Specific computer teachings include operating systems, file management,
and the basics of structured and object-oriented programming, including
the translation of mathematical expressions into well-structured programming
statements, iteration, number representation, and arrays.
Rudimentary numerical and data analysis methods include curve fitting,
optimization, equation solving, computer calculus, and statistics.
EN-47-CS Exploring Computer Science Lecture
This half-credit course is a fast-paced introduction to computer science and
the C++ programming language for students with NO background in computer
programming, except EN 1 or EN 2 where applicable. The weekly programming
assignments build upon previous ones, employ important computer science
algorithms, and lead to the construction of a real-life application.
COMP 10 Computer Science Primer
A first course for students with no background in computer programming. Basic
concepts of computer architecture, computer hardware, and computer programming.
Basic concepts of computer architecture, computer hardware, web page
construction, and computer programming. Introduction to binary numbers,
simple logic circuits, the UNIX Operating System, HTML programming, and the
C++ Programming Language. Provides foundation for further study. Prerequisite:
High school algebra.
COMP 11 Intro 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. Prerequisite: Ability to write simple
computer programs (in any programming language) or successful completion of a Math course
numbered 11 or higher.
COMP 15 Data Structures
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 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 106 Object-Oriented Programming for Graphical User Interfaces
Object-oriented programming (OOP) and design, using the Java language. General OOP concepts (classes
and instances, methods, inheritance) plus specifics of programming in Java, with emphasis on
application to graphical user interfaces (GUIs). Design and programming projects using Java and toolkits.
Prerequisite: COMP 15 or consent.
COMP 111 Operating Systems
This course studies operating system design from the bottom up. Students will write a modest operating
system for the CRISP simulator. Practical issues to be addressed include how to represent process
state; how to effect context switching; how to support system calls; interrupt processing;
various appropriate data structures and algorithms; protection; scheduling; memory management;
and special issues for multiprocessor operating systems. Other issues will be addressed in a more
general or abstract way, including mutual exclusion, deadlock, and file system structure.
Prerequisites: Comp 40 and one additional course in computer science numbered 80 or above.
COMP112-01 Networks & Protocols
Design and implementation of computer communication networks, protocols, and applications,
with an emphasis on the Internet protocol suite. Network architectures and programming
interfaces. Data link, transport, and routing protocols. Congestion sources and remedies.
Addressing and naming in local area and wide area networks. Network security and network
management. Prerequisite: Computer Science 111 or consent.
COMP 128 Numerical Linear Algebra
(Cross Listed as Math 128 Numberical Linear Algebra)
The two basic computation problems of linear algebra; solution of linear systems and computation
of eigenvalues and eigenvectors. Prerequisites: Math 46 and Comp 11.
COMP 131 Artificial Intelligence
History, theory, and computational methods of artificial intelligence. Basic concepts include
representation of knowledge and computational methods for reasoning. One or two application areas
will be studied, to be selected from expert systems, robotics, computer vision, natural language
understanding, and planning. Students will implement the computational methods in the Lisp language.
Prerequisites: Comp 15 and either MATH 22 or familiarity with both symbolic logic and basic probability theory.
COMP 150-02 Special Topics: Computational Biology
This course introduces the key computational challenges in molecular
biology and explores the algorithms and programming paradigms behind
their solutions. Topics include sequence alignment and comparison,
genomic annotation, microarray data analysis, and proteomics.
Underlying computational techniques such as dynamic programming,
hidden Markov models, statistical analyses, and search and
optimization procedures will be highlighted.
COMP 150-04 Special Topics: Genomic Sequence Algorithms
This is a course for students who have taken COMP 150-BIO who would like a more
in-depth look at the algorithms used to analyze genomic sequences. Topics will be
selected from string matching, multiple alignments, suffix trees, Hidden Markov
Models, evolutionary trees, etc. Main Text: Algorithms on Strings, Trees and
Sequences by Dan Gusfield, 1997, Cambridge University Press. Prerequisite:
COMP 150-BIO. COMP 160 may be helpful as well.
COMP 150-05 Spec Topics: Combinatorial Optimization
Linear programming, including duality theory, simplex and interior point methods; matchings,
network flows, matriods, Integer programs; applications in transportation and scheduling.
Prerequisites: Comp 160 and Linear Algebra.
COMP 150-06 Special Topics: Machine Learning
The course covers the main paradigms in machine learning including supervised learning,
unsupervised learning and reinforcement learning. The focus is on practical aspects: ideas
underlying various methods, design of algorithms using these ideas, and their empirical
evaluation. We will discuss well established techniques as well as new developments from
recent research. Prerequisite: Comp 160 or consent.
COMP 160 Algorithms
Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods,
and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and
NP-complete problems. Prerequisites: Comp 15 and Math 22.
COMP 170 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. Prerequisites: COMP 15 and MATH 22.
COMP 175 Computer Graphics
This course explores the fundamentals of computer graphics, including representing digital
images, 2D rasterization and anti-aliasing, 3D rendering via ray casting, ray tracing and
radiosity, viewing transformations, 3D shape representation, and an introduction to modeling
and computer animation. Assignments and projects require a good working knowledge of the C
programming language. Prerequisites: Comp 15; Math 13 or consent.
COMP 180 Software Engineering
We will explore the state-of-practice and current trends in development and use of methods
and tools used to support develop software in the large. Students are exposed to the phases of
the software life cycle as well as a variety of approaches to software development. Students
will gain experience in team work and in oral and written communication through report
writing and class presentation. As a part of the laboratory component of the course in
which they will complete a semester long individual software project, students will
experience the full range of activities associated with software design and development.
The lab is required for seniors, optional for graduate students. COMP 180 is a prerequisite
for COMP190: Software Engineering Project, which is offered in the spring. Prerequisites:
Comp 80 and senior standing or instructor's consent.
COMP 181 Compilers
Translation and implementation of programming languages. Parsing, code generation, and optimization.
Compiler design projects for simple block-structured programming languages are used to illustrate
the concepts and methods. Prerequisites: Computer Science 40, 80, and 170.
COMP 250-RBI Reality Based Interfaces
This is a seminar course exploring a new approach for unifying the emerging next generation of user
interfaces by the way in which they are based on or connected to the real world. Examples include
virtual reality, augmented reality, ubiquitous, pervasive, and handheld interaction, tangible user
interfaces, lightweight interaction, and context-aware interfaces. They all gain their strength
by exploiting abilities that users already possess from the real world. We will try to formalize
the notion of reality-based skills vs. learned knowledge needed to operate a system and use
it to define next generation user interfaces and plan studies, experiments, and projects to
test this approach. Students will read research papers related to next generation user
interfaces and discuss them in the seminar. It will be tied with our NSF research
project, "Reality-Based Interaction: A New Framework for Understanding the Next Generation
of Human-Computer Interfaces," more information at http://www.cs.tufts.edu/~jacob/theory/
Prerequisite: Students doing or planning research in human-computer interaction or
permission of instructor.
COMP 250-GRH Graphics Reading Seminar
In this course, we will read and analyze a set of important research papers in computer
graphics. These papers will include a selection of classic, seminal papers that have had
a fundamental impact on the field as well as papers representing the latest research results.
Prerequisites: None.
COMP 293 Graduate Special Topics/ Master's Project
Guided individual study of an approved topic suitable for a master's design project.
Credit to be arranged. Members of the Department.
COMP 295 Master's Thesis
Guided research on a topic which has been approved as a suitable subject for a masters thesis.
Credit to be arranged. Members of the Department.
COMP 297 Graduate Research
Guided research on a topic suitable for a doctoral dissertation.
COMP 401-PT Master's Continuation Part-Time
COMP 402-FT Master's Continuation Full-Time
For Master's Degree students who are not otherwise registered for coursework,
and who have already registered twice for THESIS or PROJECT, EE402 indicates
that they are actively preparing their thesis or project and have completed
all coursework for the Master's Degree.
COMP 501-PT Doctoral Continuation Part-Time Doctoral Continuation Part-Time
COMP-502-FT Doctoral Continuation Full-Time Doctoral Continuation Full-Time
For Doctoral (Ph.D.) Degree students who are not otherwise registered for coursework.
|