Department of Computer Science
 

Computer Science Course Descriptions for Fall of 1996

CMPSCI 102: Computers and Society (R2)

Professor: Spinelli

There are three principal components to this course: 1) what computers are, 2) how they are used in society, and 3) how their use affects society. In the first part we explore the origin of computers and the historical, economic, and scientific forces that brought them into existence. We also study the essential hardware components that make up a computer and we learn the basic software methods of programming using the BASIC language. In the second part, usage of computers by business in the office and in factory automation, by the professions such as medicine, and by artists and scientists is covered; special attention is given to the advent of the Information Super Highway, how to use it and how it can benefit individual users. Finally the economic and socio-political impact that computers are having on society and on the individual are discussed; these issues range from questions of privacy to the impact of robots in the factory, to the use of computers in political action. The primary aim of the course is to impart sufficient computer literacy to enable the student to 1) write simple, but non-trivial programs, 2) make use of and benefit from available computer facilities, and 3) understand why computers have become such a powerful force in the modern society. 3 credits.

CMPSCI 105: Computer Literacy (R2)

Professor: Verts

Microcomputers are now used widely not only in academia but in all areas of modern life. For this reason it's important that all students understand how computers work and how computers can be used as a problem-solving tool. The focus of this course is on computer applications. The course stresses the ways in which computers can help you solve problems efficiently and effectively. The course provides a broad introduction to hardware and software aspects of microcomputers. Then four application areas are discussed: word processing, spreadsheets, databases and telecommunications (access to the Internet). The course uses the university's microcomputer labs, and weekly 90 minute lab sessions are an integral part of the course. Students who are more interested in computer programming should take CMPSCI 121 or 187. Prerequisites: reasonable high school math skills. Typing ability is also an important asset for the course. Previous computer experience is not expected. 3 credits.

CMPSCI 105C: Computer Literacy (R2)

Professor: Verts

CMPSCI 105W: Computer Literacy (R2)

Professor: Verts

CMPSCI 105X: Computer Literacy (R2)

Professor: Verts

CMPSCI 121: Introduction to Problem Solving with Computers (R2)

Professor: Hanson, Moll

An introductory course in problem solving and computer programming using the programming language Pascal. The course focuses on the fundamental concepts of problem solving and the techniques associated with the development of algorithms and their implementation as computer programs. This course or its equivalent is required for all additional courses in CMPSCI. 3 hours of lecture/recitation per week. About 6 programming problems are assigned. In addition there are assigned homework problems, a mid-term exam and a final. No computer science prerequisite, although high school algebra and basic math skills (e.g. R1) are assumed. Use of computer is required. 3 credits.

CMPSCI 121D: Introduction to Problem Solving with Computers (R2)

Professor: Hanson, Moll

CMPSCI 187: Programming with Data Structures (R2)

Professor: Utgoff, Gregory

The course introduces and develops methods for designing and implementing data structures. The main focus is on how to build and encapsulate data objects and their associated operations. Specific topics include pointer variables, linked structures, recursive structures and algorithms, binary trees, balanced trees, and hash tables. There will be weekly assignments, consisting of programming and written exercises. There will be two midterms and a final exam. Prerequisites: CMPSCI 121 (or equivalent)and Basic Math Skills (R1). 4 credits.

CMPSCI 187D: Programming with Data Structures (R2)

Professor: Utgoff

CMPSCI 191A: Seminar - Practical Skills for the Internet

Professor: Lehnert

The Internet is a goldmine of information and software resources for those who know how to plug into it and navigate it. Originally designed for computer scientists, the net is now open to the general public through educational computing accounts and commercial services. Unfortunately, much of the enabling technology associated with net navigation is still aimed at computer specialists. This course will provide non-CS majors with the basic skills needed to tap the net. We will cover basic UNIX commands, e-mail management, listserv software, gophers, Usenet newsgroups, ftp file transfers, telnet sessions, www browsers, basic web page design, and PGP-based cryptography. Students will also work with a number of search tools including veronica, archie, wais databases, and www search engines. In addition, we will survey key social and political topics that are relevant to the Internet, such as copyright law, First Amendment issues, computer security, personal privacy, electronic cash, commercialization, and bandwidth pricing strategies. Prerequisites: some hands-on experience with PCs or MACs or UNIX (programming experience is NOT required). 3 credits.

CMPSCI 191D: Seminar - TAP Program

Professor: Barrington

