How am I going to get an A in this course?
As of today, you are learning for life, not for exams.
College is your last chance to learn how to learn by yourself, without pressure from parents, teachers, or peers. You want to learn that, because the quality of your life depends on it. Your life. Nothing more, nothing less.
Naturally, we understand that you want some feedback, both in terms of specific corrections and in terms of a grade. You want feedback so that you can improve your learning process. And we will give you that feedback. It is our end of the bargain. Your end is to demonstrate that you actually study the methods we teach so that they become second nature. After all, you don’t want to waste your time, and we don’t want to waste ours either.
So, if you wish to earn a grade in this course, you must submit the Course Contract during the first lab session (2501). We will show you how to submit it in lab, so you must attend. Your submission acknowledges that you have read these notes and understood the contract between you and the course staff. We promise: As long as you will live up to its spirit, we will stand by you during this semester.
The course comes with two lab sections. Labs start the first week of class, on September 11. All labs will be held online on Teams this semester.
Lab coordinator: Nicole Brewer (n.brewer at northeastern.edu)
You must attend the lab section you signed up for during registration.
The purpose of labs is to give you some hands-on experience with the actual tools and to illustrate some of the principles from lecture with hands-on exercises. You will also have the chance to explain your solutions to your peers, and you will receive a grade for that.
Please familiarize yourself with the course (part "staff"). The (part "staff") section comes with pictures so you can recognize people in the classroom, during office hours, or on the sidewalk.
We will use DrRacket (v7.8), a programming environment for a family of programming languages. For Fundamentals I, we will stick to the HtDP teaching languages plus a small number of teachpacks as specified in How to Design Programs (HtDP). DrRacket is freely available on the web, and we request that you install it on your own computer.
DrRacket runs on most popular platforms (Windows, Mac OS X, Linux, and other *nixes). Programs written in the teaching languages have mostly the same behavior on all platforms. You therefore do not need to worry what kind of machine you use when you run your programs.
All that being said, should you have issues installing DrRacket on your machine, you may use the college’s virtual desktop infrastructure. We do, however, strongly recommend installing and using DrRacket on your own computer.
In order to submit homeworks and lab quizzes in this class, you will need to have a Khoury account. You are eligible for such an account if you are a Khoury major, or if you are in a Khoury class (such as this one). You can apply for a Khoury account at this link, and you should do so during the first week of class by September 10, so that you have the account activated by the first lab.
The purpose of the homeworks is to prepare you for the exams.
There will be weekly homeworks. Some problems are drawn from How to Design Programs (HtDP), the textbook; others are constructed for this instance of Fundamentals I. We will grade some but not all problems from each set, picked randomly after the due date.
Falling behind on homework is never a good idea: the course presents new material every day, making catching up harder and harder. Additionally, in weeks that you are completing code reviews, your homework must be submitted on time in order for someone else to review it on time.
However, we know that your time is not always easily scheduled, and some weeks, “stuff happens.” We will therefore allow you to turn in your work up to 25 hours after the deadline at a 4% per hour penalty. The handin server will prevent any further submission even 25-hours-and-one-second late, so it’s not worth trying to sneak in a submission in those last few seconds.
You must work on your graded homeworks in assigned pairs. Your partner will be signed up for the same lab as you; your lab TA will assign you the first partner. Towards the end of October, you will get a new partner.
Pair programming means that you and your partner work on the homeworks jointly. You read them together and you work on the solutions together. One of the lab’s purposes is to teach you how to work in pairs effectively; indeed, pairs are provably more effective than individuals in programming. The rough idea is this: One of you plays pilot, the other co-pilot. The pilot works on the keyboard and explains aloud what is going on; it is the co-pilot’s responsibility to question things that do not make sense. After a problem is solved to the satisfaction of both, you must switch roles.
Early on, we will have a one-hour, in-class exam to determine whether you are better off in Accelerated or Regular.
on 09/23 at 1:35-2:40pm
on 10/22 at 6:00-9:00pm
on 12/01 at 6:00-9:00pm
These midterm exams will test material similar to that assigned in weekly homeworks. If you can solve every homework problem on your own, the exams will be easy. If not, you will have a difficult time.
All exams are open-book, meaning you can bring any printed or hand-written material you wish. The exams will be taken online, via the Hourglass server (similar to Handins for your homeworks), so you will need to bring a well-charged laptop connected to the internet. Any other use of outside assistance (searching the internet, using a second computer, tablet, phone, smart watch, your friend’s computer, your friend, etc.) will result in your immediate expulsion from the exam and a score of zero. Because many of you will be taking the exams remotely, we are asking you to affirm an honor code pledge that you will not abuse that flexibility to cheat. We will discuss the details of this further in class.
Note that even though Exam 1 and Exam 2 are allotted 3 hours, a student who has worked through the readings and graded problems can solve the problems on the exam in half that time. To make sure that nobody feels rushed, however, we allocate three hours.
we only count your top 10 lab-quiz grades
we will drop your worst homework grade
The remaining 3% are up to the instructors’ discretion; the instructor and the TAs will award these points to people based on class, lab, and/or office hours participation. What this really means is that grading is not a science, but we will do our utmost to assign scores fairly and to reward those students who demonstrate a sustained improvement over the course of the semester.
If you are in Accelerated and you feel, during the first 3 weeks of this course, that you would be better off learning the material at a slightly slower pace, you may ask to transfer to a regular section. If you’re unsure about switching, the exam on September 23 is intended to help students decide. To request a switch to a regular section, you should talk to Prof. Ahmed or Lerner so they can initiate a switch. But there are some dates to keep in mind for such a switch.
Until September 17th this change can be made effective immediately if your professor approves.
After September 17th but before September 25th this change can only be made effective September 28th. Thus, you should continue to attend your Accelerated lecture and lab, and turn in all Accelerated assignments, until (and including) the assignment due on September 21st.
Note that Exam 0 is on September 23rd. It will be graded immediately and returned in class on September 24th. If you’ve scored below a certain percentage (which we’ll announce in class), you should speak to Prof. Ahmed or Prof. Lerner in person on September 24 or 25. They will hold office hours from 10am to noon on September 25th exclusively for students who need to speak to them about switching to regular. You must decide on September 25th if you would like to switch to a regular section so that we can figure out which regular section you can be moved into. By 5pm on September 25th, you must email Jessica Biron (j.biron at northeastern.edu) and cc Prof. Ahmed and Prof. Lerner so we can initiate the switch with the Registrar. You will be notified over the weekend of September 26th, which regular lecture section and regular lab section you will be registered for. Starting Monday September 28, you should attend that regular lecture and lab, and submit the regular homework due Friday October 1st.
After September 25th you can no longer change sections.
If you are in one of the regular sections of CS 2500 and you feel, during the the first 3 weeks of the semester that you would benefit from learning at a more accelerated pace, you may be able to transfer into the Accelerated section. To request a switch, you should talk to your professor; if they agree, they will ask you to talk to Prof. Ahmed or Prof. Lerner for permission to register for Accelerated.
Note that you will need to move to lecture section 1 (CRN 10431 1:35-2:40pm, Mon/Wed/Thu). You will also have to choose from either lab 1 (CRN 10280, 9:50-11:30am Fri) or lab 2 (CRN 10600 11:45am-1:25pm Fri). Both the lecture and the lab must fit in your schedule and have space available in the room.
Until September 19th this change can be made effective immediately after Prof. Ahmed or Prof. Lerner approve.
After September 19th but before September 25th this change will be made effective September 28th. Thus, you should continue to attend your regular lecture and lab, and turn in all regular assignments, until the one due on September 24th.
After September 25th you can no longer change sections.