FAQ

Waitlist

What are the chances that I will get off the waitlist?

I would say there is a decent chance the first 5-10 students on the waitlist get off it in the first 10 days.

What should I do while I'm on the waitlist?

If you are planning to join the course, you must follow the lectures and hand-in the coursework. You will not be given a grace period to "make up" any past work once you got off the waitlist.

Can I attend the lecture while on the waitlist?

Yes, however, please join the lectures on the Zoom meeting while you are on the waitlist. The space in the classroom is limited and reserved for the students enrolled in the course.

Can I join discussion board while on waitlist?

Yes, you are encouraged to do so!

Can I hand-in homework while on the waitlist?

Yes, please do! You can join Gradescope and submit your homework.

Can I view the recorded lectures while on waitlist?

Yes! Please make a private post on the discussion board and provide me with your JHED so I can give you access to the Panopto folder.

Logistics

I clicked on the link to Courselore but I'm not able to access the discussion board.

You need to sign up and enroll in the course by following the instruction posted to Logistics / Courselore.

I clicked on the link to Gradescope but I'm not able to access it.

You need to sign up and enroll in the course by following the instruction posted to Logistics / Gradescope.

What is the entry code for Gradescope?

Please find it at the bottom of the page Logistics / Gradescope.

I'm not able to access the Panopto shared folder.

Please make sure to access the folder for your section. See [Logistics / Panopto].

If you still have issues accessing the videos, log in to Blackboard and click on the Panopto Recordings link. This process will sync the access permissions.

Do I have to use IntelliJ? Can I use a different IDE?

All the coding exercises, assignments, and exams will be given to you as an IntelliJ project. The "happy path" is for you to work with IntelliJ. However, learning to work with IntelliJ is not a learning outcome of this course. You are free to use any IDE of your choice as long as you hand in a code that works with our AutoGrader.

If you are using other IDEs, please don't expect the teaching staff to assist you with issues such as not being able to open a project, work with the debugger, etc.

Do I have to install JDK 11 from AdoptOpenJDK? Can I use a different version already installed on my computer?

As with the answer to "using a different IDE," you may use a different JDK (a different version or provider), but you are at the risk of incompatibility with course material. All coding exercises are compiled with the designated JDK. Our AutoGrader on Gradescope is also using the designated JDK. If you use a different one and it works, then all is good. If not, you are responsible for any potential issue that may arise from this discrepancy.

Why do we have to book office hours?

Okay, let's turn this into a computing problem! Suppose you are a CA and you go in for your hybrid office hour when you learn seven people are waiting for in-person and another five waiting on Zoom. You are staying for an hour and there are already twelve people waiting. Do you give 5 minutes to each? Isn't that too short? Should you ask some to leave or wait for the next office hour instead? In that case, who should wait or leave, and who will be helped now? In what order do you help students? Do you answer all in-person ones and then go to Zoom? Or perhaps you go back and forth between in-person and Zoom? What about others who might drop in Malone 122 or join the Zoom during this hour?

Okay! Let's now scale this problem. You are a CA and you go in for your hybrid office hour. It's the day of a deadline and you got a dozen students waiting in person, and another two dozens in the Zoom, and more coming! Now, what?!!

Here is our solution to this conundrum! We ask you to book office hours in advance!

Let's look at this from the perspective of a student! It's the day of a deadline, and you have already been waiting for an hour in Zoom. You don't know how many people are ahead of you. Another 30 minutes pass by, and you give up. If students book office hours, we think this problem (and a few other ones) will be mitigated.

Booking helps with optimum use of resources too. In the absence of a booking system, some office hours will have a few (or no) visitors, whereas others (particularly those during favorable hours or close to deadlines) will have more than they can handle.

If you know of a solution better than a booking system, please let us know. We will appreciate it!

Practice

Where can I find resources for more practice, in particular coding exercise?

You should be able to get through this class without any difficulty by attending the lectures, reading the posted notes, and consulting the resources therein. In case you feel you need more practice, or if you are preparing for a technical (coding) interview, the following resources might be helpful!