Conversations with members of the UMass CMPSCI community, to explore issues in and subareas of computer science. Open only to first-year students in the CMPSCI TAP residential program. 1 credit.

CMPSCI 201: Architecture and Assembly Language (E)

Professor: Graham

Lecture, lab. The architecture and machine-level operations of modern computers at the logic, component, and system levels: topics include binary arithmetic, logic gates, Boolean algebra, arithmetic units, control unit, buses, memory, addressing modes, interrupts, input-output, floating point arithmetic, and virtual memory. Simple assembly language is used to explore how common computational tasks are accomplished by a computer. Three hours of lecture per week, laboratory exercises, homework exercises, two midterm exams, and a final exam are required. Prerequisite: CMPSCI 187 or equivalent. 4 credits.

CMPSCI 250: Introduction to Computation (E)

Professor: Rissland

Lecture, discussion. Basic concepts of discrete mathematics useful to computer science, with the theory of regular languages and finite-state machines as the prime motivating example. The language of mathematics: set theory, strings and formal languages, propositional and predicate calculus, relations and functions, basic number theory. Induction and recursion: interplay of inductive definition, inductive proof, and recursive algorithms. Basic graph theory. Elementary combinatorics. Finite-state machines and regular languages: Myhill-Nerode Theorem, nondeterministic finite automata, Kleene's Theorem. Problem sets, 2-3 midterm exams, timed final. Course revised for use in proposed new CMPSCI major curriculum. Corequisite: MATH 132/136 or equivalent. Prerequisite: CMPSCI 187 or equivalent. 4 credits.

CMPSCI 287: Programming Language Paradigms

Professor: Popplestone

Lecture, discussion, programming projects, lab. Programming Language Paradigms provide a basic philosophy to support the construction of reliable large-scale systems. This course discusses four such paradigms. In the -functional paradigm- software is constructed in such a way as to minimize the use of side-effects, thereby simplifying the conceptual structure of programs and making them easier to analyze and understand. The -logic paradigm- supports the development of software in which the concept of -relation- (for example a relation between people) is more important than the concept of function. In the -imperative paradigm- we are concerned with principled ways in which software that is state-dependent can be constructed. Finally, in the -object-oriented- paradigm we are concerned with combining data with code to create "objects" which exhibit behavior. Corequisites: CMPSCI 250 and MATH 132. 4 credits.

CMPSCI 311: Introduction to Algorithms

Professor: Sitaraman

This course will introduce you to algorithms in a variety of areas of interest, such as sorting, searching, string-processing, and graph algorithms. You will learn to study the performance of various algorithms within a formal, mathematical framework. There will be a few programming assignments as well to help you relate the empirical performance of an algorthim to theoretical predictions. Mathematical experience (as provided by CMPSCI 250) is required. You should also be able to program in Pascalor C (or some other closely related language). 3 credits.

CMPSCI 311: Supplement to 391M

Professor: Sitaraman

1 credit.

CMPSCI 320: Introduction to Software Engineering

Professor: Lerner

In this course, students learn and gain practical experience with software engineering principles and techniques. The practical experience centers on a semester-long team project in which a software development project is carried through all the stagesof the software life cycle. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, and software project management. Particular emphasis is placed on designing and developing maintainable software and on the use of object-oriented techniques throughout the software lifecycle. Use of computer required. Two exams, several homeworks, major term project. Prerequisite: CMPSCI 287. 4 credits.

CMPSCI 377: Operating Systems

Professor: Mckinley

We examine the major problems in the design and implementation of modern computer operating systems. Topics include: the command language interpreter (the shell); processes; process and processor management; virtual and primary memory management; program linking and loading; and the file system. Examples are drawn from MS-DOS, UNIX, VMS, and other operating systems. Our goal is to understand the significant aspects of operating systems and develop some facility in operating system design and implementation. Three hours of lecture per week, laboratory projects that require using C++ and UNIX, homework exercises, short quizzes, assigned readings, two midterm exams, and a final exam are required. Prerequisites: CMPSCI 187 and CMPSCI 201. 3 credits.

CMPSCI 383: Artificial Intelligence

Professor: Zilberstein

Introduction to techniques for building intelligent machines: problem solving, state-space representation, heuristic search techniques, game playing, knowledge representation, logical reasoning, planning, reasoning under uncertainty, learning, expert systems, natural language processing, image understanding. Prerequisites: CMPSCI 250 and CMPSCI 287. 3 credits.

