Department of Computer Science, Johns Hopkins University
spacerHomeAbout UsWhy Join UsPeopleAcademicsResearchEventsServices
Department of Computer Science, Johns Hopkins Universityspacer

Spring 2008 Courses

Courses without end times are assumed to meet for 50 minute periods. Final room assignments will be available on the Registrar's website in January. Changes to the original schedule are noted in red.

600.102 (E)

CS FOUNDATIONS (4) Froehlich

This course is an introduction to computer science for majors and non-majors. Students are exposed to the discipline through vignettes of logic and algebra, computer systems and networks, algorithms, programming languages, computation theory, and selected applications. CS majors can only take this course in their first year of CS coursework. Limit 15 per section.

Prereq: 600.101 or equiv. knowledge.

MWF 12
limit 15/section
Sec 1: Tu 12
Sec 2: Th 12

600.104 (H)

COMPUTER ETHICS (1) Sheela Kosaraju

Students will examine a variety of topics regarding policy, legal, and moral issues related to the computer science profession itself and to the proliferation of computers in all aspects of society, especially in the era of the Internet. The course will cover various general issues related to ethical frameworks and apply those frameworks more specifically to the use of computers and the Internet. The topics will include privacy issues, computer crime, intellectual property law -- specifically copyright and patent issues, globalization, and ethical responsibilities for computer science professionals. Work in the course will consist of weekly assignments on one or more of the readings and a final paper on a topic chosen by the student and approved by the instructor.

We 5-7p, alternate weeks
limit 20, CS majors only

600.107 (E)

INTRO TO PROGRAMMING IN JAVA (3) Houlahan

This course introduces the fundamental programming concepts and techniques in Java and is intended for all who plan to use computer programming in their studies and careers. Topics covered include control structures, arrays, functions, recursion, dynamic memory allocation, simple data structures, files, and structured program design. Elements of object-oriented design and programming are also introduced. Students without prior exposure are strongly advised to also take 600.108.

Prereq: familiarity with computers.

MW 3-4:15
limit 120

600.108 (E)

INTRO PROGRAMMING LAB (1) Houlahan

Satisfactory/Unsatisfactory only. Must be taken in conjunction with 600.107. The purpose of this course is to give novice programmers extra hands-on practice with guided supervision. Students will work in pairs each week to develop working programs, with checkpoints for each development phase.

Co-Requisite: 600.107.

Sec 1: Wed 6-9p
Sec 2: Thu 3-6p
Sec 3: Fri 3-6p
limit 12/section

600.120 (E)

INTERMEDIATE PROGRAMMING (4) Froehlich

This course covers intermediate to advanced programming in both C and C++. The focus of the course is on low level programming techniques and implementations. Students are expected to learn syntax and low-level language features independently. Coursework involves significant programming projects in both languages.

Prereq: AP CS, 600.107 or 600.226.

MWF 3
limit 20/section
Sec 1: Tu 3
Sec 2: Th 3

600.211 (E)

UNIX SYSTEMS PROGRAMMING (3) Froehlich

This course covers a variety of topics in UNIX programming, including process control, signal handling, daemon processes, and interprocess communication. Participants must be familiar with using the UNIX environment and be fluent in the C programming language.

Prereq: 600.120

MWF 11
limit 40

600.226 (E,Q)

DATA STRUCTURES (3) Houlahan

This course covers the design and implementation of data structures including arrays, stacks, queues, linked lists, binary trees, heaps, balanced trees (e.g. 2-3 trees, AVL-trees) and graphs. Other topics include sorting, hashing, memory allocation, and garbage collection. Course work involves both written homework and Java programming assignments.

Prereq: AP CS, 600.107 or 600.120.

WF 12-1:15

600.318 (E)

OPERATING SYSTEMS (4) Doerrie/Sridhar

This course covers the fundamental topics related to operating systems theory and practice. Topics include processor management, storage management, concurrency control, multi-programming and processing, device drivers, operating system components (e.g., file system, kernel), modeling and performance measurement, protection and security, and recent innovations in operating system structure. Course work includes the implementation of operating systems techniques and routines, and critical parts of a small but functional operating system. [Systems]

Prereq: 600.120, 600.226, and 600.333. 600.211 Recommended. Students may receive credit for 600.318 or 600.418, but not both.

MWF 10
limit 30

600.325 (E)

DECLARATIVE METHODS (3) Eisner

