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

Fall 2005 Courses

For a full listing of course area designators (for program requirements), please click here. Changes to the printed schedule appear in RED. Room assignments have been confirmed as of 8/15/05.

600.101 (E)

COMPUTER FLUENCY (4) Houlahan

This course replaces the older version 600.101 Computer Literacy, and will incorporate some topics from 600.113 Internet as well. Students will become fluent with information technology through coverage of basic underlying concepts and use of common applications. Concepts will include the building blocks of computer systems and software, as well as historical perspectives and social implications. Students will learn basic and selected advanced skills with MS Office (word processing, spreadsheets, presentations, databases), as well as webpage design with programming in JavaScript, and unix operating system basics. The goal is to empower students so that they remain skilled computer users and will have confidence and success learning and applying new technologies on their own in the future. Limit 14 per section.

MTW 11
Shaf 101
limit 14/section
Sec 1: Th 9, Shaf 1
Sec 2: Th 10, Shaf 1
Sec 3: W 1, NEB 225
Sec 4: W 12, NEB 225

600.102 (E)

NEW COURSE

CS FOUNDATIONS (4) Froehlich

[Students who previously may have taken 600.103 Intro to CS or 600.113 Internet should consider this course instead.] 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 semester of CS coursework.

Prereq: 600.101 or equiv. knowledge. Limit 15 per section.

MTW 1
Shaf 100
sections in Shaf 1
limit 15/section
Sec 1: T 9
Sec 2: T 10
Sec 3: T 11

600.105 (E)

M&Ms: FRESHMAN EXPERIENCE (1) Houlahan

This course is required for all freshmen Computer Science majors. Transfers into the major and minors may enroll by permission only. Students will choose three 4-week blocks of meetings with different computer science professors, focused on a central theme. Active participation is required. Satisfactory/Unsatisfactory only. 2 sections - limit 10/section.

Sec 1: Th 4
Sec 2: Th 4
CS majors only!
Shaf 3 (first week)
room tba

600.106 (E)

PRE-PROGRAMMING: ALGORITHMIC THINKING (1) Vasconcelos-Santillan

This course is intended for novice programmers, to be taken before or in conjunction with 600.107 or 600.109. The purpose is to provide students with the abstraction and logical thinking tools necessary for writing computer programs. It will introduce students to fundamental concepts and algorithms common to many programming languages. Students will primarily do paper solutions. Short course meets 4 weeks only 9/19-10/12.

Satisfactory/Unsatisfactory only.

4 weeks 9/19-10/12
MTW 2

limit 20
Shaf 300

600.107 (E)

INTRO TO PROGRAMMING IN JAVA (3) Houlahan

Students without experience are strongly advised to also take 600.108 or 600.106. Prereq: familiarity with computers.

MTW 3
limit 120
Shaf 3

600.108 (E)

INTRO PROGRAMMING LAB (1) Houlahan

Satisfactory/Unsatisfactory only. Must be taken in conjunction with 600.107 or 600.109. 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.

Sec 1: We 5-8p
Sec 2: Th 1-4p
Sec 3: cancelled
(was Fr 9a-12)
limit 16/section
NEB 225

600.113 (E)

CANCELLED

INTERNET (4) staff

Students who were registered for this should consider taking 600.101 or 600.102 instead. Prereq: 600.101 or equiv. Limit 10 per section.

CANCELLED
(was ThF 9-10:15)
sections in NEB 225
limit 10/section
Sec 1: T 9
Sec 2: T 10
Sec 3: T 11

600.120 (E)

INTERMEDIATE PROGRAMMING (4) Amir

This course covers intermediate to advanced programming in both C and C++. The focus of the course is on programming techniques, class design, and the use of class libraries. Topics to be covered include: polymorphism, overloading, inheritance, pointers, dynamic memory allocation, templates, collections, exceptions, and others as time permits. Students are expected to learn syntax and low-level language features independently. Coursework involves significant programming projects in both languages.
Prereq: 600.107 or 600.109. Co-req: 600.226

MTW 2
Shaf 202
sections in Shaf 1
limit 25/section
Sec 1: Th 12
Sec 2: F 1

600.211 (E)

UNIX SYSTEMS PROGRAMMING (3) Froehlich

Prereq: 600.120

MTW 3
(was ThF 2:30-3:45)
limit 40
Shaf 202

600.226 (E,Q)

DATA STRUCTURES (3) Froehlich

An overview of JAVA will be provided. Prereq: 600.107 or 600.109.

ThF 2:30-3:45
Shaf 301

600.271 (E,Q)

AUTOMATA and COMPUTATION THEORY (3) Kosaraju

MTW 1
Shaf 303