CMPSCI 405: Social Issues in Computing

Professor: Harvey

Designed to satisfy the Junior Year writing requirement, CMPSCI 405 intro duces the student to technical writing and editing, scientific journalism and the social essay. The course combines practical, scientific writing as found in industry and business with explorative essays that focus attention upon the technological and humanistic concerns inherent in society. Ten written assignments-two longer papers, eight shorter ones and one oral presentation. 3 credits.

CMPSCI 410: Translators

Professor: Moss

This course explores the basic problems in the translation of programming languages focusing on theory and common implementation techniques for compiling traditional block structured programming languages to produce assembly or object code for typical machines. The course involves a substantial laboratory project in which the student constructs a working compiler for a considerable subset of a realistic programming language. The lectures are augmented by an optional laboratory section that will coverdetails of the programming language used to build the compiler, the operating system, the source language, and various tools. Use of computer required. Text: Crafting a Compiler in C, by Fischer and LeBlanc. Prerequisite: CMPSCI 377 or 402. 3 credits.

CMPSCI 445: Information Systems

Professor: Croft, Wileden

Introduction to database systems. File organization, database system architectures, data models, database design, relational systems, query optimization, recovery and concurrency control. Prerequisite: CMPSCI 287. 3 credits.

CMPSCI 445X: Information Systems

Professor:

CMPSCI 520: Software Engineering

Professor: Osterweil

Software Engineering I: This course introduces students to the principal activities involved in developing high-quality software systems. The course stresses the use of defined, systematic processes in the creation of carefully defined and engineered software products. Among the topics covered are requirements analysis, formal specification methods, process definition, software design methods, and test planning. Issues specific to the development of software by teams and groups will also be addressed. Students will be required to read selected papers from the literature and complete homework projects. This course focuses on synthesis activities and complements Software Engineering II, which focuses on software analysis techniques. Students areencouraged to take both courses but may take either course independently. Students who sign up for 620 will be expected to do more comprehensive projects than those who sign up for 520. 3 credits.

CMPSCI 520X: Software Engineering

Professor:

CMPSCI 535: Computer Architecture

Professor: Weems

The structure of digital computers is studied at several levels, from the basic logic level, to the component level, to the system level. Topics include: the design of basic components such as arithmetic units and registers from logic gates; the organization of basic subsystems such as the memory and I/O subsystems; the interplay between hardware and software in a computer system; the von Neumann architecture and its modern competitors performance enhancements such as cache memory, instruction and data pipelines, coprocessors, and parallelism. Weekly assignments, semester project, 2 hours exams, final. Prerequisites: CMPSCI 201 and CMPSCI 250. 3 credits.

CMPSCI 570: Computer Vision

Professor: Riseman, Schultz

What is computer vision and why is it an important and interesting area of study. The basic building blocks and algorithms of computer vision. The processes of image formation and the relationship of images to the three-dimensional world. Enhancing images for human viewing. Extracting edges and lines from images. Morphological operations on images. Extracting regions from images. The basic principles of convolution and correlation. Measuring color, texture, shape, size, and other features of images and image components. The principles of perceptual organization and their role in computer vision. Prerequisite: calculus and linear algebra. 3 credits.

CMPSCI 572: Neurobiology

Professor: Wyse

Lecture. Biology of nerve cells and cellular interactions in nervous systems. Lectures integrate structural, functional, developmental, and biochemical approaches. Topics include neuronal anatomy and physiology, membrane potentials, synapses, development of neuronal connections, visual system, control of movement, and neural plasticity. Text: Essentials of Neural Science, Kandel et al. ; reserve readings, 2 hour-exams, final, short critique paper. Prerequisite: Biology 285 or 523; or both PSYCH 330 and Intro. Biology. 3 credits.

CMPSCI 585: Introduction to Natural Language Processing

Professor: Lehnert

This course presents Natural Language Processing techniques drawn from Artificial Intelligence with an emphasis on corpus-driven information extraction. Students will complete information extraction projects using software developed at UMass, and explore issues associated with trainable language processing systems. We will read selected papers to examine limitations in the current state of the art and each student will present the results of an individual investigation. Students will select a project format of their choice. Possible formats include written papers, class lectures, hypertext reports on the web, and software demonstrations. Prerequisite: CMPSCI 383 or permission of the instructor. 3 credits.

CMPSCI 591B: Computing with Artificial Neural Networks

Professor: Barto

