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

Course Catalog: Combined Courses

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.

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.

1 credit

 

600.408 (E, Q) Empirical Research Methods in CS

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. Prerequisites: 600.120 and 600.226, or equivalent knowledge. Short course.

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.

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, 600.120. [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. [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 Software Engineering

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.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) 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

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. Prerequisites: 600.226. Freshmen/Sophomores by permission only. [Analysis]

Smith 3 credits spring

 

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 4 credits fall/summer

 

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: 600.120 and 600.226. [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.439 Microkernel Architecture and Design

This course examines operating system internals by using an existing, high-performance microkernel as a guide. We start from the moment the machine is powered on and look at each action that the microkernel takes as it starts up. We follow this path until we have worked our way through the first interprocess communication, and then look at how drivers and system structure is initialized. As we work our way through the microkernel's initialization and startup, we examine what is happening at each step, what options exist for the design at that point, and why the particular choice of the actual implementation was made. We will also look at architectural tradeoffs in the design of the operating system. Prereq: Thorough knowledge of C and UNIX, 600.333/433 & 600.318/418. [Systems]

Shapiro 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: 600.120, 600.226 and linear algebra 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.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

[Replaced by 600.450 starting Fall 2007.] 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 is recommended but not required. [Systems]

Terzis 3 credits fall

 

600.450 (E) Network Embedded Systems and Sensor Networks

This course is an introduction to fundamental concepts of networked embedded systems and wireless sensor networks. It is intended for juniors, seniors and first year graduate students in Computer Science and other engineering majors with the prerequisite background. Covered topics include: embedded systems programming concepts, low power and power aware design, radio technologies, communication protocols for ubiquitous computing systems, and some of the mathematical foundation of sensor behavior. Laboratory work consists of a set of programming assignments that consider a set of the issues described in class. Prerequisites: 600.226, 600.120, and 600.344. [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.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

Similar material as 600.361, covered in more depth. Intended for upper-level undergraduates and graduate students. Students may receive credit for 600.361 or 600.461, but not both. 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) Theory of Computation

This is a graduate-level course studying the theoretical foundations of computer science. Topics covered will be models of computation from automata to Turing machines, computability, complexity theory, randomized algorithms, inapproximability, interactive proof systems and probabilistically checkable proofs.Prerequisite: 600.271 or permission. [Analysis]

Hohenberger 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.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.493 (E) Robocup I

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 when offered].

Hager 1 credit spring

 

600.494 (E) Robocup II

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

Hager 1 credit spring

 

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.

 








spacerSearchContact UsIntegrity CodeAcademics FAQLibrary ResourcesJob Center