Suppose you could simply write down a description of your problem, and let the computer figure out how to solve it. What notation could you use? What strategy should the computer then use? In this survey class, you'll learn to recognize when your problem is a special case of satisfiability, integer programming, rational pattern transduction, Bayesian network inference, or weighted logic programming. For each of these paradigms, you'll learn to reformulate hard problems in the required notation and apply off-the-shelf software that can solve any problem in that notation -- including many of the problems you'll see in other courses and in the real world. You'll also gain some understanding of the general-purpose algorithms that power the software. [Analysis]

Prereq: 600.226, 600.271, Calc II. Students can only receive credit for 600.325 or 600.425, not both.

MWF 3
limit 30

600.335 (E)

ARTIFICIAL INTELLIGENCE (3) Sheppard

Artificial intelligence (AI) is introduced by studying knowledge representation mechanisms, automated reasoning, automatic problem solvers and planners, production systems, game playing and machine learning. The class is recommended for all scientists and engineers with a genuine curiosity about the fundamental obstacles to getting machines to perform tasks such as deduction, learning, and planning and navigation. [Applications]

Prereq: 600.226, 550.171; Recommended: linear algebra, prob/stat.

MWF 10
limit 30

600.337 (E)

DISTRIBUTED SYSTEMS (3) Amir

This course teaches how to design and implement protocols that enable processes to exchange information, cooperate, and coordinate efficiently in a consistent manner over a computer network. Topics include communication protocols, group communication, distributed databases, distributed operating systems, and security.

Prereq: 600.120, 600.226. Students may receive credit for 600.337 or 600.437, but not both.

MW 3-4:15

600.344 (E)

COMPUTER NETWORK FUNDAMENTALS (3) Terzis

This course considers intrasystem communications issues. Topics covered include layered network architectures; the OSI model; bandwidth, data rates, modems, multiplexing, error detection/correction; switching; queuing models, circuit switching, packet switching; performance analysis of protocols, local area networks; and congestion control. [Systems]

Prereq: 600.333 or 600.433 or permission. Students can only receive credit for 600.344 or 600.444, not both.

TuTh 12-1:15

600.357 (E,Q)

COMPUTER GRAPHICS (3) Kazhdan

This course introduces computer graphics techniques and applications, including image processing, rendering, modeling and animation. Students may receive credit for 600.357 or 600.457, but not both. [Applications]

Prereq: 600.120 (C++), 600.226, linear algebra. Permission of instructor is required for students not satisfying a pre-requisite.

MWF 11
limit 20

600.361 (E,Q)

COMPUTER VISION (3) Vidal

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. [Applications]

Prereq: 600.226

MW 1:30-2:45

600.402 (E)

MEDICAL INFORMATICS (1) Lehmann

Computers and information technology has 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.

Short course meets 4 weeks 3/24-4/16.

MW 4:30-5:45
4 weeks: 3/24-4/16
limit 50

600.407 (E)

NEW COURSE!

GENERAL PURPOSE COMPUTATION ON THE GPU (1) Bolitho

Programmable graphics hardware not only provides a way to perform advanced real-time 3D rendering, but also a platform for highly parallel numerical computing. Over the past 5 years, the General Purpose Graphics Processor Unit (GPGPU) community has grown around performing non-graphics computations using the limited instruction set and framework of the graphics pipeline. This short course, which meets one hour per week from the Spring semester, will introduce students to GPGPU computing using NVIDIA's CUDA platform.

Prerequisites: 600.120 & 600.333/433; computer graphics and linear algebra recommended.

Wed 10
limit 25

600.409 (E)

NEW COURSE!

DIGITAL PRESERVATION (1) Burns & Griffin

This course explores how digital information may be stored, maintained, and retrieved over decades or centuries. It examines both the technical and social aspects of preservation, drawing material from both Computer Science and the Digital Library community. Lecture topics will include architectures for long-term archival, data provenance, information representation, metadata semantics, replica maintenance, authenticity and privacy, and business models for sustainable archives. Students will define and execute a research project investigating a hot unsolved problem related to data preservation. The course is suitable for upper-level undergraduates and graduate students from all disciplines that have had an introductory programming course.

Prerequisites: 600.107 or equivalent.

Th 4:30-5:20
limit 60

600.418 (E)

OPERATING SYSTEMS (3) Doerrie/Sridhar

Graduate level version of 600.318. [Systems]

Prereq: 600.226, and 600.333; 600.211 recommended. Students may receive credit for 600.318 or 600.418, but not both.

MWF 10
CS grads only

600.425 (E)

DECLARATIVE METHODS (3) Eisner

Graduate level version of 600.325. [Analysis]

Prereq: 600.226, 600.271, Calc II. Students can only receive credit for 600.325 or 600.425, not both.

