Logistics
-
This website is the course homepage. The syllabus, schedule, lecture notes (the coursebook), and links to other important resources will be posted here. Please bookmark it.
-
We also have a Canvas course. You will use Canvas to access Gradescope, any university-managed course resources posted there, and the initial announcement containing the invitation to Courselore.
-
We use Courselore for questions, discussion, and course announcements. The invitation link will be sent through an initial announcement on Canvas. From that point onward, all course announcements will be posted on Courselore. Create a free account if necessary, and bookmark the course page after joining. Check Courselore regularly or enable email notifications; you are responsible for keeping up with the announcements and information posted there. The discussion board is always open: post questions there at any time, and I, a TA, or a classmate will respond.
-
My office hours are Thursdays, 1:30 – 2:30 PM, in Malone Hall, Room 227. For TA office hours, please visit this link.
-
Lectures are held in person; see the Schedule for section times and room. Bring your own laptop to every lecture. In-class exercises are completed through TeachingFlow, a web application that runs in your browser and requires no installation. You must sign in with a GitHub account. If you do not already have one, create one before the first lecture. At the start of each lecture, you will receive a session code for joining that lecture’s TeachingFlow session. TeachingFlow supports interactive presentations; think of it as a cross between a slide deck and a worksheet.
-
Exams are taken on your computer through ExamFlow, a secure web application similar to TeachingFlow. You must sign in with your GitHub account. At the start of each exam, you will receive a session code for joining that exam’s ExamFlow session. See the Exams page for more information about exam logistics and proctoring.
-
You will write code in Java for this course. Please install a Java Development Kit (JDK), version 17 or newer — any recent version is fine. A good free option is Eclipse Temurin (Adoptium), which provides prebuilt JDKs for Windows, macOS, and Linux for free.
-
You may use any editor or IDE you like. I recommend IntelliJ IDEA Community Edition, which is free and well suited to Java development. I also recommend two plugins: the jGRASP Plugin for IntelliJ and Java Visualizer. Both are helpful for visualizing data structures, especially when running a program in debug mode. I recommend that you do not use AI assistants when coding for this course, or at the very least, that you disable their code completion. You must write code for the exams, and there is no code completion there, so practicing without it now will serve you better on exam day. Concretely, in IntelliJ:
- Remove or disable the built-in AI Assistant plugin.
- Disable
Enable automatic completion on typingunder Settings | Editor | General | Inline Completion.
-
We use Gradescope to collect homework submissions and to grade and provide feedback on both homework and exams. Exams are submitted through ExamFlow and uploaded to Gradescope by the course staff afterward. Access Gradescope through Canvas; because it is linked to the Canvas course, you have access automatically through your Hopkins account.
Data retention and privacy
- Canvas is provided through Hopkins, and its use is governed by Hopkins policies.
- Gradescope, Courselore, and GitHub are third-party services, and data you provide to them are subject to their respective privacy policies. GitHub is used to authenticate you in TeachingFlow and ExamFlow.
- Data stored in TeachingFlow and ExamFlow are used only to provide course instruction and conduct examinations. They are not used for research or any other purpose.
- TeachingFlow and ExamFlow are operated by me. Their application data are stored using Convex, a cloud database service that encrypts data at rest and in transit. The following retention practices apply:
- In addition to your course work and session activity, the apps store the email address and GitHub username associated with your sign-in. I may also ask you to add your JHU email address to your profile so that I can match your account to the course roster.
- Your TeachingFlow work is stored throughout the semester, and you can review every session you attended. After the semester ends, this work is exported to Gradescope to preserve a record and calculate your participation score, then deleted from TeachingFlow.
- Your ExamFlow work and exam-session activity are stored for one hour after the exam ends. During that period, they are exported to Gradescope for grading and feedback, then deleted from ExamFlow.
- Your TeachingFlow and ExamFlow user accounts are deleted after the semester ends.