Artificial neural networks, also called connectionist systems, are networks of relatively simple processing elements that mimic some of the properties of biological neurons. Much of the intense research activity in this field is predicated on two hypotheses: 1) that the study of computational architectures which resemble the brain more closely than do conventional computers will lead to advances in artificial intelligence, and 2) that the study of such networks may reveal general principles that will contribute to our understanding of natural intelligence and the brain. This course will develop the central ideas and algorithms of modern research on artificial neural networks and examine networks addressing issues in artificial intelligence, cognitivescience, and neuroscience. Prerequisites: calculus, linear algebra, programming at level of CMPSCI 187. 3 credits.

CMPSCI 591C: Seminar - Embedded Systems

Professor: Grupen, Popplestone

Most computers in use in the world are embedded in a system whose primary purpose is not to serve as a computer. Devices varying from the an aircraft like the Boeing 777 to VCR's and Microwave Ovens are absolutely dependent upon embedded processors forvital control functions. These computing applications do not require the same specifications as general purpose computational platforms, but are instead intimately related to a particular physical process. This course attempts to introduce the tools necessary to design embedded computational applications. Topics include: (1) mechanisms, sensors, actuators and feedback systems, (2) analog and digital circuits, power amplifiers, signal processing, operational amplifiers, multiplexing, (3) I/O - A/D, D/A, latching, serial and parallel interfaces, DMA, and (4) signal processing/conditioning. The course will include hands-on, team project work in which an embedded application will be constructed over the semester. 3 credits.

CMPSCI 591D: Seminar - Three-Dimensional Animation and Digital Editing

Professor: Woolf

This seminar is dedicated to the production of high quality computer animation using microcomputer based 3-dimensional graphics technology. For example, color 3-D objects are defined and manipulated, digitized images created and altered, and animated sequences produced directly on the computer. Special hardware allows conversion of computer signal to a standard video signal and, in the reverse process, direction translation of digitized video images into 256 colors on the computer. Techniques are used to bend and twist shapes around objects or lines and to trace over images including digitized pictures. The course is directed at production of an informative and approachable video of a ten minute 3-dimensional animated piece. Using computer-generated graphical analogies as well as cartoon caricature, the video demonstrates both theoretical issues and current capabilities of computer graphics. 3 credits.

CMPSCI 591E: Seminar - Adversary Search

Professor: Utgoff

This seminar examines approaches to constructing programs that perform well in a competitive environment. The focus will be on the game-playing literature, where the degree of success in balancing search and knowledge is measured directly by performance against one or more adversaries. The course is intended for advanced undergraduates and all graduates. We will survey the literature, examining a variety of techniques, including SSS*, narrow window search, B*, singular extensions, conspiracy numbers, DTA*, and min/max approximation. We will examine temporal difference learning as it applies to learning a good evaluation function. A central activity of the course is competition of student programs. Software for running competitions is available, allowing anyone to invoke any player programs at any time. Required work consists of reading papers, writing one-page synopses, participating in class discussion, participating in the programming project, and writing a paper that describes the player program for the project. Prerequisite: Junior standing, good programming ability. 3 credits.

CMPSCI 591F: Seminar - HTML for Poets

Professor: Spinelli

An exploration of the Hyper Text Markup Language and its philosophical implications for Society at the threshold of the year 2000. Java Script will also be discussed. 3 credits.

CMPSCI 591I: Seminar - Network Programming

Professor: Kurose

This course provides an introduction to the fundamentals of network programming for the Internet. The course consists of two parts: 1) network programming using BSD UNIX sockets, and 2) network programming using the new programming language JAVA. Thefirst part of the course is taught "on-line" using experimental "courseware" developed in the Multimedia Systems Lab of the Computer Science Dept. In this part, we will cover the basic concepts of computer communication networks and the Internet protocol suite. We will study the BSD socket application interface and walk through sample C code. By viewing the slides and listening to the accompanied audio (of actual class lectures of this material) through a Web browser, you will learn the materials at your own time/pace, either in the comfort of your home or your lab. We will also meet once a week (physically) to assist you in understanding the on-line lecturing by presenting a short summary and holding a Q&A session. The second part of the courseis taught in the traditional manner. In this part, we will study the basic language constructs of Java, learn how to write Java applets, and design Java server/client networking applications through examples. There will be three in-class, 15-minute quizzes, three short programming projects, with no midterm or final. You are also required to write a commentary on your learning experiences through the on-line lecturing and an assessment of the courseware. The course is targeted for CMPSCI seniors/juniors, grad students or other students who are interested in learning the basics of networking programming for the Internet. Please visit our course web site at "http://www-aml.cs.umass.edu/~amlclass" for more information. Students who have access to aWeb browser with an audio device are especially encouraged to sign up for the course. However, 5 PCs with audio devices will be available in the CMPSCI Edlab for the registered students to use. Due to the limited capacitiy of the audio server we have, the enrollment will be limited to a maximum of 30 students. We will let you know whether you are admitted into the class as early as possible. Preference will be given to CMPSCI seniors, grad students, and juniors in that order. All course-related announcements will also be posted on the course web site "http://www-aml.cs.umass.edu/~amlclass". 1 credit.