MWF 3

600.426 (E,Q)

PROGRAMMING LANGUAGES (3) Smith

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. [Analysis]

Prereq: 600.226. Freshmen and sophomores by permission only.

WF 1:30-2:45

600.435 (E)

ARTIFICIAL INTELLIGENCE (3) Sheppard

Graduate level version of 600.335 (see description above). [Applications]

Prereq: 600.226, 550.171; Recommended: linear algebra, prob/stat.

MWF 10
limit 10 + CS grads

600.437 (E)

DISTRIBUTED SYSTEMS (3) Amir

Graduate version of 600.337. Students may receive credit for 600.337 or 600.437, but not both. [Systems]

MW 3-4:15

600.444 (E)

COMPUTER NETWORKS (3) Terzis

Graduate level version of 600.344. [Systems]

Prereq: 600.333 or 600.433 or permission. Students can only receive credit for 600.344 or 600.444, not both.

TuTh 12-1:15

600.446 (E)

COMPUTER INTEGRATED SURGERY II (3) Taylor

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. [Applications]

Prereq: 600.445 or perm req'd. Students may receive credit for 600.446 or 600.646, but not both.

TuTh 1:30-2:45
limit 20 (+ grads)

600.452 (E)

COMPUTER INTEGRATED SURGERY SEMINAR (1) Taylor

Lecture only version of 600.446 (no project).

Prereq: 600.445 or perm req'd. Students may receive credit for 600.446 or 600.452, but not both.

TuTh 1:30-2:45

600.457 (E,Q)

COMPUTER GRAPHICS (3) Kazhdan

Graduate level verson of 600.357. Students may receive credit for 600.357 or 600.457, but not both. [Applications]

Prereq: 600.120 (C++), 600.226, linear algebra. Permission of instructor is required for students not satisfying a pre-requisite.

MWF 11
limit 10 + CS grads

600.461 (E,Q)

COMPUTER VISION (3) Vidal

Graduate version of 600.361. Students may receive credit for 600.361 or 600.461, but not both. [Applications]

Prereq: 600.226

MW 1:30-2:45

600.464 (E,Q)

RANDOMIZED ALGORITHMS (3) Kosaraju

Selected topics in algorithm design and analysis such as advanced data structures, amortization, graph algorithms, algebraic complexity, network flow, circulations, matching, randomization. [Analysis]

Prereq: 600.363 or 600.463. Students may receive credit for 600.464 or 600.664, but not both.

TuTh 1:30-2:45

600.466 (E)

INFORMATION RETRIEVAL & WEB AGENTS (3) Yarowsky

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. [Applications]

Prereq: 600.226

TuTh 3-4:15
limit 60

600.472 (E,Q)

NEW COURSE!

THEORETICAL CRYPTOGRAPHY (3) Hohenberger

The focus of this course is on the definitions and constructions of various cryptographic primitives and protocols, such as one-way functions, pseudo-random generators, digital signature schemes, encryption schemes, zero-knowledge and multiparty computation. We will study how to formulate definitions that capture desired security properties as well as techniques for designing and then proving that a construction realizes these properties. Students should be comfortable with the basics of number theory and proof writing. [Analysis]

Prereq: 600.471 recommended.

TuTh 1:30-2:45

600.492 (E)

COMPUTER SCIENCE WORKSHOP II Staff

Permission of faculty sponsor is required. See below for faculty section numbers.

600.502

INDEPENDENT STUDY- FRESHMEN & SOPHOMORES

Permission of faculty sponsor is required. See below for faculty section numbers.

600.504

INDEPENDENT STUDY- JUNIORS & SENIORS

Permission of faculty sponsor is required. See below for faculty section numbers.

600.508

UNDERGRADUATE RESEARCH

Permission of faculty sponsor is required. See below for faculty section numbers.

600.510

COMPUTER SCIENCE INTERNSHIP

Individual work in the field with a learning component, supervised by a faculty member in the department. The program of study 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, which is the limit per semester.

Permission of faculty sponsor is required.

See below for faculty section numbers.

600.520

SENIOR HONORS THESIS (3)

For computer science majors only, a continuation of 600.519.

Prerequisite: 600.519

See below for faculty section numbers.

600.546 (E)

SENIOR THESIS IN COMPUTER INTEGRATED SURGERY (3)

Prereq: 600.445 or perm req'd.

Section 01: Taylor

600.602

COMPUTER SCIENCE SEMINAR

Required for all CS grad students.

TuTh 10:30-12

600.619

