cs homeabout usnewseventspeopleresearchacademicsservices

Computer Science Academic Integrity Code

FAQ for Academic Programs

Technical Reports

Library Resources

Job Resource Center

ARCHIVES

Fall 2002 Class Schedule

Spring 2002 Class Schedule

Summer 2002 Class Schedule


printer friendly version
pdf version
email this page




[Introduction] [Undergraduate Programs] [Masters Program] [Ph.D Program] [Undergraduate Courses] [Combined Courses] [Graduate Courses]


Combined Courses

Computer Science

600.402 (E) Medical Informatics

Computers and information technology have become major forces in transforming American medicine. We shall discuss some of the new entities---the computer-based patient record, clinical practice guidelines, and digital libraries---and their underlying technologies: networks, databases, controlled vocabularies, and decision analysis. Prerequisite: none. Short course. [Applications]

Lehmann   1 credit

600.403 (E) Computational Genomics: Sequence Modeling

This short course will cover probabilistic methods for modeling biological sequences (e.g., DNA and protein sequences). Topics include inferring relationships between and among sequences and evolutionary trees over sequences. Pre-requisites: knowledge of algorithms, probability and programming. Short course. [Analysis]

1 credit

 

600.404 (E) Artificial Neural Networks

This short course will expose students to the theory and practice of artificial neural networks. We will use perceptrons and multilayer networks to introduce general concepts in machine learning and statistical pattern recognition, e.g. supervised and unsupervised learning, generalization, bias vs variance and VC-dimension. We will examine example applications and hardware implementations. The approach will be to introduce key ideas in the lectures while leaving elaboration of these ideas to readings and homework. Students will implement various algorithms in a language of their choice. Prerequisites: Calc III, linear algebra, 600.226. Cross-listed with Neuroscience. Short course. [Applications]

Pineda   1 credit

600.409 (E) Embedded Computer Systems-Vulnerabilities, Intrusions, and Protection Mechanisms

While most of the world is preoccupied with high profile network-based computer intrusions, this course examines the potential for computer crime and the protection mechanisms used in conjunction with the embedded computers that can be found within non-networked products ranging from vending machines to radar systems. This course provides a basic understanding of embedded computer systems: differences with respect to networked-based computers, programmability, exploitation mechanisms, and current intrusion protection technologies. In-class computer laboratory experiments consisting of demonstration software reinforces the topic areas as discussed in the lecture. Prerequisite: basic understanding and working knowledge of computer systems. Short course. [Systems]

Kalb   1 credit

600.410 (E) Sensory Engineering

Sensory engineering is the science of engineering virtual environments. The applications of sensory engineering include virtual reality, telepresence, telerobotics, virtual workstations, distributed simulation networks, interactive data visualization, and sensory enhancement. This course provides an overview of the multidisciplinary nature of sensory engineering. Topics include the study of human sensory processes as applied to sensory interfaces and sensory interactions, human perception as applied to interpreting virtual environments, human factors as related to performance in virtual environments, algorithms such as computational geometry, image processing, and real-time operations as related to generating interactive virtual environments, and high performance computing hardware, head- mounted displays, and other 1/0 devices for implementing interactive virtual environments. Class members participate in a group project to design a simple virtual environment. Grading is based on the group project and on a research paper. Prerequisite: none. Short course. [Applications]

Massof   1 credit

600.411 (E) Conversational Interfaces

This course looks at the application of natural language processing technology systems for human-computer interaction, in particular text-based conversational interfaces. The course begins with background on computational approaches to discourse and dialogue, and then reviews recent work in information extraction and question answering. There will be one final project which explores a novel use of nlp for text-based human computer interaction. Prerequisite: 600.465 or 600.466. Short course. [Applications]

1 credit

600.413 (E) Peer-to-Peer Network Systems

