

All room numbers except those listed in () have been confirmed.
|
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 15 per section. |
MTW 11 |
|
600.102 (E) CANCELLED |
CS FOUNDATIONS (4) Froehlich This course is an introduction to computer science for majors, minors 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. This course replaces 600.103 Intro to CS and 600.113 Internet. Prereq: 600.101 or equiv. knowledge. Limit 15 per section. [More sections will be added if needed.] |
CANCELLED (was MTW 1)
sections in Shaf 1 |
|
600.106 (E) COURSE ADDED |
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 2/6-3/1.Satisfactory/Unsatisfactory only. |
4 weeks 2/6-3/1 |
|
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 |
|
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:30-8:30p, MD 226 Sec 2: Th 4-7p, NEB 225 Sec 3: CANCELLED (was Fr 9a-12, Shaf 1) limit 12/section |
|
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 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. |
MTW 1 Shaf 1 limit 25/section Sec 1: Th 12 Sec 2: F 1 |
|
600.226 (E,Q) |
DATA STRUCTURES (3) Froehlich
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.
|
ThFr 9-10:15 |
|
600.318 (E) |
OPERATING SYSTEMS (4) Shapiro
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]
|
MTW 10 |
|
600.319 (E) |
STORAGE SYSTEMS (3) Burns Storage systems is one of the fastest growing and most interesting research areas in computer science. Storage systems often dominate the performance of computer systems as a whole. Also, they are responsible for the safe-keeping of an organization's most valuable assets -- information! The course will cover the design and implementation of storage systems and the architecture and characteristics of the components on which storage systems are built. Topics wil range from the device level up to distributed systems concepts. This will include disk drive hardware and firmware, file system and database structures, mirroring and RAID, disk array controllers, local storage interconnects, storage area networks, capacity planning and configuration, distributed file systems and network-attached storage, backup/restore and disaster recovery, and security for storage. [Systems]Prereq: 600.226 and 600.333/433. Students may receive credit for 600.319 or 600.419, but not both. |
MTW 1 |
|
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] |
MTW 2 |
|
600.328 (E) |
COMPILERS (3) Froehlich
Introduction to compiler design, including lexical analysis, parsing,
syntax-directed translation, symbol tables, run-time environments, and code generation and optimization.
Students are required to write a compiler as a course project. [Systems]
|
MTW 3 |
|
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] |
ThFr 4-5:15 |
|
600.336 (E) |
ALGORITHMS FOR SENSOR-BASED ROBOTICS (3) Hager
This is an introductory course presenting a series of algorithms related to the representation
and use of geometric models acquired from sensor data. Course topics include: basic sensing
and estimation techniques, geometric model representations, and motion planning algorithms.
The course will also discuss applications in diverse areas such as mobile systems, robot
manipulation, and medicine. [Analysis] |
ThFr 9-10:15 |
|
600.341 (E,Q) NEW COURSE! |
BASICS OF APPLIED CRYPTOGRAPHY (3) Ateniese
This course is an introduction to algorithms, cryptography and network security,
meant to give students a good foundation for upper level courses in the area. Students will learn
how to implement a simple cryptographic library in C. [Analysis]
|
ThFr 2:30-3:45 |
|
600.344 (E) |
COMPUTER NETWORK FUNDAMENTALS (3) Masson 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] |
MTW 11 |
|
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] |
MTW 11 |
|
600.392 (E) NEW COURSE! |
SENIOR DESIGN PROJECT (3) Froehlich
This course will give senior CS majors an intensive capstone design project experience. Students
will work in groups with real world customers to develop a working system. Project design,
management and communication skills will be emphasized. Software development methodologies may also
be presented. [General]
|
MTW 4 |
|
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.
|
MW 4-5:15 |
|
600.418 (E) |
OPERATING SYSTEMS (3) Shapiro Graduate level version of 600.318. [Systems]Prereq: 600.226, and 600.333. Students may receive credit for 600.318 or 600.418, but not both. |
MTW 10 |
|
600.419 (E) |
STORAGE SYSTEMS (3) Burns Graduate level version of 600.319. [Systems]Prereq: 600.226 and 600.333/433. Students may receive credit for 600.319 or 600.419, but not both. |
MTW 1 |
|
600.425 (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] |
MTW 2 |
|
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] |
ThF 1-2:15 |
|
600.435 (E) |
ARTIFICIAL INTELLIGENCE (3) Sheppard
Graduate level version of 600.335 (see description above). [Applications] |
ThFr 4-5:15 |
|
600.443 (E) |
SECURITY AND PRIVACY IN
COMPUTING (3) Rubin
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. [Applications] (was Systems
previously) |
ThF 2:30-3:45 |
|
600.444 (E) |
COMPUTER NETWORKS (3) Masson Graduate level version of 600.344. [Systems] |
MTW 11 |
|
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]
|
ThF 1-2:15 |
|
600.452 (E) |
COMPUTER INTEGRATED SURGERY
SEMINAR (1)
Taylor Lecture only version of 600.446 (no
project). |
ThF 1-2:15 |
|
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. |
MTW 11 |
|
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] |
MTW 2 |
|
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.
|
ThF 2:30-3:45 |
|
600.492 (E) |
COMPUTER SCIENCE WORKSHOP II Staff
Permission of faculty sponsor is required. See below for faculty section numbers. |
|
600.493 |
ROBOCUP I (1) This course allows students to participate in the development of a robot soccer team. Students will work with a development team to improve some aspect of the team infrastructure, sensing, world modeling, or strategy components.Prerequisites: 600.226, calculus, probability and statistics; co-req: 600.336 |
T 4-5:45 Shaf 303 |
600.494 |
ROBOCUP II (2) This course is for students who wish to manage a development team for robot soccer. Students will create and manage software projects related to robot soccer.Prerequisites: 600.493 or permission |
T 4-5:45 Shaf 303 |
|
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 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 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. |
ThF 10:30-12 |
|
600.624 |
ADVANCED TOPICS IN NETWORK SECURITY (3) Monrose This course focuses on selected research topics in communications security. Topics include protocol analysis, security in routing protocols, broadcast authentication protocols, covert channels and anonymous communication, key management, advanced traceback schemes, attack propagation modeling, among others. Discussions will be lead by the Professor and students. Students will complete a series of programming assignments, and a course project is required. [Systems]Prerequisite: 600.324/424, 600.442 or instructor permission. |
ThFr 1-2:15 |
|
600.646 |
COMPUTER INTEGRATED SURGERY
II (3)
Taylor Advanced version of 600.446. [Applications] |
ThF 1-2:15 |
|
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.
The class will be composed of three parts. In the first part, several different lecturers (including guests from outside of JHU) will provide an introduction to the field. The second part will be structured as a research seminar consisting of class discussions of research papers. The third part of the class will consist of a large programming project where students break into teams and develop mobile applications. It is strongly recommended that students have previously completed Object Oriented Systems, Distributed Systems, and Networking classes. The applications will involve Linux programming, network programming, and a user interface.
[Systems or Analysis] |
MTW 10 |
|
600.649 (E) |
SENSOR NETWORKS (3) Terzis Embedded network systems, including sensor networks, distributed control applications, and ubiquitous computing environments, are becoming an important new computing class with wide ranging and novel applications. They present a range of computer systems challenges because they are closely coupled to the physical world with all its unpredictable variation, noise, and asynchrony; they involve many energy-constrained, resource-limited devices operating in concert; they must be largely self-organizing and self-maintaining; and they must be robust despite significant noise, loss, and failure. This area has reached a stage where solid initial platforms have been developed, a number of 'leading applications' have been fielded, and a rich body of literature has emerged. This course will be reading/project/discussion focused, with a goal of covering the area is substantial depth. Topics include application-driven network architectures, emerging platforms and technology, resource constrained real-time OSs, media access control, distributed algorithms (broadcast, anycast, multicast, convergecast) in lossy wireless networks, ad hoc multihop routing, pseudo-geographic routing, in-network aggregation and processing, multi-resolution storage, compression and source-coding, time synchronization, coverage and density, ranging and localization, resilient aggregators, tracking, capacity, distributed feature extraction, tracking, and collaborative signal processing. We will also look at emerging standards, such as ZIGBEE. It will require substantial reading and class participation, a sequence of group mini-studies, and a research project. [Systems]Prerequisite: 600.349/449 or instructor permission. |
MTW 1 |
|
600.664 |
RANDOMIZED ALGORITHMS (3) Kosaraju
Graduate level version of 600.464. [Analysis] |
MTW 2 |
|
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. |
ThF 9:00-10:15 |
|
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. |
W 11-12 |
|
600.745 |
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 |
|
600.746 |
MEDICAL IMAGE ANALYSIS SEMINAR (1) Taylor & Prince & Hager
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. Cross-listed in ECE. |
T 2-3:30 |
|
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.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. |
Th 4 |
|
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. |
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 28 - Froehlich 29 - Szalay