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 6.
Lab coordinator: Rebecca MacKenzie (rmacnz at ccs.neu.edu)
Head TA for Accelerated: Aaron Weiss (weiss at ccs.neu.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.
We will use DrRacket (v7.4), 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 5, so that you have the account activated by the first lab.
The purpose of the problem sets is to prepare you for the exams.
There will be weekly problem sets. 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 20 hours after the deadline at a 5% per hour penalty. The handin server will prevent any further submission even 20-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 problem sets in assigned pairs. Your partner will be signed up for the same lab as you; your lab TA will assign you the first partner. Every few weeks, you will get a new partner.
Pair programming means that you and your partner work on the problem sets 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/18 at 10:30-11:35am ; the room for this exam is in class
on 10/17 at 6:00-9:00pm ; the room for this exam is SN 168
on 11/21 at 6:00-9:00pm ; the room for this exam is 102 ISEC
These midterm exams will test material similar to that assigned in weekly problem sets. 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 and hand-written material you wish. Any use of electronics (desktop computer, laptop, tablet, phone, pda, google glass, apple watch, etc.) will result in your immediate expulsion from the exam and a score of 0.
You may have noticed the discrepancy between "one-hour" and the actual times. The exam is a one-hour exam. A student who has worked through the readings and graded problems can solve the problems on the exam in less than an hour. After one hour, everyone will get a chance to leave. To make sure that nobody feels rushed, however, we allocate three hours immediately for students with special needs as well as students who feel they need time on the exam to double and triple check their work.
we will drop your worst 2 labs scores
we will drop your worst homework grade
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 18 is intended to help students decide. To request a switch to a regular section, you should talk to Prof. Ahmed and she can initiate a switch. But there are some dates to keep in mind for such a switch.
Until September 12th this change can be made effective immediately if your professor approves.
After September 12th but before September 20th this change can only be made effective September 23rd. 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 19th.
Note that Exam 0 is on September 18th. It will be graded immediately and returned in class on September 19th. If you’ve scored below a certain percentage (which we’ll announce in class), you should speak to Prof. Ahmed in person on September 19 or 20. She will hold office hours from 10am to 1pm on September 20th exclusively for students who need to speak to her about switching to regular. You must decide on September 20th 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 20th, you must email Jessica Biron (j.biron at northeastern.edu) and cc Prof. Ahmed so we can initiate the switch with the Registrar. You will be notified over the weekend of September 21st, which regular lecture section and regular lab section you will be registered for. Starting Monday September 23, you should attend that regular lecture and lab, and submit the regular homework due Monday September 23rd.
After September 20th 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 for permission to register for Accelerated.
Note that you will need to move to lecture section 1 (CRN 10461 10:20-11:35am, Mon/Wed/Thu). You will also have to choose from either lab 1 (CRN 10297, 9:50-11:30am Fri) or lab 2 (CRN 10646 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 12th this change can be made effective immediately after Prof. Ahmed approves.
After September 12th but before September 20th this change will be made effective September 23rd. Thus, you should continue to attend your regular lecture and lab, and turn in all regular assignments, until the week of September 23rd.
After September 20th you can no longer change sections.