Peer-to-peer Internet applications have recently been popularized through file sharing applications like Napster, Gnutella and FreeNet. While much of the attention has been focused on the copyright issues raised by these particular applications, peer-to-peer systems have many interesting technical aspects like decentralized control, self organization, adaptation and scalability. In this course we are going to cover several papers covering the evolution and some of the technical issues around building peer-to-peer (P2P) network systems. We are going to start by looking at the original P2P application, Napster, and some of its later offsprings such as Gnutella, Freenet and FastTrack. We are going to discuss the scaling limitations of these systems and see how some recently proposed systems (Chord, CAN, Pastry) propose to address these limitations. While these second-generation systems are scalable in terms of the amount of routing state required in each P2P node, they offer only a primitive, that is given a key the ability to quickly locate a node that stores that key. Next, we are going to cover some applications built on top of this primitive, spanning from distributed file systems to event notification systems. We are going to close the course by exploring some of the shortcomings of this second generation P2P system and some of the open problems surrounding P2P systems. Finally we are going to briefly cover some of the alternative designs in this system space (i.e., network overlays) and discuss the implications of P2P systems on the larger Internet. Prerequisites: 600.318/418, 600.344/444 or permission. Short course. [Systems]

Terzis   1 credit

600.415 (E) Database Systems

Similar material as 600.315, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.315 or 600.415, but not both. Prerequisite: 600.226. [Systems]

Yarowsky   3 credits   fall

600.416 (E) Transaction Processing Systems

Similar material as 600.316, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.316 or 600.416, but not both. Prerequisite: 600.315/415 or equivalent, C++ programming. [Systems]

Burns   3 credits

600.418 (E) Operating Systems

Similar material as 600.318, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.318 or 600.418, but not both. Prerequisites: 600.120, 600.211 (or equivalent C experience), 600.226, 600.333; 600.111 recommended. [Systems]

Shapiro   3 credits   spring

600.419 (E) Storage Systems

Similar material as 600.319, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.319 or 600.419, but not both. Prerequisites: 600.226 and 600.333/433. [Systems]
Burns  3 credits  Fall

 

600.421 (E) Object-Oriented Systems

Similar material as 600.321, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.321 or 600.421, but not both. Prerequisites: 600.226 and 600.120. [Systems or Applications]

Smith   3 credits   fall

600.422 (E) Security Informatics Fundamentals

Principles of information security are addressed and applications are considered. Topics covered include identification and authentication, access control, security models, and issues related to operational systems integrity. Practical aspects of security and assurance are addressed and approaches to security evaluation are described. Distributed systems security is considered from the perspective of the Web and the Internet in terms of TCP/IP security. Multi-level security relative to concurrency control is explored. Security applications to health and finance are discussed. In addition to lectures, the course will involve attendance at a number of Information Security Institute- sponsored seminars, as well as presentations by guest lecturers. An information security and assurance topic area will be identified for each student, and a research paper will be required addressing relevant issues. Prerequisites: 600.333/433 and 600.344/444 and permission of instructor. [Systems]

Masson   3 credits

600.424 (E) Network Security

Similar material as 600.324, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.324 or 600.424, but not both. Prerequisites: 600.226, 600.344/444 or permission; 600.120 (or equivalent) and 600.349/449 recommended. [Systems]

Monrose   3 credits   fall

600.425 (E) Declarative Methods

Similar material as 600.325, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.325 or 600.425, but not both. Prerequisites: 600.226, 600.271, Calc II. [Analysis]

Eisner  3 credits  spring

600.426 (E,Q) Programming Languages

This course departs from the traditional programming languages course which surveys a number of programming languages. Instead, functional, object-oriented, and other language features are studied independent of a particular programming language. Students become familiar with these features by implementing them. Most of the implementations are in the form of small language interpreters. Some type checkers and a small compiler will also be written. The total amount of code written will not be overly large, as the emphasis is on concepts. The ML programming language is the implementation language used in the course. ML includes features such as type inference, a functional basis, and an advanced module system that make it worthy of study in its own right. Prerequisites: 600.226. Freshmen/Sophomores by permission only. [Analysis]