600.315 (E)

DATABASE SYSTEMS (3) Yarowsky

Prereq: 600.226. Students may receive credit for 600.315 or 600.415, but not both.

ThF 2:30-3:45
Shaf 3

600.316 (E)

TRANSACTION PROCESSING SYSTEMS (3) Burns

This course covers the design and implementation of transaction processing and database systems. Topics include transaction semantics, write-ahead logging, memory management, checkpoints, concurrency control, replication, restart recovery, and distributed commit protocols. The course employs examples of advanced database applications to develop this material. Examples include Internet databases, TP monitors, multidatabases, and federated databases. Course work includes a project. [Systems]

Prereq: 600.315/415 or equiv., C++ programming. Students may receive credit for 600.316 or 600.416, but not both.

MTW 11
limit 20
Shaf 301

600.321 (E)

OBJECT ORIENTED SOFTWARE ENGINEERING (was Systems) (3) Smith

Prereq: 600.226 and 600.120/121. Students may receive credit for 600.321 or 600.421, but not both.

ThF 1-2:15
Shaf 303

600.324 (E)

NETWORK SECURITY (3) Monrose

This course focuses on communication security in computer systems and networks. The course is intended to provide students with an introduction to the field of network security. The course covers network security services such as authentication and access control, integrity and confidentiality of data, firewalls and related technologies, web security, anonymity, and privacy. Course work involves implementing various security techniques. A course project is required.

Prereq: 600.344/444 and 600.226. 600.121 (or equivalent) and 600.349/449 recommended. Students may receive credit for 600.324 or 600.424, not both.

MW 2-3:15
limit 20
NEB 12

600.333 (E)

COMPUTER SYSTEM FUNDAMENTALS (3) Masson

Prereq: 600.107/600.109. Students may receive credit for 600.333 or 600.433, but not both.

MTW 10
Shaf 3

600.348 (E,Q)
CANCELLED

THEORY OF NETWORK COMMUNICATION (3) Scheideler

The course covers current topics in the area of communication in distributed systems. The first part of the course gives an introduction to basic network theory and presents and analyzes strategies for routing, scheduling and load balancing in distributed systems. The second part of the course focuses on dynamic overlay networks and fundamental methods for peer-to-peer systems. Weekly assignments.

Prerequisite: 600.226; 600.344/444 recommended. [Analysis] Students receive credit for 600.348 or 600.448, but not both.

CANCELLED
Shaf 101

600.349 (E)

INTERNET PROTOCOLS (3) Terzis

This course covers the most important Internet protocols in detail. The goal is to get a solid technical understanding of the Internet's foundations and a concrete example of complete network protocol family. The course material will be taken from the textbook but the students will also be required to read the actual protocol specifications (RFCs). A major part of this course is the two group projects where students are going to implement realistic network protocols. In addition to the projects, there will be homework assignments, a midterm and a final. [Systems]

Prerequisites: 600.120 and 600.344/600.444. 600.211 (or 600.111) is recommended but not required. Students may receive credit for 600.349 or 600.449, but not both.

ThF 2:30-3:45
limit 20
Shaf 304

600.363 (E,Q)

INTRODUCTION TO ALGORITHMS (3) Awerbuch

Prereq: 600.226 or Perm. Req'd. Students may receive credit for 600.363 or 600.463, but not both.

MTW 9
Shaf 303

600.408 (E,Q)

EMPIRICAL RESEARCH METHODS IN CS (1) NA Smith & DA Smith

Computer programs are real-world processes that, like complex physical and biological systems, can be studied in controlled experiments and analyzed statistically. This course gives a rigorous grounding in empirical methods for students interested in any area of applied computer science. Topics: experimental design, probabilistic modeling, exploratory data analysis, hypothesis testing, and system tuning. Short course meets 8 weeks only: 10/12-12/7 (no class on 11/23).

Prereq: 600.120 and 600.226, or equivalent knowledge.

W 4-5:15
meets 10/12-12/7
limit 20 + CS grads
Shaf 300

600.415 (E)

DATABASE SYSTEMS (3) Yarowsky

Prereq: 600.226. Description:Same as 600.315. Students may receive credit for 600.315 or 600.415, but not both.

ThF 2:30-3:45
Shaf 3

600.416 (E)

TRANSACTION PROCESSING SYSTEMS (3) Burns

This course covers the design and implementation of transaction processing and database systems. Topics include transaction semantics, write-ahead logging, memory management, checkpoints, concurrency control, replication, restart recovery, and distributed commit protocols. The course employs examples of advanced database applications to develop this material. Examples include Internet databases, TP monitors, multidatabases, and federated databases. Course work includes a project. [Systems]

