605.681.81 - Principles of Enterprise Web Development

Computer Science
Spring 2024

Description

This course examines fundamental aspects of Enterprise Web Development including client, middleware and databases as a foundation for follow on courses. It introduces the student to client side development using HTML 5, CSS and JavaScript. After a brief review of Object Oriented Programming in Java, Swing is used to introduce common user interface design patterns. Network protocols and multithreading concepts using Java transition into server-side technologies like Servlets, JavaserverPages and ReST. Java database development with JDBC and web security are also introduced during the semester. While the class covers development using build tools (Maven), basic IDEs are utilized to facilitate the teaching of concepts and demonstration through examples. Prerequisite(s): EN.605.202 Data Structures.

Expanded Course Description

This course examines major topics in the development of applications for the World Wide Web and covers foundation concepts for Enterprise Web Development. While it assumes little to no prior experience with web development, it expects a reasonable background in Java and Object Oriented Programming. Follow on courses are available to explore many of the modules we cover in much more detail. A summary of topics touched upon in this course (not necessarily in the order they will be introduced) includes:

  1. Web site development using HTML 5, CSS and JavaScript.
  2. Implementation of desktop applications using the Java programming language, including user interface development, asynchronous event handling, multi-threaded programming that will lead us into network programming. It also introduces distributed database access via JDBC.
  3. The design and implementation of server-side web applications, for which students will examine the underlying Web protocol (HTTP), the development of client-side interfaces (e.g., via HTML forms, JavaScript), and the implementation of server-side programs (e.g., via Java servlets, JavaServer Pages, RESTful Web Services).

We cover Java in this course for several good reasons.

  1. It is ubiquitous in the Web Application field.
  2. It is a very flexible language, which allows us to cover a lot of material without having to learn a new language each time.
  3. Most of your follow on courses are taught in Java as well.

However, despite the rationale above, Java is not the "end-all". There are many other languages and web development solutions out there. In many cases, solutions developed using other languages may work just as well and still follow the same protocols and patterns with different programming syntax and interfaces.

Prerequisites

Experience with Java/C/C++/Pascal/C# Prerequisites

I expect all students to have experience programming and to understand the basics of software design, debugging and data structures. I am also assuming a reasonable familiarity with Java, though we do review basic language concepts during the first few weeks. If you have not worked with Java recently, or need to brush up, it is expected that you are proficient quickly (by the third week). I also do not assume that you know much about HTML, HTTP, Servlets or JavaServer Pages. If your not strong with Java, or it has been many years since you have used it, you will want to carefully review the chapters that introduce basic Java syntax and object-oriented programming. In addition, you can expect to spend significantly more time and effort on the class assignments. I also assume you can use a Web browser, have a basic understanding of SSH and SFTP and can use tools that connect to the class server using those protocols.

It is not uncommon for some students taking this course to already be familiar with many of the topics covered. While this may mean that some of this material is a bit "basic" for some of you, there are other students who are not as experienced with Java, HTML, etc, so please be patient, and use your knowledge to help each other with any questions and issues using the class discussion forums. It is a good way to satisfy your forum participation while providing additional resources for those looking for assistance.

I would like to stress that basic Java programming skills ARE a prerequisite for this class. If you don't have the necessary Java background, you will only have a short time to quickly acquire the necessary skills to be proficient with Java for the class. Basic Java and Object Oriented Programming skills are refreshed quickly during the first few weeks of the class. However, the assignments used during that refresh are not trivial. If you find yourself struggling with those assignments in weeks 2 and/or 3 you should reconsider whether you have the appropriate background to succeed in the class as the complexity of the assignments just increase significantly as the class progresses. Students who find the course too challenging within the first few weeks should STRONGLY consider withdrawing and taking the basic Java programming course as a prerequisite before taking this course.

Instructor

Profile photo of Richard Spiegel.

Richard Spiegel

rspiege2@jhu.edu

Course Structure

The course materials are divided into modules which can be accessed by clicking Modules on the course menu.  A module will have several sections including the overview, content, readings, discussions, and assignments. You are encouraged to preview all sections of the module before starting. Most modules run for a period of seven (7) days, exceptions are noted in the Course Outline. You should regularly check the Calendar and Announcements for assignment due dates.  Each module will run from Saturday through Friday during the semester, with assignments and discussion participation deadlines being Friday evenings at 1159PM EST.  You can jump directly to the course content page at this link.