Smith   3 credits   spring

600.427 (E) On-Line Computing

Intelligent decision making in spite of temporal and spatial uncertainties, with applications to engineering and economics. On-line algorithms: decision making without knowing the future (e.g., investing in the stock market). Distributed algorithms: operation without knowledge of the current state (e.g., mobile users communication in cellular networks). Prerequisite: 600.363 or 600.463. [Analysis]

Awerbuch   3 credits  

600.428 (E) Compiling and Program Analysis

Similar material as 600.328, covered in more depth.  Intended for upper-level undergraduates and graduate students.  Students may receive credit for 600.328 or 600.428, but not both.  Prerequisite: 600.226; 600.120 highly recommended. [Systems]

Shapiro  3 credits

600.433 (E) Computer Systems

Similar material as 600.333, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.333 or 600.433, but not both. Prerequisite: 600.107 or 600.109. [Systems]

Masson   3 credits   fall/summer

600.434 (E) Computer System Architecture

Similar material as 600.334, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.334 or 600.434, but not both. Prerequisite: 600.333/433 or equivalent. [Systems]

3 credits

600.435 (E) Artificial Intelligence

Similar material as 600.335, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.335 or 600.435, but not both. Prerequisite: 600.226, 550.171; linear algebra, prob/stat recommended. [Applications]

Hager, Sheppard   3 credits   spring

600.436 (E) High-Assurance Systems

This course focuses on the design and implementation of high assurance (i.e., certifiably secure) systems. It examines the history of high assurance standards and system building, the state of current standards, and the motivations behind them. It discusses the objectives of high-assurance software construction and the methods by which high-assurance is achieved, and tests these methods against an actual high-assurance software system. In the process, it challenges the assumptions that underlie high assurance software processes, and investigates how these assumptions and methods may need to change in the face of open source and/or collaborative software development. Finally, it looks at research topics in high assurance systems. Prerequisite: 600.318/418. [Applications]

Shapiro   3 credits

 

600.437 (E) Distributed Systems

Similar material as 600.337, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.337 or 600.437, but not both. Prerequisites: Intermediate Programming and 600.226; 600.111 recommended. [Systems]

Amir   3 credits   fall

600.438 (E) Advanced Topics in Operating Systems

Topics will vary from year to year, usually in the areas of operating system security, security assurance, resource management, high-performance microkernels, and similarly advanced subjects. Emphasis in this course is on understanding not just concepts but their implications for the whole of the resulting system design. A significant project may be included. Prerequisite: 600.318/418. [Systems]

Shapiro   3 credits  

600.441 (E) Vision-Based Interaction for Man and Machine

[Replaced by 600.630 in 2005.]

This seminar course surveys recent research results on algorithms for dynamic vision and their application. Specific emphasis will be placed on approaches which derive novel and efficient algorithms using generalizable mathematical and/or computational principles. Application papers will cover problems ranging from the automated control of devices using vision (e.g., automated driving) to perception-based user interfaces. Students will be expected to participate in class by reading, presenting, and discussing research papers. Prerequisites: 600.461 or 530.646 or permission of instructor. [Applications]

Hager   3 credits

600.442 (E,Q) Cryptography and Network Security

This course focuses on algorithms and protocols for secure network communication. Topics include cryptographic algorithms (DES, Diffie-Hellman, RSA), authentication, key management, secure networking, certification, trust management, and secure electronic commerce. Prerequisites: 600.271 and 550.171 or equiv, 600.226 and a 300-level or above systems course. [Analysis]

Ateniese   3 credits   fall

600.443 (E) Security and Privacy in Computing

Lecture topics will include computer security, network security, basic cryptography, system design methodology, and privacy. There will be a heavy work load, including written homework, programming assignments, exams and a comprehensive final. The class will also include a semester-long project that will be done in teams and will include a presentation by each group to the class. Prerequisite: a basic course in operating systems and networking, or permission of instructor. [Applications]

Rubin   3 credits   spring