Prereq: 600.315/415 or equiv., C++ programming. Students may receive credit for 600.316 or 600.416, but not both.

MTW 11
CS grads only (ugrads by permission)
Shaf 301

600.421 (E)

OBJECT ORIENTED SOFTWARE ENGINEERING (was SYSTEMS) (3) Smith

Prereq: 600.226 and 600.120/121. Students may receive credit for 600.321 or 600.421, but not both.

ThF 1-2:15
Shaf 303

600.424 (E)

NETWORK SECURITY (3) Monrose

This course focuses on communication security in computer systems and networks. The course is intended to provide students with an introduction to the field of network security. The course covers network security services such as authentication and access control, integrity and confidentiality of data, firewalls and related technologies, web security, anonymity, and privacy. Course work involves implementing various security techniques. A course project is required.

Prereq: 600.344/444 and 600.226. 600.121 (or equivalent) and 600.349/449 recommended. Students may receive credit for 600.324 or 600.424, not both.

MW 2-3:15
CS grads only, ugrads by permission
NEB 12

600.433 (E)

COMPUTER SYSTEMS (3) Masson

Prereq: 600.107/600.109. Students may receive credit for 600.333 or 600.433, but not both.

MTW 10
Shaf 3

600.438 (E)

CANCELLED (see 600.439 below)

ADVANCED TOPICS IN OPERATING SYSTEMS (3) Shapiro

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.

Prereq: 600.318/418.

CANCELLED (was M 4, T 3-5)

limit 20
ugrads by permission only
Shaf 300

600.439 (E)

NEW COURSE

MICROKERNEL ARCHITECTURE AND DESIGN (3) Shapiro

Microkernels are commonly used in embedded applications, and have been suggested as a way to better structure general-purpose operating systems. The idea is simple: most of the function of a classical operating system can (and arguably should) be implemented as applications. The practice is quite another matter. Finding a microkernel architecture that effectively supports high performance, robust systems has proven to be a very elusive challenge. This course will look at the history of microkernel systems to provide an introduction and overview, and then focus our attention specifically on later, successful microkernels -- most notably the L4 nucleus and the EROS nucleus. We will explore the architectural, design, and implementation issues in these kernels in depth, examining them both from the perspective of effectiveness and also from the perspective of adherence to principled design. We will also explore the tools and techniques that are used to analyze these systems. The course is a hands-on project course. Starting from a supplied, simple embedded kernel, students will progressively enhance a microkernel into a fully functional, minimal operating system. This project will be divided into several well-defined stages, each of which will be attacked by project teams. [Systems]

Prereq: Thorough knowledge of C and UNIX, 600.333/433 & 600.318/418.

MTW 10

limit 20
ugrads by permission only
Shaf 300

600.442 (E,Q)

CRYPTOGRAPHY AND NETWORK SECURITY (3) Ateniese

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.
Prerequisite: 600.226 and a 300-level or above systems course; 600.271 and 550.171 or equiv.

ThF 1-2:15
limit 20 + CS grads
Shaf 304

600.445 (E)

COMPUTER INTEGRATED SURGERY I (4) Taylor

Prereq: 600.226

ThF 1-2:15
Shaf 300

600.448 (E,Q)
CANCELLED

THEORY OF NETWORK COMMUNICATION (3) Scheideler

The course covers current topics in the area of communication in distributed systems. The first part of the course gives an introduction to basic network theory and presents and analyzes strategies for routing, scheduling and load balancing in distributed systems. The second part of the course focuses on dynamic overlay networks and fundamental methods for peer-to-peer systems. Weekly assignments. Prerequisite: 600.226; 600.344/444 recommended. [Analysis] Students receive credit for 600.348 or 600.448, but not both.

CANCELLED
Shaf 101

600.449 (E)

INTERNET PROTOCOLS (3) Terzis

This course covers the most important Internet protocols in detail. The goal is to get a solid technical understanding of the Internet's foundations and a concrete example of complete network protocol family. The course material will be taken from the textbook but the students will also be required to read the actual protocol specifications (RFCs). A major part of this course is the two group projects where students are going to implement realistic network protocols. In addition to the projects, there will be homework assignments, a midterm and a final. [Systems]

Prerequisites: 600.120 and 600.344/600.444. 600.211 (or 600.111) is recommended but not required. Students may receive credit for 600.349 or 600.449, but not both.

ThF 2:30-3:45
CS grads only (ugrads by permission)
Shaf 304

600.461 (E,Q)

COMPUTER VISION (3) Hager

Prereq: 600.226

ThF 9-10:15
Shaf 303

600.463 (E,Q)

ALGORITHMS I (3) Awerbuch