Course Topics

Course Goals

When you have completed the course, you will be able to

  1. Design and create a basic HTML that uses the following:
    1. Basic HTML 5 tags
    2. Tables
    3. Cascading Style Sheets
  2. Validate an HTML page for proper format.
  3. Design and code a Java application that can include the following technologies (Please note that these concepts apply to many modern environments, so this will be more beneficial than you might believe).
    1. Frames
    2. Basic Swing Components
    3. Event Handling
    4. Exceptions
  4. Be able to describe and use Object Oriented programming methods, including inheritance and interfaces:
    1. Compare the advantages between classes and interfaces
  5. Design and code a simple GUI application.
  6. Have a basic understanding of JUnit and how it is used.
  7. Be able to describe and use basic multi-threading in Java.
  8. Understand the user of Java I/O and design a simple client/server application.
  9. Design and code a simple Servlet.
  10. Design and code a simple JSP Page.
  11. Design and code a simple Java REST service application.
  12. Be able to use Java to pass serialized JSON data between clients and servers.
  13. Describe and use JDBC for database access.
  14. Be able to compare and contrast different programming methods related to Principles of Enterprise Web Development.
  15. Understand the fundamentals of creating and building projects using Maven.

Textbooks

There are no required textbooks for this class. However, there are numerous free books and resources available on the internet. While many may be somewhat dated, they still provide a good reference and foundation for material presented in the class. Also did I mention that they were FREE? It is also my understanding that as JHU students, you have free access to books via Safari Books Online. I have provided a short list of text books that you may find helpful during the class and beyond.

Safari Books:HTML & XHTML The Definitive Guide, Chuck Musciano, and Bill Kennedy, O'Reilly, 6th Ed., 0-596-52732-2
FREE! Servlets and JavaServer Pages , Jayson Falkner and Kevin Jones, Addison Wesley, 2006. This is a free PDF download.
Optional ReadingThere is a great site with "Cheat Sheets" for several of the topics we cover in class. This seems to be very useful! http://sixrevisions.com/resources/cheat_sheets_web_developer
Optional ReadingAlso a great "cheat sheet" site is http://www.dzone.com. These are usually 6 page sheets with key syntax and examples for each topic (JDBC, Netbeans, Mysql, JSP, CSS, HTML, Core Java...the list goes on).