600.444 (E) Computer Networks

Similar material as 600.344, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.344 or 600.444, but not both. [Systems]

3 credits

600.445 (E) Computer-Integrated Surgery I

This course focuses on computer-based techniques, systems, and applications exploiting quantitative information from medical images and sensors to assist clinicians in all phases of treatment from diagnosis to preoperative planning, execution, and follow-up. It emphasizes the relationship between problem definition, computer-based technology, and clinical application and includes a number of guest lectures given by surgeons and other experts on requirements and opportunities in particular clinical areas. An optional term project may be undertaken under supervision of the instructor and clinician end users. Although this course is primarily intended for graduate students and advanced undergraduate students interested in doing research in this area, it may also be of interest to medical or qualified premedical students wanting to obtain a broader background in this emerging field. Prerequisites: linear algebra and C++ programming or permission of instructor. Recommended: 600.457, 600.461, image processing. [Applications]

Taylor   4 credits   fall

600.446 (E) Computer-Integrated Surgery II

This weekly lecture/seminar course addresses similar material to 600.445, but covers selected topics in greater depth. In addition to material covered in lectures/seminars by the instructor and other faculty, students are expected to read and provide critical analysis/presentations of selected papers in recitation sessions. Students taking this course are required to undertake and report on a significant term project under the supervision of the instructor and clinical end users. Typically, this project is an extension of the term project from 600.445, although it does not have to be. Grades are based both on the project and on classroom recitations. Students wishing to attend the weekly lectures as a 1-credit seminar should sign up for 600.452. Students may also take this course as 600.646. The only difference between 600.446 and 600.646 is the level of project undertaken. Typically, 600.646 projects require a greater degree of mathematical, image processing, or modeling background. Prospective students should consult with the instructor as to which course number is appropriate. Prerequisite: 600.445 or permission of instructor. [Applications]

Taylor   3 credits   spring

600.447 (E,Q) Distributed Computing

Locality and symmetry breaking. Distributed data structures for routing, tracking mobile users, wireless communication, directory service. Introduction to distributed online computing: distributed data management (file replication, paging). Asynchronous communication and synchronization mechanisms. Fault tolerance: networks with dynamic and fault-ridden topology. Prerequisites: familiarity with basic algorithmic and/or graph-theoretic concepts (e.g., 600.363/463 or 600.226). [Analysis]

Awerbuch   3 credits

600.448 (E,Q) Theory of Network Communication

Similar material to 600.348, but in more depth, intended for upper-level undergraduates and graduate students. Students may receive credit for 600.348 or 600.448, but not both. Weekly assignments. Some knowledge of probability theory is helpful. Prerequisite: 600.344/444 or permission. [Analysis]

Scheideler   3 credits

600.449 (E) Internet Protocols

Similar material as 600.349, but in more depth, intended for upper-level undergraduates and graduate students. Students may receive credit for 600.349 or 600.449, but not both. Prerequistes: 600.120 and 600.344/600.444; 600.211 (or 600.111) is recommended but not required. [Systems]

Terzis   3 credits  fall

 

600.452 (E) Computer-Integrated Surgery Seminar

Essentially, 600.452 is identical to 600.446/646 without the term project. Students may receive credit for only one of 600.446/452/646. Prerequisite: 600.445 or permission of instructor. [Applications]

Taylor   1 credit   spring

600.456 (E,Q) Rendering Techniques

Similar material as 600.356, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.356 or 600.456, but not both. Prerequisites: Data Structures (600.226), Linear Algebra (550.291 or 110.201). [Applications]

Cohen   3 credits

600.457 (E,Q) Computer Graphics

Similar material as 600.357, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.357 or 600.457, but not both. Prerequisites: 600.120, 600.226, linear algebra; or permission of instructor.[Applications]

Kazhdan  3 credits  spring

600.460 (E) Interactive Graphics and Games