CMPSCI 591M: Combinatorics and Graph Theory

Professor: Moll

This introductory course for advanced undergraduates and graduate students in computer science, mathematics, and related fields, presents the basics of combinatorics and graph theory with a slight bias towards algorithms and applications in computer science. Topics include: basic counting ideas; generating functions; recurrence relations; principle of inclusion and exclusion; Polya's theory of counting; graph theory basics; the combinatorics of trees; planarity and dual graphs; graph coloring; matching and flows; and some additional advanced topics. Separate grading for undergraduates and graduate students. Prerequisites: Math 235, and either CmpSci 311 or Math 411, or permission of instructor. 3 credits.

CMPSCI 610: Translator Design

Professor: Moss

This course explores the basic problems in the translation of programming languages focusing on theory and common implementation techniques for compiling traditional block structured programming languages to produce assembly or object code for typical machines. The course involves a substantial laboratory project in which the student constructs a working compiler for a considerable subset of a realistic programming language. The lectures are augmented by an optional laboratory section that will coverdetails of the programming language used to build the compiler, the operating system, the source language, and various tools. In addition to lectures in common with CMPSCI 410 (491A), CMPSCI 610 includes an extra weekly meeting covering the theoreticalaspects in greater depth. Use of computer required. Text: Crafting a Compiler in C, by Fischer and LeBlanc. Prerequisite: CMPSCI 377 or 402. 3 credits.

CMPSCI 611: Advanced Algorithms and Complexity

Professor: Rosenberg

Principles underlying the design and analysis of efficient algorithms. Design paradigms: divide-and-conquer, dynamic programming, greedy algorithmics, the role of randomization. Analysis paradigms: worst-case, average-case, and amortized analyses. Other important themes: network flow, coping with computational intractability (NP-hardness), parallel algorithmics. Problem domains covered include sorting and searching, graph algorithms, and scheduling problems. PREREQUISITES: Mathematical sophistication expected of incoming CMPSCI graduate students, equivalent at least to an A in CMPSCI 250; knowledge of programming and data structures at the level of CMPSCI 187. 3 credits.

CMPSCI 611X: Advanced Algorithms and Complexity

Professor:

CMPSCI 620: Advanced Applications of Software Engineering

Professor: Osterweil

Software Engineering I: This course introduces students to the principal activities involved in developing high-quality software systems. The course stresses the use of defined, systematic processes in the creation of carefully defined and engineered software products. Among the topics covered are requirements analysis, formal specification methods, process definition, software design methodolgies, and test planning. Issues specific to the development of software by teams and groups will also be addressed. Students will be required to read selected papers from the literature and complete homework projects. This course focuses on synthesis activities and complements Software Engineering II, which focuses on software analysis techniques. Students are encouraged to take both courses but may take either course independently. Students who sign up for 620 will be expected to do more comprehensive projects, that emphasize critical and analytic thinking, than those who sign up for 520. 3 credits.

CMPSCI 650: Empirical Methods in Computer Science

Professor: Cohen