Since all books are optional, you may purchase them anywhere. (Amazon, Barnes and Nobels, or even from the Johns Hopkins bookstore at http://johns-hopkins.bncollege.com)

Other Materials & Online Resources

There are also many sites on the world wide web that provide very good tutorials and references that complement material covered in the class. Here is a short list of some that I have found to be informative and helpful:

HTML, CSS, JavaScript and more:w3schools.com
Standard Java:Oracle's Java Tutorial
Tutorials on Core and Enterprise JavaMkyong.com Tutorials
Tutorials on Everything in The Classtutorialspoint

Required Software

You will need the following hardware for the class:

Computer

You may use a Windows, Mac or Linux computer to do this class. However, if you use a Mac, you do so at your own risk as I don't have access to a Mac so I cant help troubleshoot if you have problems that are a result of the platform or operating system.

You will need the following software for the class:

Web Browser

Any common browser should work fine for the class. I typically use Chrome and/or Firefox, so when I look at the final assignment, this won't affect me.

Canvas

This is the tool that links to the class website, provides access to discussion forums and your grades and is where your homework submissions will be uploaded.

HTML Editor

You will need something to edit HTML. This can be something as simple as Wordpad/Emacs or a higher level product like NVU or WebStorm. Note that some provide community editions, while others are commercial and the free downloads are for trial versions only.

Most developer IDEs (Eclipse as referenced below) also provide good HTML editors.

Java Compiler

Okay, Oracle has made a mess with it's recent Java licensing and support. Since Java 17, Oracle has relented from it's previous licensing restrictions and again have a free license for both commercial and personal use. As a result, we have recently updated the class server to Oracle Java version 18. Since you will be deploying to that class server, it would be in your best interest to make sure your projects are built for that version, even if you are using a more recent version of Java.

Prior to the Oracle change, Any version of Java beyond 1.8 through 16 was available for personal use from Oracle, but it was not available for other purposes or redistribution in any way without paying the monthly licensing fees. As a result there are now two options for acquiring the Java Development Kit:

Java Editor

You will need something to edit Java source code. You can use anything you want as we aren't teaching "how to use" a tool, and I can give some advice on alternate development environments. For many years, this class used Netbeans, which was a well supported IDE. Once again, Oracle has sloughed off a product on Open Source, so Netbeans no longer has as much integration as it once did with Java. That being the case, Eclipse is used as the "default" demonstration and teaching IDE for the class and is strongly recommended.

Ultimately, you can use any editor/IDE you are comfortable with. However, if you don't use Eclipse, I can't promise you help with configuration or other issues for other IDEs that I may not be familiar with.

J2EE Environment

The class server currently is running Tomcat 8.5 as it's web server. As such you will also need to be using the Tomcat 8.5 web server for your local development. You don't need any special J2EE support, the standard Java SE environment you downloaded above will work fine. Tomcat versions 9 and 10 are available and support later versions of the Servlet and JSP APIs. However, the additional capability under those specifications is marginal (and beyond the scope of this class) but it does alter the package names of the API libraries, so we have maintained a stable Tomcat 8.5 on the class server and for teaching. Using Tomcat 9 or later will NOT work with the code as developed for the class material because of the package name changes so you MUST use Tomcat 8 for your local development for the class. Details for download and installation will be in the class notes later in the semester.

SSH Client

For command line access and related work on the class web server, you will need an SSH client (SSH supports secure-encrypted connections). SSH clients are included with Linux distributions. Please note that SSH connects to port 22 on the server. Putty is an excellent free Windows SSH client. You can get it from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. Another good SSH client is MobaXterm which includes a built in X11 server so you can actually bring up GUI based applications from the class web server if you wish. MobaXterm is available here.

SFTP Tool

While SSH will give you command line access to view and work in directories and editors on the class server, you will need another network protocol to physical move files between your local machines and the class server. In order to upload and download files from the class web server you will need an additional tool that uses SFTP (Secure File Transfer Protocol) or SCP (Secure Copy). A popular SFTP utility is FileZilla which can be found at http://filezilla-project.org/. FileZilla is a nice graphical, Drag and Drop, application that can run on Windows, Mac or Linux. This really does make uploading files much easier. Please note that when you connect to the class computer using FileZilla, you will need to use the SSH port, port 22. I strongly recommend setting the option on FileZilla to not store passwords. The default behavior is to store passwords, and unfortunately they are stored as cleartext files on your computer. This is a significant security vulnerability. Easiest workaround....Don't store the password.

Other good options for Windows users includes WinSCP, and MobaXterm

Zip Software

You will also need software for "zipping" and "unzipping" (compressing and un-compressing) files. Windows 7 and later and the Mac does have zip support built in or you can download applications that might be easier to work with. Here are instructions and suggestions for compression on both platforms:

  1. Rar format will not be supported in this class.
  2. For Windows - WinZip at http://www.winzip.com/.
  3. For Macintosh - Instructions for compression/decompression using zip on a Mac.

Zoom

You will be using Zoom, a web-based conferencing system, to participate in real time office hours. Training guides for Zoom is found here:

JHU School of Engineering Zoom Page

I will be using Zoom to provide Office Hours for the class.

Computer Account

Most of the development for your homework can be done locally on your own machine. Executables for most assignments will need to be uploaded to the class computer (see Course Resources for details). Note this is not the Canvas server where you will upload the source for your assignments.

Your login to the class computer will be your JHED ID, with the initial password L3tMeIn!. YOU MUST CHANGE THE PASSWORD after your initial login by typing the command "passwd". Remember, case matters! Additionally, after you change the password, you will be the only one who knows it (I won't know it). If you forget it I can reset it to the initial default above which you will have to change again. There will be a public_html directory in your home directory which tomcat will use to serve up a default web application.

For all projects, you must upload source material to the Canvas server for grading, and in most cases you will have to upload executable code to the class server.

Please note that the class server has no email server on it, thus you will not have email on the class machine. If asked to email (like in the first assignment) you will just send me an email from an account of your choice.

Student Coursework Requirements

Much of the material in this class is foundational. Having said that it is being taught at a Graduate level so the expectations on students may differ from what you are accustomed to from your Undergraduate experience. Here is a brief list of what I expect from you during the semester.

PLEASE MAKE SURE YOU READ THROUGH AND UNDERSTAND THESE EXPECTATIONS to avoid pitfalls during the semester.

Links to all of the class notes and homework assignments are available on the Course Content Page. You will see that each week's module is preceded by the starting date for the material (though you should feel free to address it earlier if you would like) and the due date for the homework. For most sections, these dates will begin on Saturday just after midnight and end an 11:59PM on the following Friday. It is during the period defined by those two dates when you are expected to complete the homework and satisfy the discussion posting requirement.

This course will consist of two basic student requirements, Homework and Discussion Forum Participation

Homework - VERY IMPORTANT YOU FOLLOW ALL PARAGRAPHS HERE

There will be a homework for each week's lecture that will be due at 1159PM on the Friday of the week it was assigned. Except for the final week of class homework may be turned in up until the following Tuesday. However, it will incur a 5% penalty PER DAY for each day late according to the following schedule:

Submission DeadlineStarting Grade Before Evaluation
Friday by 1159PM (Due Date)100%
Saturday by 1159PM (1 Day Late)95%
Sunday by 1159PM (2 Days Late)90%
Monday by 1159PM (3 Days Late)85%
Tuesday by 1159PM (4 Days Late)80%
After Wednesday at 1200PMNo longer accepted for grading

Homework will not be accepted after the Friday for the final assignment unless prior arrangements have been made with me. Even though you will be working on your own computer, all homework must eventually run on the class server (see Course Resources for where this computer is). One of the reasons I do this is to eliminate the "but it was running on my machine" explanation. If you see it running on the class computer, I'll see it running. Don't forget the important step of testing your submissions on the class computer as there are large penalties for it not running there.

When you upload your assignment to Canvas I expect a zipped package including your ENTIRE project. This facilitates my ability to reproduce and evaluate your code. Please DO NOT just submit your source files and overlook other files. In addition if you use an IDE like Netbeans (not class supported) or Eclipse (class supported) please upload the entire IDE project. If you don't use an IDE make sure your project is structured and includes any scripts you use to facilitate compilation, deployment, etc. If you fail to provide all necessary files (configuration, etc), even if they are not being graded, you will lose credit on the assignment.

Make sure your submission is zipped (please don't use other compression formats beside zip) and use the following naming convention for your submission:

lastname_firstinit_hw#.zip

So, my submission for homework 5 would be named as follows:

spiegel_r_hw5.zip

If there are other attachments beside your project (aka images, word/openoffice documents) please include them in the zip file at the top (same) level as the project submission.

Although it may sound like this naming convention is nitpicking. They are very straightforward and you WILL be penalized if you fail to follow them. I expect every submission to have the name pattern of last-name_first-initial_hw#. Again, if I was to submit assignment number 3 it would be submitted using the name spiegel_r_hw3. This naming convention is to be applied to the zip file you upload as well as the name of your overall project (if you use and IDE). When we start uploading web applications (aka java war files) I expect that your web application file follows the same convention as well.

Discussion Forum    

You will likely find that I put much more thought into my discussion forums that most instructors that you have had. In the past, I have followed the typical forum participation structure that required a fixed number of posts each week to get course credit, and I would give credit to just about anything that was posted to the forum regardless of the quality of content. As you may realize from your own experience, this format is not conducive to learning or even generating interesting conversation. As a result I have spent time developing a forum strategy to not only improve student participation but also make it more beneficial to the student. You will be graded on your contribution in terms of quality and not quantity. Each week there will be 3 points available for the discussion forum. Those three points will be allocated across the week long grading period with one point granted for participation during different time periods to ensure that there are relevant "conversations" throughout the week. Here is a breakdown of each week's schedule and the distribution of discussion credits:

Period StartPeriod EndExpectationPoints Awarded
Saturday 12AM ESTTuesday 1159PM ESTAn insightful post creating a NEW conversation in the forum.1 point
Wednesday 12AM ESTFriday 1159PM ESTAn insightful post either creating a NEW conversation in the forum or responding to an existing conversation.1 point

There is also a THIRD (3rd) post (original or response to another) that is required and can occur at anytime during the week's grading cycle. However, at the end of each week's discussion cycle you must have met the minimum three posting requirement AND you must have a post on at least THREE (3) distinct days during the grading cycle for the week.

I will typically post material to be read for the forums to stimulate open discussion. The topics will attempt to relate the lecture material to real world topics, advances and issues. Beside your initial post each week, you can start conversations or continue others as often as you wish and feel free to post beyond the minimum requirements. Your overall discussion grade at the end of the semester will account for 20% of your overall grade. Additionally, if you find yourself on a borderline between two grades at the end of the semester, one of the factors used to consider moving to the higher grade is your overall forum participation.

Beyond the minimum discussion requirements, each week's discussion area will also be where you should go to post insights and ideas about the lecture material as well as looking for assistance with issues you have with lectures or assignments. As a participant I will be there to provide feedback but am also interested in what other students might offer as well. Make sure that if you have questions on assignments/material that you post them in the appropriate week's discussion. I prefer to discuss issues there so that the entire class can get resulting feedback and insights from myself or others. I will typically also offer cited references from the internet for you to review and offer insights on. They may cover advanced technologies in software or just some articles that present more opinion based content on technologies and practices that get you to think and maybe get exposure to "other ways" of thinking as well. My overall goal is to make the discussion forums a part of the class that offers additional knowledge and insight and not just a place for you to meet a requirement for a grade.

As a last point with regard to the forums. I do read them daily and will address homework and lecture questions/issues in the forum within 24 hours (same turnaround as I do for email), but often more quickly. I will also jump in on the topic conversations from time to time, but that is dependent upon how busy I am with other class matters like grading, course maintenance, etc. Regardless of whether you see me post, do know that I DO review the forum material daily (at least).

One thing to be aware of. This is an online class and it will be up to you to ensure you have computer access throughout the semester. Having computer problems is not a valid excuse for falling behind in class. It is a very good idea to have some type of backup computer available "just in case".

Grading Policy

 

Homework

Timely feedback on students' performance is an established learning tool, so we will endeavor to grade and return all submitted material to you, as quickly as possible (typically within 48 hours of submission).
80% of your grade is based on your homework.

      Final grades are based on the following scale:

Letter GradeFinal Average
A+>=97
A>=93
A‐>=90
B+>=87
B>=83
B‐>=80
C+>=77
C>=73
C‐>=70
D+>=67
D>=63
F<63

Final averages will be determined by the following weighting:

ItemPercentage of Grade
Homework (1 assignment per week)80%
Discussion Participation20%

Course Policies

Academic Misconduct Policy

All students are required to read, know and comply with the Johns Hopkins University Krieger School of Arts and Sciences (KSAS) / Whiting School of Engineering (WSE) Procedures for Handling Allegations of Misconduct by Full-Time and Part-Time Graduate Students. This policy prohibits academic misconduct, including but not limited to the following: cheating or facilitating cheating; plagiarism; reuse of assignments; unauthorized collaboration; alteration of graded assignments; and unfair competition. You may request a paper copy of this policy at this by contacting jhep@jhu.edu.

Regarding Academic standards and this class, students are free to look in any textbook, public WWW page, Usenet Group, or communicate with anybody about any assignment. As in all courses, these sources MUST be cited if you use the code as is. However, if you look at a WWW page, and gain understanding about how to do the problem, and then do it yourself without "cutting and pasting" code from the site, then you do not need to cite the source. You can (and actually are encouraged to) use the online class discussion forum to gain understanding about how to do the problem, but you can't just "get the answer" from the forum and use it.

Copying of code from individuals, whether or not they are or ever have been students in this class, is not allowed without prior permission. If you have a question about how to use a source, ask it via email or the group Discussion forum.

Plagiarism

Plagiarism is defined as taking the words, ideas or thoughts of another and representing them as one's own. If you use the ideas of another, provide a complete citation in the source work; if you use the words of another, present the words in the correct quotation notation (indentation or enclosed in quotation marks, as appropriate) and include a complete citation to the source. See the course text for examples.

Policy on Disability Services

Johns Hopkins University (JHU) is committed to creating a welcoming and inclusive environment for students, faculty, staff and visitors with disabilities. The University does not discriminate on the basis of race, color, sex, religion, sexual orientation, national or ethnic origin, age, disability or veteran status in any student program or activity, or with regard to admission or employment. JHU works to ensure that students, employees and visitors with disabilities have equal access to university programs, facilities, technology and websites.

Under Section 504 of the Rehabilitation Act of 1973, the Americans with Disabilities Act (ADA) of 1990 and the ADA Amendments Act of 2008, a person is considered to have a disability if c (1) he or she has a physical or mental impairment that substantially limits one or more major life activities (such as hearing, seeing, speaking, breathing, performing manual tasks, walking, caring for oneself, learning, or concentrating); (2) has a record of having such an impairment; or (3) is regarded as having such an impairment class. The University provides reasonable and appropriate accommodations to students and employees with disabilities. In most cases, JHU will require documentation of the disability and the need for the specific requested accommodation.

The Disability Services program within the Office of Institutional Equity oversees the coordination of reasonable accommodations for students and employees with disabilities, and serves as the central point of contact for information on physical and programmatic access at the University. More information on this policy may be found at the Disability Services Website or by contacting (410)516-8075.

Disability Services

Johns Hopkins Engineering for Professionals is committed to providing reasonable and appropriate accommodations to students with disabilities.

Students requiring accommodations are encouraged to contact Disability Services at least four weeks before the start of the academic term or as soon as possible. Although requests can be made at any time, students should understand that there may be a delay of up to two weeks for implementation depending on the nature of the accommodations requested.

Requesting Accomodation

New students must submit a Disability Services Graduate Registration Form along with supporting documentation from a qualified diagnostician that:

Questions about disability resources and requests for accommodation at Johns Hopkins Engineering for Professionals should be directed to:

EP Disability Services
Phone: 410-516-2036
Fax: 410-516-8049
E-mail: ep-disability-svcs@jhu.edu



Academic Policies

Deadlines for Adding, Dropping and Withdrawing from Courses

Students may add a course up to one week after the start of the term for that particular course. Students may drop courses according to the drop deadlines outlined in the EP academic calendar (https://ep.jhu.edu/student-services/academic-calendar/). Between the 6th week of the class and prior to the final withdrawal deadline, a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and withdrew from the course.

Academic Misconduct Policy

All students are required to read, know, and comply with the Johns Hopkins University Krieger School of Arts and Sciences (KSAS) / Whiting School of Engineering (WSE) Procedures for Handling Allegations of Misconduct by Full-Time and Part-Time Graduate Students.

This policy prohibits academic misconduct, including but not limited to the following: cheating or facilitating cheating; plagiarism; reuse of assignments; unauthorized collaboration; alteration of graded assignments; and unfair competition. Course materials (old assignments, texts, or examinations, etc.) should not be shared unless authorized by the course instructor. Any questions related to this policy should be directed to EP’s academic integrity officer at ep-academic-integrity@jhu.edu.

Students with Disabilities - Accommodations and Accessibility

Johns Hopkins University values diversity and inclusion. We are committed to providing welcoming, equitable, and accessible educational experiences for all students. Students with disabilities (including those with psychological conditions, medical conditions and temporary disabilities) can request accommodations for this course by providing an Accommodation Letter issued by Student Disability Services (SDS). Please request accommodations for this course as early as possible to provide time for effective communication and arrangements.

For further information or to start the process of requesting accommodations, please contact Student Disability Services at Engineering for Professionals, ep-disability-svcs@jhu.edu.

Student Conduct Code

The fundamental purpose of the JHU regulation of student conduct is to promote and to protect the health, safety, welfare, property, and rights of all members of the University community as well as to promote the orderly operation of the University and to safeguard its property and facilities. As members of the University community, students accept certain responsibilities which support the educational mission and create an environment in which all students are afforded the same opportunity to succeed academically. 

For a full description of the code please visit the following website: https://studentaffairs.jhu.edu/policies-guidelines/student-code/

Classroom Climate

JHU is committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone has the right to be treated with dignity and respect. Fostering an inclusive climate is important. Research and experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. At no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity. 
 
If you have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to the course instructor directly. Reporting will never impact your course grade. You may also share concerns with your program chair, the Assistant Dean for Diversity and Inclusion, or the Office of Institutional Equity. In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).

Course Auditing

When a student enrolls in an EP course with “audit” status, the student must reach an understanding with the instructor as to what is required to earn the “audit.” If the student does not meet those expectations, the instructor must notify the EP Registration Team [EP-Registration@exchange.johnshopkins.edu] in order for the student to be retroactively dropped or withdrawn from the course (depending on when the "audit" was requested and in accordance with EP registration deadlines). All lecture content will remain accessible to auditing students, but access to all other course material is left to the discretion of the instructor.