This course studies a variety of techniques for creating interactive graphics applications. Students collaborate in small groups to design and implement their own 3D games. Prerequisite: 600.356/456 or 600.357/457 or significant graphics experience and permission. [Applications]

Cohen   3 credits

600.461 (E,Q) Computer Vision

This course gives an overview of fundamental methods in computer vision from a computational perspective. Methods include computation of 3-D geometric constraints from binocular stereo, motion, texture, shape-from-shading, and photometric stereo. Edge detection and color perception are studied as well. Elements of machine vision and biological vision are also included. Prerequisites: 600.226. [Applications]

Hager   3 credits   fall

600.462 (E) Advanced Topics in Computer Vision

[Cross-listed as 580.464]
This course covers state-of-the-art methods in dynamic vision, with an emphasis on segmentation, reconstruction and recognition of static and dynamic scenes. Topics include: reconstruction of static scenes (tracking and correspondence, multiple view geometry, self calibration), reconstruction of dynamic scenes (2-D and 3-D motion sementation, nonrigid motion analysis), recognition of visual dynamics (dynamic textures, face and hand gestures, human gaits, crowd motion analysis), as well as geometric and statistical methods for clustering and unsupervised learning, such as K-means, Expectation Maximization, and Generalized Principal Component Analysis. Applications in robotics and biomedical imaging are also included. Prereq: 600.461 & linear algebra or permission. [Applications]

Vidal  3 credits  spring

 

600.463 (E,Q) Algorithms I

Similar material as 600.363, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.363 or 600.463, but not both. Prerequisite: 600.226. [Analysis]

Awerbuch   3 credits   fall

600.464 (E,Q) Randomized Algorithms

The course concentrates on the design and analysis of randomized algorithms. Problems from graph theory, computational geometry and information routing in networks will be treated. Some knowledge of probability theory and deterministic algorithmic techniques is helpful. Prerequisite: 600.363 or 600.463. [Analysis]

Kosaraju   3 credits   spring

600.465 (E) Introduction to Natural Language Processing