ADDED!

ADVANCED STORAGE & TRANSACTION PROCESSING SYSTEMS Burns

In this course, we will examine advanced research topics in storage systems, file systems, transaction processing, and network data management. The readings are taken from the current research literature and articles of historical significance. This course is intended for graduate students interested in conducting research on or related to these topics and for students who face management, availability or performance issues with data in their own research. Students will conduct a semester long research project and present their results to the class. In addition to the scheduled meetings, students will have weekly one-on-one meetings with the professor. [Systems]

Prerequisite: 600.419 or permission of instructor.

TuTh 12-1:15
limit 20

600.625

CANCELLED

COMPUTER AND NETWORK FORENSICS (3)Monrose

The course exposes students to a myriad of fundamental concepts and techniques for recovering and inferring information in computer systems and networks. Topics include (but are not limited too) file system forensics, kernel-level rootkits and associated challenges, reconstructing malware evolution and dynamics, analysis of anonymization and privacy preserving techniques, advanced network traceback, traffic classification, biometrics and digital evidence, data integrity and audit trails, secure remote logging, and system call introspection.

A semester-long course project is required. Students will also be responsible for presenting and discussing selected research papers on topics pertinent to the course. Some familiarity with low-level system programming is assumed. [Applications]

Prerequisite: Exposure to operating systems concepts and low-level system programming is assumed, or instructor permission.

CANCELLED

(was WF 1:30-2:45)
limit 10 ugrad, 15 grad

600.642

ADVANCED TOPICS IN CRYPTOGRAPHY (3) Ateniese

This course will focus on advanced cryptographic protocols with an emphasis on open research problems. [Applications]

Prereq: 600.442 or 600.443 or permission of the instructor.

TuTh 3-4:15

600.643

ADVANCED TOPICS IN COMPUTER SECURITY Rubin

Topics will vary from year to year, but will focus mainly on network perimeter protection, host-level protection, authentication technologies, intellectual property protection, formal analysis techniques, intrusion detection and similarly advanced subjects. Emphasis in this course is on understanding how security issues impact real systems, while maintaining an appreciation for grounding the work in fundamental science. Students will study and present various advanced research papers to the class. There will be homework assignments and a course project. [Systems or Applications]

Prereq: 600.443 or 600.424; or permission of instructor.

MW 1:30-2:45
limit 20

600.646

COMPUTER INTEGRATED SURGERY II (3) Taylor

Advanced version of 600.446. [Applications]

Prereq: 600.445 or perm req'd. Students may receive credit for 600.446 or 600.646, but not both.

TuTh 1:30-2:45

600.647

ADVANCED TOPICS IN WIRELESS NETWORKS (3) Awerbuch

This class will survey current research in wireless communication networks. These types of networks have been growing exponentially in the past several years and include a host of different network types: ad hoc, cell phone, access point, sensor, etc. The class will build understanding of all layers of wireless networking and the interactions between them (including: physical, data link, medium access control, routing, transport, and application). The topics of security, energy efficiency, mobility, scalability, and their unique characteristics in wireless networks will be discussed. [Systems or Analysis]

Prereq: 600.344/444 & 600.363/463, or permission of the instructor.

MW 12-1:15

600.664

RANDOMIZED ALGORITHMS (3) Kosaraju

Graduate level version of 600.464. [Analysis]

Prereq: 600.363 or 600.463. Students may receive credit for 600.464 or 600.664, but not both.

TuTh 1:30-2:45

600.666

INFORMATION EXTRACTION (3) Khudanpur

Introduction to statistical methods of speech recognition (automatic transcription of speech) and understanding. The course is a natural continuation of 600.465 but is independent of it. Topics include elementary information theory, hidden Markov models, the Baum and Viterbi algorithms, efficient hypothesis search methods, statistical decision trees, the estimation-maximization (EM) algorithm, maximum entropy estimation and estimation of discrete probabilities from sparse data for acoustic and language modeling. Weekly assignments and several programming projects.

Prerequisites: 550.310 or equivalent, expertise in C or C++ programming. Co-listed with 050.666 and 520.666.

TuTh 9:00-10:15

600.671

SPECIAL TOPICS ON BIO-NANO COMPUTING (3) Mitra Basu

This course will cover nanotechnology, bio-nanotechnology, introductory structural biology, molecular bioengineering, DNA computing, molecular electronics, and related fields with a focus on the design, fabrication, use, and development of systems with molecular-scale components. Previous knowledge of chemistry or macromolecular structure is not required. The course is appropriate for graduate and advanced undergraduate students in engineering, computer science, chemistry, and information technology-related fields. This course will be in lecture and discussion format. Students will read and discuss seminal papers in the field. [Applications]