The purpose of this course is to increase the number of people in computer science who can design and run informative experiments. We begin with data and exploratory data analysis, not experiments proper, because the experiment is only one step, typically confirmatory, in an ongoing empirical research programme. The experiment follows (and often precedes) assessment and exploratory studies in which we develop and refine causal models of the behaviors of our programs. Thus, the first part of the course addresses techniques for visualizing, summarizing and detecting clues about causal relationships in data. Next we study how to design a controlled experiment. In principal, programs are ideal subjects because we can cripple and maim them on the altar of control without fear of censure, but in practice, we must often forego classical manipulation experiments for more equivocal observation experiments. The third part of the semester is a crash course in statistics, and the fourth part is organized around common research questions: is this algorithm faster than that one? under which conditions will this planner fail? what affects the ratio of hits to false positives in this binary choice task? is the dependency between these factors robust? does this learning curve rise more steeply than that one? We will show how to design experiments to answer these questions and analyze the data with the appropriate statistical tools. (By the way, we will cover not only classical statistics but also non parametric and computer-intensive techniques like bootstrapping.) The fifth part of the course is concerned with statistical methods for inducing causal models of how our systems work. Although the sixth and last part is devoted to the question, "what makes a result general," you will discover that this question drives the entire course. The course is meant to be practical. It emphasizes techniques, tactics and case studies. Homework is designed to provide practice, and each student must complete a project (ideally related to ongoing research), write it up and present it. Most of the examples in my lectures are from Artificial Intelligence, but the course is more general in its scope, and I encourage students from other areas of computer science to take it. The text is my own. 3 credits.

CMPSCI 650X: Empirical Methods in Computer Science

Professor:

CMPSCI 653X: Computer Networks and Distributed Processing

Professor:

CMPSCI 677X: Operating Systems

Professor:

CMPSCI 683: Topics in Artificial Intelligence

Professor: Lesser

The main focus of the course is on intelligent agent construction. Topics include: situated agents, advanced search and problem-solving techniques, resource-bounded reasoning, reasoning under uncertainty, memory and language, perception and action, advanced planning and control, and learning. This course is a prerequisite to several courses covering specialized sub-fields of Artificial Intelligence. Prerequisites: Undergraduate background in Computer Science, and an undergraduate Artificial Intelligence course (CMPSCI 383 or equivalent). 3 credits.

CMPSCI 691B: Seminar - Survey of Parallel Programming

Professor: Weems

This seminar will examine models of parallel programming for practical application. It will begin with an overview of shared memory programming, data parallel programming and message passing models including PVM and MPI. It will then turn to a study of parallel implementations of computations that are of interest to the participants. Students will be expected to propose a project in parallel programming and implement it on either available parallel processors or a network of workstations. 3 credits.

CMPSCI 691C: Seminar - Interactive Multimedia Production

Professor: Woolf

This course explores the potential of high quality interactive authoring tools to develop presentation and training systems. Programming languages within professional presentation and editing packages will be used to create systems capable of presenting graphics, animation, text, sound and music, based on the users requests. Students will learn how to define and manipulate classical techniques such as storyboarding, staging, and interactivity. The laboratory has had a large collection of computer animation, graphic, and multimedia tools, and is developing new authoring tools. During the first month and a half, the course will concentrate on state-of-the-art multimedia composition and presentation techniques and developing small individual projects. The second half of the semester will emphasize working as a group to create a single, high quality multimedia production. Prerequisite: CMPSCI 591_ Seminar - 3D Computer Animation and Digital Editing. Permission of the instructor required; contact: Beverly Woolf 545-4265. 3 credits.

CMPSCI 691E: Seminar - Adversary Search

Professor: Utgoff

This seminar examines approaches to constructing programs that perform well in a competitive environment. The focus will be on the game-playing literature, where the degree of success in balancing search and knowledge is measured directly by performance against one or more adversaries. The course is intended for advanced undergraduates and all graduates. We will survey the literature, examining a variety of techniques, including SSS*, narrow window search, B*, singular extensions, conspiracy numbers, DTA*, and min/max approximation. We will examine temporal difference learning as it applies to learning a good evaluation function. A central activity of the course is competition of student programs. Software for running competitions is available, allowing anyone to invoke any player programs at any time. Required work consists of reading papers, writing one-page synopses, participating in class discussion, participating in the programming project, and writing a paper that describes the player program for the project. Prerequisite: Junior standing, good programming ability. 3 credits.

CMPSCI 691M: Logic and Formal Methods

Professor: Immerman

This course gives a rigorous introduction to mathematical logic. This will be used to reason about the specification and correctness of programs and protocols. We will next study temporal logic. We will look in detail at two applications: Lamport's Temporal Logic of Actions and Symbolic Model Checking using ordered binary decision diagrams. 3 credits.

CMPSCI 691N: Seminar - Performance Evaluation

Professor: Krishna

Same as ECE 673. 3 credits.

CMPSCI 691O: Seminar - Tools for Explanatory and Tutoring Systems

Professor: Woolf, Eliot, Murray