Prereq: 600.226 or Perm. req'd. Students may receive credit for 600.363 or 600.463, but not both.

MTW 9
Shaf 303

600.465 (E)

CANCELLED

NATURAL LANGUAGE PROCESSING (3) Eisner

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.

cancelled
(was MTW 2)
limit 30 + grads
Shaf 300

600.491 (E)

COMPUTER SCIENCE WORKSHOP I

Perm. of faculty supervisor req'd.

See below for faculty section numbers

600.501

INDEPENDENT STUDY (Freshman, Sophomore)

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. Permission required.
See below for faculty section numbers

600.503

INDEPENDENT STUDY (Junior, Senior)

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. Permission required.
See below for faculty section numbers

600.507

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. Permission required.
See below for faculty section numbers

600.509

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. Permission required.
See below for faculty section numbers

600.519

SENIOR HONORS THESIS (3)

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 publically before April 1st of senior year. They will also submit a first draft of their project report (thesis document) 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 junior year and permission of faculty supervisor.
See below for faculty section numbers

600.546 (E)

SENIOR THESIS IN COMPUTER INTEGRATED SURGERY (3)

Prereq: 600.445 or perm req'd.

Section 1: Taylor

600.601

COMPUTER SCIENCE SEMINAR

Required for all full-time graduate students.

ThF 10:30-12
Shaf 3

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: any 600.4xx course in computer security or cryptography including 600.442, 600.443 or 600.424; or permission of instructor.

ThF 2:30-3:45
limit 30
Wyman 407

600.659

NEW COURSE!

SEMINAR ON 3D MODEL RECONSTRUCTION Kazhdan

This seminar will survery a variety of classical and recent techniques for the reconstruction of 3D models. The course will be decomposed into three separate parts: (1) reconstruction of models using computational-geometry-based techniques, (2) reconstruction of models using surface fitting approaches, and (3) reconstruction of models using implicit function fitting. Students will be expected to present two or three papers throughout the semester and will also need to complete two projects. The first project will be an implementation project, focused on exposing students to some of the technical challenges of reconstruction by having them implement an existing method. The second project will be a research project, motivating students to think about new methods for surface reconstruction. [Applications or Analysis]

Prereq: any 600.4xx course in computer graphics & linear algebra; or permission of instructor.

MT 2-3:15
NEB 317

600.726

SEMINAR IN PROGRAMMING LANGUAGES Smith

This seminar course covers recent developments in the foundations of programming language design and implementation. Topics covered vary from year to year. Students will present papers orally.

Prereq: permission of instructor

W 11-12
NEB 317

600.743
cancelled

SEMINAR IN SYSTEMS Terzis/Burns

Weekly discussion based on current topics in the broad systems area. The goal of this effort is to expose all of us to current research and to foster greater communication and cooperation among the different groups doing research in the systems area here at Hopkins. Each student is responsible for reading the papers and participating in the discussion. Furthermore, every week one student will be responsible for creating a short presentation about the paper and leading the discussion.
Pre-req: permission of instructor.

cancelled
NEB 317

600.745

NEW COURSE

SEMINAR IN COMPUTER INTEGRATED SURGERY Fichtinger

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
MD 110

600.757

SEMINAR IN COMPUTER GRAPHICS 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. Permission required.

TBA
tba

600.765

SEMINAR IN NATURAL LANGUAGE PROCESSING 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. Pass/Fail only.

Th 4
NEB 317

600.771
CANCELLED

SEMINAR IN THEORY Scheideler

This seminar course reviews current research in theoretical computer science. Students will read, present and discuss papers in weekly meetings. Pre-req: permission of instructor.

CANCELLED
NEB 317

600.801

DISSERTATION RESEARCH

See below for faculty section numbers.

600.803

GRADUATE RESEARCH

Independent research for masters or pre-dissertation PhD students. Permission required.
See below for faculty section numbers.

600.809

INDEPENDENT STUDY (graduate students)

Permission required.

See below for faculty section numbers.

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

01 - Masson
02 - Kosaraju
03 - Awerbuch
04 - Taylor
05 - Smith
06 - Goodrich
07 - Brill
08 - Salzberg
09 - Hager
10 - Wolff
11 - Kumar
12 - Amir
13 - Yarowsky
14 - Cohen
15 - Burns
16 - Eisner
17 - Shapiro
18 - Scheideler
19 - Stanton
20 - Ateniese
21 - Rubin
22 - Monrose
23 - Terzis
24 - Scheinerman
25 - Winslow
26 - Kazhdan
27 - Jelinek













































spacerSearchContact UsIntegrity CodeAcademics FAQLibrary ResourcesJob Center