TuTh 12-1:15
limit 20

600.726

SEMINAR IN PROGRAMMING LANGUAGES (1) Smith

This seminar course covers recent developments in the foundations of programming language design and implementation. Topics covered include type theory, process algebra, higher-order program analysis, and constraint systems. Students will be expected to present papers orally.
Prereq: permission of instructor

W 11

600.735

SEMINAR IN MACHINE LEARNING (1) Sheppard

This seminar course will look at research in machine learning. Topics will be selected from those of mutual interest between students and the instructor. Sample topics include reinforcement learning, kernel methods, experimental methods in machine learning, computational learning theory, lazy learning, evolutionary computation, and neural networks. Students are expected to select papers and lead discussion.

Th 9

600.745

SEMINAR IN COMPUTER INTEGRATED SURGERY (1) ???

This weekly seminar will focus on research issues in computer integrated surgery, including subjects such as medical image analysis, statistical modeling, visualization, vision/sensing, surgical planning, medical robotics, and clinical applications. The purpose of the course is to widen the knowledge and awareness of the participants in current research in these areas, as well as to promote greater awareness and interaction between multiple research groups within the University and beyond. The format of the course is informal presentation by a pre-eminent invited speaker, followed by free discussion.

W 12-1:30

600.746

MEDICAL IMAGE ANALYSIS SEMINAR (1) Taylor & Prince

This weekly seminar will focus on research issues in medical image analysis, including image segmentation, registration, statistical modeling, and applications. It will also include selected topics relating to medical image acquisition, especially where they relate to analysis. The purpose of the course is to provide the participants with a thorough background in current research in these areas, as well as to promote greater awareness and interaction between multiple research groups within the University. The format of the course is informal. Students will read selected papers. All students will be assumed to have read these papers by the time the paper is scheduled for discussion. But individual students will be assigned on a rotating basis to lead the discussion on particular papers or sections of papers. Co-listed with 520.746.

Tu 3-4:50

600.757

SEMINAR IN COMPUTER GRAPHICS (1) Kazhdan

In this course we will review current research in computer graphics. We will meet for an hour once a week and one of the participants will lead the discussion for the week.

tba

600.758

GRADUATE SEMINAR IN COMPUTATIONAL GEOMETRY (1) Kazhdan

This course will provide a rapid and intense introduction to computational geometry. It will cover a number of topics in two- and three-dimensions, including polygon triangulations and partitions, convex hulls, Delaunay and Voronoi diagrams, arrangements, and spatial querries. Students will be expected to complete the assigned reading before class, and the course time will be spent on discussions and exercises.

M 3:30, NEB 317

600.765

SEMINAR IN NATURAL LANGUAGE PROCESSING (1) Eisner

A reading group exploring important current research in the field and potentially relevant material from related fields. Enrolled students are expected to present papers and lead discussion.

Pre-req: permission of instructor.

Th 12-1:15

600.766

SEMINAR IN MACHINE TRANSLATION (1) Callison-Burch & Hall

The weekly machine translation reading group will review current research in statistical machine translation, and well as relevant historical papers. Enrolled students will present papers and lead discussions.

F 11

600.802

DISSERTATION RESEARCH

See below for faculty section numbers.

600.804

GRADUATE RESEARCH

Independent research for masters or pre-dissertation PhD students. Permission required.

See below for faculty section numbers.

600.810

INDEPENDENT STUDY

Permission Required.

See below for faculty section numbers.

Faculty section numbers for all independent type courses, undergraduate and graduate.

01 - G. Masson
02 - R. Kosaraju
03 - B. Awerbuch
04 - R. Taylor
05 - S. Smith
06 - J. Houlahan
07 - H. Lehmann
08 - J. Sheppard
09 - G. Hager
10 - G. Chirikjian
11 - S. Khudhanpur
12 - Y. Amir
13 - D. Yarowsky
14 - N. Cowan
15 - R. Burns
16 - J. Eisner
17 - J. Shapiro
18 - S. Hohenberger
19 - R. Karchin
20 - G. Ateniese
21 - A. Rubin
22 - F. Monrose
23 - A. Terzis
24 - E. Scheinerman
25 - R. Winslow
26 - M. Kazhdan
27 - F. Jelinek
28 - P. Froehlich
29 - A. Szalay
30 - P. Kazanzides







spacerSearchContact UsIntegrity CodeAcademics FAQLibrary ResourcesJob Center