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.


Please send all questions or comments to
Copyright © 1995 - 2008 Tufts University, Department of Computer Science. All Rights Reserved.