This seminar examines recent work in explanatory and tutoring systems. We will explore research issues in: Collaboratory Environments, Dialogue Systems, Authoring Tools, User Models. The objective of the course is to stimulate awareness of researchissues and to promote sound analytic and design skills as they pertain to building knowledge representations and control strategies. Relevant topics and applications will be presented through readings in the recent literature. Each student will prepare written critiques of each paper, lead several in-class discussions and prepare appropriate questions about the research. Several working systems will be available for hands-on critique. Readings for the course are contained in several bound volumes of articles and technical reports available in the main CMPSCI office. There is a charge for these volumes. 3 credits.

CMPSCI 691P: Seminar - Digital Media and Social Policy

Professor: Woolf

This course will produce multimedia tools to communicate about social policy and large-scale public infrastructure projects. Through production of interactive text, 2- and 3- dimensional animation, audio and video, we will communicate to the interestedpublic problems and proposed solutions to large technological problems. The first multimedia product will describe creation of the MetroWest Water Supply Tunnel, a new aqueduct from the Quabbin Reservoir to Greater Boston. The multimedia product will inform the public about the effects of this large effort on the environment, business, home and communities. 3 credits.

CMPSCI 691X: Performance Evaluation

Professor:

CMPSCI 691Z: Real-Time Computing

Professor:

CMPSCI 711X: Parallel Algorithms and Architectures

Professor:

CMPSCI 791M: Seminar - Mobile Computing Systems

Professor: Ramamritham

The phrases nomadic computing, wireless computing and mobile computing have become common place in research publications and in trade journals. In mobile environments, the wireless link is susceptible to disconnection, and there may be planned disconnection of computing entities from the network to save energy and to reduce communication costs. Clearly, mobile users must be capable of continuing with their work even when their computer is disconnected. Even though package delivery companies, such asFedEx, have made mobile units ubiquitous, numerous issues remain to be addressed in many areas including operating systems, networking, databases, and architecture, to name a few. In this seminar we will examine the special characteristics of mobile computing, discuss the state of the art, and examine emerging solutions. Prerequisite: At least UG level courses on Operating System, networks and Databases. 3 credits.

CMPSCI 791N: Seminar - Coordinated Multi-Manipulator Systems

Professor: Grupen

The goal of this seminar is to develop a comprehensive mathematical description of multi-manipulator systems. This kind of device is a common biological adaptation and has been exploited in robotic systems including dextrous hands, multiple arm systems,and legged walkers. We will cover the mechanics and dynamics of such devices, nonholonomic constraints, and Lie groups. We will examine a variety of methods for coordinating the behavior of multiple manipulator systems ranging from low-level, computed-torque controllers, to walking gait analysis, to high-level models of human prehensile behavior. Readings will be drawn from "Robotic Manipulation," Murray, Li, and Sastry, CRC Press, 1994, other texts, and a selection of journal articles. 3 credits.

CMPSCI 791O: Seminar - Reinforcement Learning

Professor: Sutton, Barto

This course will provide a comprehensive introduction to reinforcement learning, a new approach to artificial intelligence emphasizing learning from interaction to achieve goals in a stochastic and uncertain environment. Reinforcement learning has adapted key ideas from machine learning, operations research, control theory, psychology, and neuroscience to produce some strikingly successful engineering applications. The focus is on algorithms that learn what actions to take when so as to optimize long-term performance. This may involve sacrificing immediate reward to obtain greater reward in the long-term or just to obtain more information about the environment. The course will cover Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo methods, eligibility traces, the role of neural networks, and the integration of learning and planning. 3 credits.

CMPSCI 791P: Seminar - Theory of Objects

Professor: Wileden

In this seminar, we will study formal foundations for object orientation, with an eye toward practical application. Our primary focus will be on the new book by Abadi and Cardelli, called A Theory of Objects. We will also be looking at other formal work on object orientation, particularly type theory for object oriented programming languages. Students will be required to complete a project, ideally involving practical application of some aspect of the formal foundations for object orientation to some problem of interest to the student. Class sessions will mostly be devoted to presentations and discussion of material from the book, related literature and student projects. Prerequisites: CMPSCI 530 or 630 or permission of instructor. 3 credits.

CMPSCI 791Q: Seminar - Topics in Information Retrieval

Professor: Allan

