| source Johns Hopkins University (X) |
level Lower Level Undergraduate (15) Upper Level Undergraduate (13) Graduate (1) |
department Computer Science (X) |
Grading will be S/U. This biweekly seminar will cover a broad range of current research topics in human language technology, including automatic speech recognition, natural language processing and machine translation. The Tuesday seminars will feature distinguished invited speakers, while the Friday seminars will be given by participating students. A minimum of 75% attendance and active participation will be required to earn a passing grade. Co-listed with 600.604
Score: 8.04472 Details | Listing | Web page
An intermediate biomedical imaging course covering modern biomedical imaging instrumentation and techniques as applied to diagnostic radiology and other biomedical applications. It includes recent advances in various biomedical imaging modalities, multi-modality imaging and molecular imaging. The course is team taught by experts in the respective fields and provides a broad based knowledge of modern biomedical imaging to prepare students for graduate studies and research in biomedical imaging. Also, the course will offer tours and practical experience with modern biomedical imaging equipment in clinical and research settings. Prereq; EN.520.432 or EN.580.472
Score: 8.04472 Details | Listing | Web page
Non-CS majors only. Intended audience: students considering a major in science, engineering or medicine. This course will teach a principled introduction to the theory and practical use of a broad spectrum of computational tools and technologies. Examples include statistical analysis packages, symbolic computation (LISP), data mining and visualization, Unix, language processing, web programming and cloud computing.
Score: 8.04472 Details | Listing | Web page
Computer Science majors only Note: Meets every other week. 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.
Score: 8.04472 Details | Listing | Web page
Prereq: familiarity with computers 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.
Score: 8.04472 Details | Listing | Web page
Coreq: 600.107 Satisfactory/Unsatisfactory only 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.
Score: 8.04472 Details | Listing | Web page
Coreq: 600.107 Satisfactory/Unsatisfactory only 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.
Score: 8.04472 Details | Listing | Web page
Coreq: 600.107 Satisfactory/Unsatisfactory only 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.
Score: 8.04472 Details | Listing | Web page
Prereq: AP CS, 600.107 or 600.226. This course covers intermediate to advanced programming in both C and C++. The focus of the course is on programming techniques and implementations. Students are expected to learn syntax and low-level language features independently. Coursework involves significant programming projects in both languages.
Score: 8.04472 Details | Listing | Web page
Prereq: AP CS, 600.107 or 600.226. This course covers intermediate to advanced programming in both C and C++. The focus of the course is on programming techniques and implementations. Students are expected to learn syntax and low-level language features independently. Coursework involves significant programming projects in both languages.
Score: 8.04472 Details | Listing | Web page
Prereq: AP CS, 600.107 or 600.120 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.
Score: 8.04472 Details | Listing | Web page
Prereq: sophomores and above, permission of instructor; Co-req: 600.256. A broad survey course in video game design (as opposed to mathematical game theory), covering artistic, technical, as well as sociological aspects of video games. Students will learn about the history of video games, archetypal game styles, computer graphics and programming, user interface and interaction design, graphical design, spatial and object design, character animation, basic game physics, plot and character development, as well as psychological and sociological impact of games. Students will design and implement an experimental video game in interdisciplinary teams of 3-4 students as part of a semester-long project. Section 1 requires technical skills, including at least one programming course (preferably 2 or more). Section 2 requires artistic skills, including at least one multimedia course (preferably 2 or more).
Score: 8.04472 Details | Listing | Web page
Prereq: sophomores and above, permission of instructor; Co-req: 600.256. A broad survey course in video game design (as opposed to mathematical game theory), covering artistic, technical, as well as sociological aspects of video games. Students will learn about the history of video games, archetypal game styles, computer graphics and programming, user interface and interaction design, graphical design, spatial and object design, character animation, basic game physics, plot and character development, as well as psychological and sociological impact of games. Students will design and implement an experimental video game in interdisciplinary teams of 3-4 students as part of a semester-long project. Section 1 requires technical skills, including at least one programming course (preferably 2 or more). Section 2 requires artistic skills, including at least one multimedia course (preferably 2 or more).
Score: 8.04472 Details | Listing | Web page
Co-req: 600.255. A lab course in support of 600.255: Introduction to Video Game Design covering a variety of multi-media techniques and applications from image processing, through sound design, to 3D modeling and animation. See 600.255: Introduction to Video Game Design for details about enrolling. Unlike in 600.255, the sections for the lab are meant to have a cross-section of students from different backgrounds. Ideally students working on a team project will be enrolled in the same lab section.
Score: 8.04472 Details | Listing | Web page
Co-req: 600.255. A lab course in support of 600.255: Introduction to Video Game Design covering a variety of multi-media techniques and applications from image processing, through sound design, to 3D modeling and animation. See 600.255: Introduction to Video Game Design for details about enrolling. Unlike in 600.255, the sections for the lab are meant to have a cross-section of students from different backgrounds. Ideally students working on a team project will be enrolled in the same lab section.
Score: 8.04472 Details | Listing | Web page
Co-req: 600.255. A lab course in support of 600.255: Introduction to Video Game Design covering a variety of multi-media techniques and applications from image processing, through sound design, to 3D modeling and animation. See 600.255: Introduction to Video Game Design for details about enrolling. Unlike in 600.255, the sections for the lab are meant to have a cross-section of students from different backgrounds. Ideally students working on a team project will be enrolled in the same lab section.
Score: 8.04472 Details | Listing | Web page
Co-req: 600.255. A lab course in support of 600.255: Introduction to Video Game Design covering a variety of multi-media techniques and applications from image processing, through sound design, to 3D modeling and animation. See 600.255: Introduction to Video Game Design for details about enrolling. Unlike in 600.255, the sections for the lab are meant to have a cross-section of students from different backgrounds. Ideally students working on a team project will be enrolled in the same lab section.
Score: 8.04472 Details | Listing | Web page
Prereq: 600.120, 600.226, and 600.333. 600.211 Recommended. Students may receive credit for 600.318 or 600.418, but not both. 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] .
Score: 8.04472 Details | Listing | Web page
Prereq: 600.226, 600.271, Calc II. Students can only receive credit for 600.325 or 600.425, not both. 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]
Score: 8.04472 Details | Listing | Web page
Prereq: 600.226, 550.171; Recommended: linear algebra, prob/stat 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]
Score: 8.04472 Details | Listing | Web page
Prereq: 600.226, calculus, prob/stat. Students may receive credit for 600.336 or 600.436, but not both. 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]
Score: 8.04472 Details | Listing | Web page
Prereq: 600.333 or 600.433 or permission. Students can only receive credit for 600.344 or 600.444, not both. This course considers intersystem 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]
Score: 8.04472 Details | Listing | Web page
Prereq: 600.120 (C++) and 600.226, linear algebra. Permission of instructor is required for students not satisfying a pre-requisite. 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]
Score: 8.04472 Details | Listing | Web page
Prereq: 600.226 or Perm. Req'd. Students may receive credit for 600.363 or 600.463, but not both. This course concentrates on the design of algorithms and the rigorous analysis of their efficiency. topics include the basic definitions of algorithmic complexity (worst case, average case); basic tools such as dynamic programming, sorting, searching, and selection; advanced data structures and their applications (such as union-find); graph algorithms and searching techniques such as minimum spanning trees, depth-first search, shortest paths, design of online algorithms and competitive analysis.
Score: 8.04472 Details | Listing | Web page
Prereq: 600.120, 600.226; 600.321 recommended. Senior CS majors only. 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]
Score: 8.04472 Details | Listing | Web page