On this page:
Fundamentals I Honors

Fundamentals I Honors

teach vs. learn This website is for a prior semester of CS2500h. Please go to http://www.ccs.neu.edu/course/cs2500h for the current semester, and update your bookmarks accordingly.

Welcome to the Honors section of Fundamentals I at Northeastern University, College of Computer Science.

This course is an introduction to computing and programming. Its major goal is to introduce students to the principles of systematic problem solving through programming and the basic rules of computation.

The course does not assume any prior programming experience. It is therefore suitable for all freshman students—majors and non-majors alike—who wish to explore the intellectual ideas of the discipline. It does assume a basic familiarity with arithmetic and algebra, and it demands a basic degree of curiosity, self-discipline, and willingness to work with others.


Wed Dec 2 20:37:16 EST 2015 Today’s code is posted here. It only includes the final versions of what we did, so you may find the explanation at http://www.catonmat.net/blog/derivation-of-ycombinator/ helpful in reconstructing how we got there.

Mon Nov 30 17:06:15 EST 2015 Today’s code is posted here. It includes the fix for lazy if evaluation, and so the implementation of factorial works properly. Now if only we could get rid of that pesky recursion...

Mon Nov 23 23:38:20 EST 2015 Husky, part 2 is posted here.

Thu Nov 19 14:42:39 EST 2015 Husky, part 1, is posted here.

Wed Nov 18 21:00:47 EST 2015 Pre-Thanksgiving logistics: There will be no lab on Monday night. Since there is no lab, and since you are all no doubt getting a late start on the homework due to the midterm tomorrow, Becca and Matt have decided to hold joint office-hours on Monday evening from 6–8 (your normal lab time, more or less) instead of their usual times. (In particular, Becca will not be there at 10pm...)

Tue Nov 17 23:13:38 EST 2015 The review code from lab is here and here.

Tue Nov 10 18:12:20 EST 2015 Homework scheduling for this week is going to be tricky. This week’s homework is due on Thursday, “as usual”. The next homework would be due on next Thursday, except you have an exam then. So I’ll delay giving out the next homework until Monday the 16th, and it will be due on Monday the 23rd, just before Thanksgiving. You should use this weekend off from homework to study for the exam...

Tue Nov 10 18:00:52 EST 2015 For the leafy-trees problem on this week’s homework, we know that you can implement count-leafy-trees by simply building all leafy-trees and then computing their length. Please don’t. Please figure out how to directly count the number of trees.

Sat Nov 7 10:01:52 EST 2015 I’ve posted a slight clarification to problem 1 on the homework, and split it into two subproblems.

Wed Nov 4 00:26:50 EST 2015 Next week, Tom’s office hours are moving from Tuesday the 10th to Thursday the 12th, at the same time (6–8pm).

Mon Nov 2 20:00:31 EST 2015 Clarification on the ruler problem: there were two independent bugs pointed out today in class: there was an off-by-one error in the treatment of depths, and there was a right-versus-left drawing issue of the tick marks. We have corrected both issues in the assignment description. Please make sure you fix the depth issue to be consistent with the rewritten problem (since otherwise depths were not well defined). We will, however, accept lines drawn in the bottom left corner, since that mistake was definitely our fault.

Thu Oct 29 17:08:31 EDT 2015 There is a small typo in the ruler-image homework problem. Instead of using the formula (expt 1/2 n) to compute line heights, you’ll need to use (expt 1/2 (sub1 n)), or else your tick marks will be half as tall as they should be.

Mon Oct 26 17:26:09 EDT 2015 Today’s code has been posted.

Mon Oct 26 12:03:37 EDT 2015 Milo’s office hours today have been moved until 3:00–5:00pm.

Fri Oct 23 17:33:02 EDT 2015 The code from this week’s lectures are posted here and here.

Tue Oct 20 22:03:20 EDT 2015 This Friday, Becca will be moving her office hours to 9-11am instead of their usual time.

Also, stand by for some more general office-hours time shuffling: apparently several tutors and TAs have had no one at their scheduled office hour times, while other tutors are swamped. So we’ll try to move people around to be more available when students tend to need help. We’ll post the updated times here soon.

Wed Oct 14 19:53:33 EDT 2015 Today’s final version of the snake game is posted. The snake still doesn’t collide with walls; I’ve left that function for you to do on your own. Everything else works, though!

Wed Oct 14 18:59:34 EDT 2015 Post-exam choices: If you decide that you are going to drop down to a regular section of Fundies 1, please email me no later than Thursday afternoon, and I will detail the process you need to follow to do so.

Tue Oct 6 22:01:32 EDT 2015 The code from yesterday’s lab review session is posted here.

Fri Oct 2 20:16:14 EDT 2015 Homework 4 is posted, and will be due on Friday instead of Thursday as usual.

Thu Oct 1 17:36:13 EDT 2015 I’ve posted the room locations and times of next week’s midterm. The exam will be Wednesday night, 6-9pm, in 108 Snell Engineering. Those of you who have emailed me with valid conflicts will take the exam on Thursday, 6-9pm, in 003 Snell Library. (You do not get to choose to take it on Thursday unless you have a valid conflict!)

Wed Sep 30 20:25:21 EDT 2015 Correction on the homework: In problem 4, I originally suggested you write a function bigger-than. This is backwards: you should write a function smaller-than instead. (Hint: while obviously both of these functions can compute equivalent answers, only one of them can be used in this case in a manner that follows the design recipe!)

Mon Sep 28 10:19:41 EDT 2015 I’ve posted the code from Prof Ahmed’s lecture last week, as well as the code from her lecture two weeks ago. (Don’t try reading it in your browser; right-click on the links and save the files to your machine, then open them in DrRacket.)

Fri Sep 25 23:31:12 EDT 2015 Problem set 1 is graded and the grades and comments are available on Blackboard. Problem set 3 is now available from this website.

Wed Sep 23 20:30:40 EDT 2015 The wording of problem 3 on homework 2 has been clarified slightly. (If you don’t notice the change, you probably also didn’t notice the ambiguity in the original wording...which could have been detected by carefully considering what test cases should have been written!)

Mon Sep 21 17:00:00 EDT 2015 Because of the holiday this week, I will not be holding office hours this week at my usual times, because of the holiday. Instead, I’ll hold make-up office hours on Thursday, 1:30–4pm.

Additionally, lecture on Wednesday will happen, but will be taught by Prof. Ahmed. This should be the end of scheduling weirdness for a while.

Wed Sep 16 17:28:21 EDT 2015 This course and homework 1 is available on Blackboard. If you still have trouble accessing it, please email me.

Mon Sep 14 17:15:25 EDT 2015 Some clarifications from lecture today, for lab and homework this week: Homework 1 will be due at 11:59pm on Friday night, and will be handed in via Blackboard. Because it’s the first assignment and working with Blackboard will be new for people, I’ve added a day to the homework. (Homeworks will be due on Thursday nights at 11:59pm, usually.) I will be opening the assignment on Blackboard after class on Wednesday; do not panic if you don’t see it until then. You are not submitting this assignment with a partner; subsequent homeworks will require partners.

Tonight’s lab will pick up where lecture left off, and will introduce new material in addition to providing practice with what you’ve already learned.

Wed Sep 9 18:03:26 EDT 2015

Welcome to CS2500 Honors. This is section of the course web page is the "blog" – we recommend you check it daily, as we post news about the class here.