This course is an in-depth overview of techniques for processing human language. How should linguistic structure and meaning be represented? What algorithms can recover them from text? And crucially, how can we build statistical models to choose among the many legal answers? The course covers methods for trees (parsing and semantic interpretation), sequences (finite-state transduction such as morphology, and words (sense and phrase induction), with applications to practical engineering tasks such as information retrieval and extraction, text classification, part-of-speech tagging, speech recognition and machine translation. There are a number of structured but challenging programming assignments. Prerequisite: 600.226; previous exposure to probability or linguistics may be helpful. [Applications]

Eisner   3 credits   fall

600.466 (E) Information Retrieval and Web Agents

An in-depth, hands-on study of current information retrieval techniques and their application to developing intelligent WWW agents. Topics include a comprehensive study of current document retrieval models, mail/news routing and filtering, document clustering, automatic indexing, query expansion, relevance feedback, user modeling, information visualization and usage pattern analysis. In addition, the course explores the range of additional language processing steps useful for template filling and information extraction from retrieved documents, focusing on recent, primarily statistical methods. The course concludes with a study of current issues in information retrieval and data mining on the World Wide Web. Topics include web robots, spiders, agents and search engines, exploring both their practical implementation and the economic and legal issues surrounding their use. Prerequisite: 600.226. [Applications]

Yarowsky   3 credits   spring

600.471 (E,Q) Modern Complexity Theory

Similar material as 600.371, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.371 or 600.471, but not both. Prerequisite: 600.271 or permission. [Analysis]

Scheideler   3 credits

600.475 (E) Machine Learning

This course covers current topics in machine learning research. After a brief historical review, the class focuses on a series of different learning models, including memory-based learning, genetic algorithms, and neural net learning algorithms. The class considers the design and methodology of experiments used to test and compare different machine learning systems. Although the main focus is on experimental work, the course also examines theoretical work on distribution-free learning models. Students in the course design their own machine learning system as a final project. Prerequisite: 600.335/435 or permission of instructor. [Applications]

Sheppard  3 credits

600.484 (E,Q) Approximation Algorithms

Topics covered will be approximation with absolute and relative guarantees, polynomial approximation schemes, nonapproximability, complexity theoretic considerations, techniques for randomized approximation algorithms, and approximate counting. [Analysis]

Scheideler   3 credits

 

600.491-492 (E) Computer Science Workshop I, II

An applications-oriented, computer science project done under the supervision and with the sponsorship of a faculty member in the Department of Computer Science. Computer Science Workshop provides a student with an opportunity to apply theory and concepts of computer science to a significant project of mutual interest to the student and a Computer Science faculty member. Permission to enroll in CSW is granted by the faculty sponsor after his/her approval of a project proposal from the student. Interested students are advised to consult with Computer Science faculty members before preparing a Computer Science Workshop project proposal. Prerequisite: consent of faculty supervisor.

3 credits

600.498 Programming Contest Laboratory

This laboratory course meets for 2.5 hours/week. The intent is to develop the skills needed to achieve victory in programming contests. Prerequisite: permission of instructor. [General]

Smith   1 credit

600.501-502 Independent Study

Individual guided study under the direction of a faculty member in the department. The program of study, including the credit to be assigned, must be worked out in advance between the student and the faculty member involved. May be taken either term by freshmen or sophomores.

600.503-504 Independent Study

Individual guided study under the direction of a faculty member in the department. The program of study, including the credit to be assigned, must be worked out in advance between the student and the faculty member involved. May be taken either term by juniors or seniors.

600.507-508, 574, 595 Independent Research

Independent research under the direction of a faculty member in the department. The program of research, including the credit to be assigned, must be worked out in advance between the student and the faculty member involved. May be taken fall (507), spring (508), intersession (574), summer (595).

 

600.509-510, 550, 599 Computer Science Internship

Individual work in the field with a learning component, supervised by a faculty member in the department. The program of study and credit assigned must be worked out in advance between the student and the faculty member involved. Students may not receive credit for work that they are paid to do. As a rule of thumb, 40 hours of work is equivalent to one credit. P/F only. May be taken fall (509), spring (510), intersession (550), summer (599).

600.519-520 (E) Senior Honors Thesis

For computer science majors only. The student will undertake a substantial independent research project under the supervision of a faculty member, potentially leading to the notation “Departmental Honors with Thesis” on the final transcript. Students are expected to enroll in both semesters of this course during their senior year. Project proposals must be submitted and accepted in the preceding spring semester (junior year) before registration. Students will present their work publicly before April 1 of senior year. They will also submit a first draft of their project report (thesis documentation) at that time. Faculty will meet to decide if the thesis will be accepted for honors. Prerequisite: 3.5 GPA in Computer Science after spring of the junior year and permission of faculty supervisor.

3 credits/semester (taken twice)

600.546 (E) Senior Thesis in Computer Integrated Surgery

The student will undertake a substantial independent research project in the area of computer-integrated surgery, under joint supervision of a WSE faculty adviser and a clinician or clinical researcher at the Johns Hopkins Medical School. This project will typically require background literature research, design, and execution of an experimental study or substantial implementation effort, and writeup of the results. The written reports will be published as reports by the CISST Engineering Research Center and may be used by the students as the basis for further academic publication. Because of the interdisciplinary, team oriented nature of much CIS research, students may work in small groups or with other members of the adviser's research group. Students will be expected to establish a research plan and schedule and may be required by their adviser to provide interim documentation and meet interim deadlines, as appropriate. This requirement will be especially pertinent for two semester projects. Prerequisite: 600.445 or permission required. [Applications]

Taylor   3 credits/semester (may be taken twice)

600.576 Intersession Independent Study

Similar to 600.501-504, except taken during winter intersession.

600.597 Summer Independent Study

Similar to 600.501-504, except taken during summer session.



 
Today is Monday, November 23, 2009

The Department of Computer Science   © 2002 The Johns Hopkins University