There are a ton of exercises in the (optional) textbooks in the syllabus. You can alternatively pick any textbook on Data Structures and/or Algorithms and work through their exercises. The following books are specifically for coding exercises, the kind that you get asked during technical (coding) interviews for Software Engineering internships/jobs:

In addition, there are several websites and online platforms that contain coding exercises. The most famous one is https://leetcode.com/. And there are many other alternatives like:

Grading

Why do we go through the trouble of using specification grading?

The short answer is that "evidence" suggests it is an improvement over the traditional point-based grading.

In particular, it "makes expectations clear [and grading more consistent]," "reduces student stress," "reflects student learning outcomes [thus encourages students to focus on learning]," and "minimizes conflict between faculty and students [by disincentivizing "grade grubbing" conduct]." You can read Marcie Hall's blog post (Hall 2018) or refer to Linda Nilson's book (Nilson 2015) for a more elaborate answer.

Specifications ("specs") grading is an unorthodox but well-researched approach to student assessment. There is an entire conference (masterygrading.com) dedicated to it. This approach to grading has many flavors that go by other names, such as "equitable," "competency," "proficiency," "standards-based," "mastery," or "contract" grading.

There are other faculty at JHU who use specs grading. You can read about it in Amy Brusini's blog post (Brusini, 2019).

References:

Are exams/homework grades curved?

No, however, I will adjust the letter grade cutoff based on class performance to ensure it is consistent with historical performance data. Historically, the class average is between $B+$ and $A-$. This means about half the students get As and the others get Bs.

So, if e.g. the final was more difficult than intended, then it will reflect itself in class performance. In turn, adjusting the cutoffs will compensate for the unintended difficulty and normalize the grades.

Do I get partial credit for incomplete work?

Yes, and no!

For example, consider this specification: The AVLTreeMap correctly applies double rotations after removal.

You will not get partial credit if the removal implementation correctly applies left-right rotation but fails to apply right-left rotation! On the other hand, implementation of removal is broken into several specifications. Namely, there is another specification that indicates "The AVLTreeMap correctly applies single rotations after removal." So, if your implementation of removal correctly applies single rotations (but fails for double rotations), you will get partial credit here.

Moreover, there is a note for the TAs on both above-mentioned specs that reads "This specification is most likely met if the corresponding auto-tests are passed. Ignore efficiency here. Instead, focus on correctness." So, there is also another specification for efficiency (vs. correctness)!

So, in sum, partial credit is applied by dividing the grade for a task into several specifications. But, each specification is either met or not.

This helps us to grade you consistently. If we would allow partial credit in an unconstrained way, each TA would look at your code and potentially give a different partial credit to it depending on how lenient or strict a grader they are.

The grading is complicated! How can I figure out my standing in the course?

You can make a copy of this Google Sheet to quickly calculate your grade. You must manually add your scores from Gradescope to the Google Sheet. It will compute your percentages!

I noticed that I meet three out of the four categories to satisfy the requirements for an A, but my one category grade only satisfied the requirements for an A-. Are the grades assigned based on the lowest letter grade for which all the percentages are satisfied?

Yes! You must meet the cutoff for every category to get the associated letter grade. If this was not the case, then you could just do 100% on Required and get an A+.

If I'm just $1\%$ short to meet a higher grade letter, will I be given the point?

I want to help you to get a better grade. But I must be fair. If I effectively add $1\%$ to your score, I must add $+1$ to everyone's score. Then, there will be a whole new group of students that are just $1\%$ away from a grade letter! Besides, your scores are rounded up so you've already been given a bit of extra point.

My exams aggregate score is 75%. Does that mean I'm locked into B+ grade even if my homework scores are much higher.

Yes! As stated above, you must meet the cutoff for every category to get the associated letter grade.

Will I fail the course if I socre less than $50\%$ on the exams?

Yes! But exceptions might be made on a case-by-case basis.