This seminar covers current and recent research in Information Retrieval as well as significant results from the past. We will discuss how this research relates (or does not relate) to the work done locally. Specific topics may include probabilistic IR, visualization, passage handling, routing (feedback), query expansion, summarization, integration with databases, natural language processing, and so forth. Participants will be expected to read 1-3 papers per week (rarely more than 2). A short (halfpage) synopsis of each paper will be due before the class in which a paper is discussed. One or more attendees will be responsible for presenting a 10-15 minute summary of each paper. When possible, researchers will be asked to relate their work to the papers. Discussion of the papers will follow. A prerequisite for this seminar is CMPSCI 691I (646), the Information Retrieval course, or its equivalent. Contact James Allan (allan@cs.umass.edu) if you are uncertain whether you have the necessary background. 3 credits.

CMPSCI 891M: Theory of Computation

Professor: Rosenberg

Lectures on various topics in the theory of computation by CMPSCI theory faculty, possible guest speakers, and seminar students. May be repeated for credit. Prerequisite: Graduate standing in CMPSCI or permission of the instructor. 1 credit.

CMPSCI H01: Honors Colloquium for CMPSCI 201

Professor: Graham

We select one or two of the course topics and explore them in much more depth than possible in the course. For example, in past semesters we have: explored the low level complexities of the keyboard to understand how TSR (terminate-and-stay resident) programs work; and explored the low-level complexities of the graphics card to understand how to display graphs of mathematical functions. Readings are assigned and discussed in once-a-week meetings. Students may elect to do a project that applies the principles studied in class. Grades are based on written reports, participation in discussions, and the application of principles in their project, if that option is elected. 1 credit.

CMPSCI H02: Honors Colloquium for CMPSCI 287

Professor: Popplestone

We will examine how the programming paradigms discussed in 287 are exhibited in more modern Functional Languages (SML, Haskell), Logic Languages (Prolog), Object Oriented Languages (C++ & the objectclass extension of Pop-11). Recommended for Juniors, Seniors. 1 credit.

CMPSCI H03: Honors Colloquium for CMPSCI 383

Professor: Zilberstein

The Honors section will involve advanced study and implementation of one of the AI techniques covered in 383. The particular application will be determined based on student interest. Possible projects include game playing, automated information gathering over the internet, software agents, hierarchical planning systems, satisficing reasoning techniques. Recommended for Juniors and Seniors; Majors and Non-majors. 1 credit.

CMPSCI H04: Honors Colloquium for CMPSCI 320

Professor: Lerner

Reuse and maintainability are two important properties for software. In the honors colloqium for 320, we are investigating design patterns, which support both of these properties. Design patterns are a relatively new concept in software engineering tosupport reuse of high-level designs across multiple object-oriented systems. In addition to providing reuse, good design patterns incorporate features that assist in the development of maintainable software. 1 credit.

CMPSCI H05: Honors Colloquium for CMPSCI 491A (410)

Professor: Moss

In addition to scheduled class hours, an additional class for advanced topics will be required. The course contains a five part programming project and the Honors students will be required to complete more advanced functionality for each of the parts.1 credit.

CMPSCI H06: Honors Colloquium for CMPSCI 520

Professor: Osterweil

Students will do additional readings on subjects related to synthesis of computer software artifacts, and will complete an additional project, as mutually agreed by the instructor and student. In addition, students will meet with the instructor on an individual basis as necessary and agreed upon. 1 credit.

CMPSCI H07: Honors Colloquium for CMPSCI 535

Professor: Weems

Honors students read additional materials in the area of computer architecture and meet once each week with the instructor to report on and discuss the readings. Recommended for Juniors, Seniors; Majors. 1 credit.

CMPSCI H08: Honors Colloquium for CMPSCI 391M/N (311)

Professor: Sitaraman

We will be going over more advanced material in the theory and implementation of algorithms. A sampler of possible topics is given below. This only gives a vague idea of what we might actually end up doing; since that will depend on the mutual interests of the students and myself. An incomplete list of possible topics is: *Advanced data structures, e.g., skip lists. *Implementation issues in data structures. *Use of randomness in algorithm design. *Research experience in some sub-area. *Geometric Algorithms and applications (like image-rendering graphics). *Parallel algorithms and parallel programming. 1 credit.

CMPSCI H09: Honors Colloquium for CMPSCI 591M

Professor: Moll

Description not on file. 1 credit.


Comments:
www-admin@cs.umass.edu

Copyright © 2002
This is an
official page of the University of Massachusetts Amherst.