T-Th 9:05
or
T-Th 11:15
in Olin 155

CS 1110: Introduction to Computing Using Python

Spring 2018

Announcements

May 23rd Grades released
May 20th Final-exam grades released, regrade requests due Monday 11:59pm.
May 18th Updated tentative timings on final-exam grade release.
May 18th Tentative timings on grade release.
May 15th Review-session materials all posted.
May 14th We have already communicated with all students whose makeup exam requests we knew about.
May 14th VideoNote of the review sessions has been posted
May 13th Classes-and-subclasses and call-frames review session slides posted
May 13th Lists-and-sequences and loop-invariants review session slides posted
May 11th A5 solutions posted on the Assignments page
May 10th Calibration points for A4 and the course so far (A1-A4, prelim 2, prelim 2)
May 9th Final exam review sessions
May 7th Final exam study guide posted; lab sessions this week are open office hours
May 7th A4 grades re-released
May 4th Updates on A5 a5_player.HumanConsolePlayer.addCardToHand(); some pass statements should be left in
May 3rd A5 debugging with a5_unochecks: you may want to un-suppress print-statement output
May 3rd Thu May 3 Bracy/Lee 10:10 office hours bumped to **Olin 218**
May 3rd Conflicts or SDS arrangement for the final exam? Upload to CMS by Monday May 7th
May 1st 9:00 Lecture please watch final 10 mins of 5/1 Videonote
May 1st A5: no for-loops allowed
May 1st A5 clarification
April 30th A5 (the last assignment) has been released
April 28th Prelim 2 grades announcements have been sent out.
April 18th A4 grades are being reevaluated.
April 23rd A3 scores: some calibration.
April 18th Recursion Review materials and video posted.
April 18th Solution to 2017 spring Q3 __str__ updated.
April 18th Prelim 2 complete study guide now posted, really really.
April 20th The solutions to A4 are posted.
April 19th A4 map_people_to_positions clarification.
April 18th Prelim 2 complete study guide now posted; A3 grades released.
April 17th Updates to A4.
April 16th The solutions version to A3's a3.py has been posted.
April 12th The optional recursion sessions will be Videonoted.
April 12th Version 2 of the A4 Phase 2 handout: visualization of example added
April 12th We are offering optional recursion-problem solving sessions the week of Sun April 15.
April 12th Phase 2 of A4 released
April 11th Phase 1 of A4 released - do it ASAP!
March 26th Wondering about some of the design decisions behind A3?
March 26th Lab 09 reduced to just two required functions
March 25th Updates to A3
March 22nd Assignment 3 released
March 19th We will be re-checking everyone's Question 3a/3.1 of Prelim 1
March 14th Prelim 1 grades announcements have been sent out.
March 14th Please check your A2 grading comments: a few need to be regraded due to pdf printing errors.
March 12th Prelim 1 study guide update (4)
March 12th A2 grades on CMS, feedback on Gradescope
March 12th Previous prelim solution and Prelim 1 study guide update (3)
March 11th A2 grading rubric posted on CMS
March 11th Non-10 A1 grades will be converted to a 10-point scale by Monday morning
March 9th A2 solutions posted
March 6th Prelim 1 study guide update (2)
March 6th Prelim 1 study guide location and updates
March 1st Animation of diagramming a2_example.py
March 1st All Friday Mar 2 office hours and one-on-ones are being rescheduled
February 27th Assignment A1 revision-process instructions released
February 21st Conflict with or need special arrangements for prelim 1? Register on CMS
February 14th Assignment A1 released
February 4th Had trouble joining the CS1110 Piazza before?
February 4th Enrollment update: CS1133 now has some spots open!
February 2nd Get lab 01 checked in if you are still trying to enroll
February 1st Enrollment (whether it is still possible to enroll) updates
January 29th The first lab exercise, for sections this week, has been posted.
January 25th Installation instructions are NOW live (sorry for the broken link, 9:05).
January 15th No discussion section (aka "labs") on Wed Jan 24th.
January 15th Trouble enrolling?

Grades released

Your A5 grade, final-exam grade, and grade for the course have been posted to CMS. Due to tight grade-submission deadlines, we did not have a regrade period for A5. To view your course grade in CMS, you may need to click on some text near the top of the CS1110 CMS page that says "Show Final Grade" (with "Show" in red: click on the "Show"). These grades have also been entered into Faculty Center and should propagate to Student Center within 24 hours.

We spent considerable time thinking about individual students whose grades were near borders of various grade levels, reviewing their work, factoring in lab scores, and checking our records for extenuating circumstances. Given the care we took in determining these cutoffs, we will not be making any grade changes. We did not assign any A+s.

The course staff are now or will soon be broadly dispersed around the globe, and we need to move on to other responsibilities (beginning, alas, with an all-day faculty meeting tomorrow). So we will not be able to respond to questions about A5 or course grades.

We enjoyed spending the semester with you all and wish you the best in your further computing adventures!

Profs. Bracy and Lee

Posted Wednesday, May 23rd


Final-exam grades released, regrade requests due Monday 11:59pm.

You should have received two emails about this, one from CMS, one from Gradescope.

Posted Sunday, May 20th


Updated tentative timings on final-exam grade release.

Our estimate of when the final-exam scores will be released has been moved up to the night of Saturday the 19th.

Posted Friday, May 18th


Tentative timings on grade release.

Tentative final-exam grade release on Gradescope: evening of Sunday the 20th. (Grading had already begun as of Thursday the 17th, but the logistics are complex.)

Tentative A5 grade release date: Tuesday May 22.

Tentative course-grade release on CMS: evening of Friday the 25th. We guarantee it will not happen between Sunday the 20th and Tuesday the 22nd inclusive, and Thursday the 24th is an all-faculty all-day mandatory meeting.

Posted Friday, May 18th


Review-session materials all posted.

See the Exams page, in the section on the final, for slides, VideoNote links, problem worksheets and solutions thereunto.

Posted Tuesday, May 15th


We have already communicated with all students whose makeup exam requests we knew about.

So, if you haven't heard from us, we do not believe we have heard from you. If this is an error, please send one email with both cs1110-prof@cornell.edu and JLS478@cornell.edu in the To: line, and attach whatever information you would have submitted to

Posted Monday, May 14th


VideoNote of the review sessions has been posted

See the Exams page, in the section on the final; or the VideoNote link in the lefthand sidebar of the course website (the two Saturday sessions are bundled as Lecture 28, and the two Sunday sessions are bundled as Lecture 29).

Posted Monday, May 14th


Classes-and-subclasses and call-frames review session slides posted

See the Exams page.

Posted Sunday, May 13th


Lists-and-sequences and loop-invariants review session slides posted

See the Exams page.

Posted Sunday, May 13th


A5 solutions posted on the Assignments page

Posted Friday, May 11th


Calibration points for A4 and the course so far (A1-A4, prelim 2, prelim 2)

As mentioned on the course Grading page, we don't predetermine score-to-letter-grade cutoffs. But to give you some sense of calibration for the A4 scores, we spot-checked some graded submissions:

  • The assignment we looked at that got a 90 is in the A range (not necessarily the center of As, not necessarily the lowest A).
  • The assignment we looked at that got a 63 is in the B range (not necessarily the highest of the Bs, nor the center of Bs, nor the lowest B).
  • The assignment we looked at that got a 40 is in the C range (not necessarily the highest of the Cs, nor the center of Cs, nor the lowest C).

As for how you are doing in the entire course so far, you can compute your numerical weighted score, and compare it to some letter-grade calibration points (NOT cutoffs!) via the following Python script: compute_may10.py. Download it, fill in lines 154--159 with your A1-A4, prelim 1, and prelim 2 scores, and run Python on it. You will get a printout that starts like this:

Reporting for 'values around this score are roughly A's (probably neither the top nor the bottom A)'.
The weighted score is: 54.03 (The maximum possible now is 60)

Reporting for 'values around this score are roughly B's (probably neither the top nor the bottom B)'.
The weighted score is: 44.31 (The maximum possible now is 60)

Reporting for 'values around this score are roughly C's (probably neither the top nor the bottom C)'.
The weighted score is: 35.14 (The maximum possible now is 60)
                
and then prints out your numerical weighted score, which you can compare to the calibration points printed above.

Once again: we don't predetermine score-to-letter-grade cutoffs or percentage-to-letter-grade cutoffs, so as to be able to adjust for however difficult or easy the final exam turns out to be.

Posted Thursday, May 10th


Final exam review sessions

The review sessions and problem solving sessions will be in Hollister B14 and the times are as follows:
  • Saturday, May 12th
        12:00pm - 1:00pm Lists/Sequences
        1:00pm - 2:00pm Loop invariants/sequence algorithms
        2:00pm - 3:30pm Problem solving session
                    
  • Sunday, May 13th
        12:00pm - 1:00pm Call frames
        1:00pm - 2:00pm Classes
        2:00pm - 3:30pm Problem solving session
    
    
                    

Posted Wednesday, May 9th


Final exam study guide posted; lab sessions this week are open office hours

See the exams page for the study guide. Watch the announcements for exact times/topics of review sessions.

Posted Monday, May 7th


A4 grades re-released

See CMS for deadline to request a regrade if there seems to be a problem with the grading of your A4.

Posted Monday, May 7th


Updates on A5 a5_player.HumanConsolePlayer.addCardToHand(); some pass statements should be left in

5. Change the code for a5_player.HumanConsolePlayer.addCardToHand() so that the body of the method is not in an if-statement. This allows human players to have more than one of the same card in their hand.

6. In your submission, leave in pass statements that are in places where you didn't write code. (These are needed for the methods of the "abstract" class to be syntactically correct.)

Posted Friday, May 4th


A5 debugging with a5_unochecks: you may want to un-suppress print-statement output

4. If you are wondering where your print-statement output is going when checking your code with a5_unochecks.py (i.e., you don't see any print-statement output), see the announcement in the Thursday May 3rd presentation slides.

In general, we strongly recommend carefully reading any test code we supply to make sure you understand exactly what it is doing.

Posted Thursday, May 3rd


Thu May 3 Bracy/Lee 10:10 office hours bumped to **Olin 218**

Posted Thursday, May 3rd


Conflicts or SDS arrangement for the final exam? Upload to CMS by Monday May 7th

Follow the instructions on the Exams page on how to submit a make-up petition to CMS. We make individual makeup arrangements: there is no single makeup session.

We do not generally offer makeup times before the regular exam time.

Posted Thursday, May 3rd


9:00 Lecture please watch final 10 mins of 5/1 Videonote

In the 9:00 lecture we did not make it through slides 12 and 13 of the lecture today. We did cover this material in the 11:00 lecture and so in order to keep everyone in sync, we would ask students in the 9:00 lecture to watch the final 10 minutes of the videonote of the 5/1 lecture before class on May 3. Thank you for your cooperation.

Posted Tuesday, May 1st


A5: no for-loops allowed

3. Since, as stated on the A5 handout, while-loops are a focus of this assignment, we are clarifying that for-loops are not allowed.

Posted Tuesday, May 1st


A5 clarification

Clarification for draws when the deck is almost empty:

1. In Uno._drawHand(), if the deck has n cards left in the deck, the method should return min(Uno.STARTING_HAND_SIZE, n) cards.

2. In Uno.play(), if the player is supposed to draw n cards and there are k < n cards left in the deck, the player draws k cards and the numExtraCardDraw attribute of the game state is reset to 0.

Posted Tuesday, May 1st


A5 (the last assignment) has been released

See the Assignments page.

Posted Monday, April 30th


Prelim 2 grades announcements have been sent out.

Two emails have been sent to all students, one from Gradescope and one from CMS.

Posted Saturday, April 28th


A4 grades are being reevaluated.

We've noticed some irregularities in the grading of A4, especially with respect to deductions for violations of the "no flattening" rule.

We are therefore changing the assignment's status in CMS from "graded" to "closed", and are reevaluating the scores. This process will take some time, perhaps up to a week.

Posted Wednesday, April 18th


A3 scores: some calibration.

As mentioned on the course Grading page, we don't predetermine score-to-letter-grade cutoffs. But to give you some sense of calibration for the A3 scores, we spot-checked some graded A3s:
  • The assignment we looked at that got an 85 is in the A range (not necessarily the center of As, not necessarily the lowest A).
  • The assignment we looked at that got a 70 is in the B range (not necessarily the highest of the Bs, nor the center of Bs, nor the lowest B).
  • The assignment we looked at that got a 50 is in the C range (not necessarily the highest of the Cs, nor the center of Cs, nor the lowest C).

Posted Monday, April 23rd


Recursion Review materials and video posted.

See the Exams page, in the section on Prelim 2.

Posted Wednesday, April 18th


Solution to 2017 spring Q3 __str__ updated.

The solution was missing a return. The pdf on the spring 2018 website has been updated, and the spring 2018 prelim study guide has been updated to warn about the error in other versions of the solutions for spring 2017 that might be around on other websites.

Posted Wednesday, April 18th


Prelim 2 complete study guide now posted, really really.

We cannot trace the reason why the complete prelim 2 study guide was over-written with the one that promised to have notes on questions on it, but we have restored it to its full state.

You should see an eight-page document with updates from the three-pager marked in orange. You may need to hit "reload" if you still get the just-three-page version.

Posted Wednesday, April 18th


The solutions to A4 are posted.

See the Assignments page.

Posted Friday, April 20th


A4 map_people_to_positions clarification.

When we say, "The value for a given netid: list of Positions held by that netid, no repeats" this means only for those Positions that are subordinate to the root or (added Thu 1:25pm) are the root Position itself.

Posted Thursday, April 19th


Prelim 2 complete study guide now posted; A3 grades released.

The complete Prelim 2 study guide has now been posted to the Exams page, with updates marked in orange. A3 grades and grader feedback have been released on CMS.

Posted Wednesday, April 18th


Updates to A4.

  • Clarification to map_people_to_positions: do not include any keys that are not netids in your returned Dictionary; there should be no key entry representing vacant or non-specified.
  • Bug fix to example: Comment out lines 27-28 in example_chart_scraggly.py (should not be appending) if they aren't already commented out.
  • Beautification: if, when you draw org charts, you don't get arrow-heads but skinny black rectangles, you may want to update your networkx version via, at the command line, pip install --upgrade networkx.

Posted Tuesday, April 17th


The solutions version to A3's a3.py has been posted.

See the Assignments page.

Posted Monday, April 16th


The optional recursion sessions will be Videonoted.

Posted Thursday, April 12th


Version 2 of the A4 Phase 2 handout: visualization of example added

The A4 Phase 2 handout has been updated to add an appendix with a visualization of one of the examples we gave you for testing. This version of the handout has "Version 2, April 12, 2018: added appendix" just under the title.

Posted Thursday, April 12th


We are offering optional recursion-problem solving sessions the week of Sun April 15.

We have scheduled completely optional (and identical) sessions designed to give students more practice with recursion.

Materials will be posted online afterwards and we are hoping that Videonote can be arranged, to accommodate those who would have wanted to attend but couldn't.

Format: short lecture on recursion by one of the course staff, followed by group activities and/or problem solving sessions where we will be giving you questions to solve, and then explain the problems afterwards.

  • Sunday, April 15th, 4:00 pm in Gates 310
  • Wednesday, April 18th, 4:30 pm in Gates 114
  • Friday, April 20th, 3:30 pm in Gates 310

Posted Thursday, April 12th


Phase 2 of A4 released

See the course Assignments page.

Posted Thursday, April 12th


Phase 1 of A4 released - do it ASAP!

See the instructions on the course Assignments page.

Posted Wednesday, April 11th


Wondering about some of the design decisions behind A3?

We've added two supplemental readings to the Assignments page. Supplement 1 also includes two test cases you may wish to examine or use.

Posted Monday, March 26th


Lab 09 reduced to just two required functions

Due to various timing issues, we have reduced the number of functions required for checking off to two. The files on the Labs page for lab 09 have been updated accordingly.

Posted Monday, March 26th


Updates to A3

Posted to the Assignments webpage. Summary: no join/map for either convert_lines_to_string or convert_lines_to_string2; track_topics word separator should be any whitespace, not just spaces; make comments containing the all-caps string STUDENT-ADDED to indicate where you added test cases

Posted Sunday, March 25th


Assignment 3 released

It's posted on the course Assignments page.

Posted Thursday, March 22nd


We will be re-checking everyone's Question 3a/3.1 of Prelim 1

It has come to our attention that several students mis-read question 3(a) "What does the Call Stack look like?". Because our rubrics were written in the context of the correct reading of the question, they did not effectively assess student understanding of call frames in the context of the mis-reading of the question. In order to rectify this, we will be revisiting everyone's answer to 3(a) (regardless of whether you submit a regrade request), re-evaluating answers where appropriate. Note: our assessment of your scores will not change. If we originally thought your score was deserving of a B and your score does not change, neither does our assessment of your performance.

Posted Monday, March 19th


Prelim 1 grades announcements have been sent out.

Two emails have been sent to all students, one from Gradescope and one from CMS.

Posted Wednesday, March 14th


Please check your A2 grading comments: a few need to be regraded due to pdf printing errors.

Please check your grading comments for A2 on Gradescope (see prior announcements regarding Gradescope and the A2 grading rubric). There were some cases where pdf annotations didn't appear in the printouts that the graders saw.

If there indeed is a mistake in your A2 grade, make a regrade request on CMS by 11:59pm Monday March 19. (We will handle all regrade requests in one batch after the regrade request deadline has passed.)

Posted Wednesday, March 14th


Prelim 1 study guide update (4)

For 2014 spring prelim 1, notes have been added as to how solutions need to be altered for Python 3. Again, the changes since the very first posting are timestamped and written in orange text.

Posted Monday, March 12th


A2 grades on CMS, feedback on Gradescope

A2 grades are on CMS (and regrade requests are being taken there). Your graded work was uploaded to Gradescope, a service that the CS department is using increasingly in order to avoid handing back physical papers (which is costly and time-consuming). Gradescope has a very nice way of associating a pdf with a student and this saved your consultants many hours that it would have taken to upload to CMS. Ignore your grade on Gradescope (everyone was given a 1/1 on Gradescope merely as an indication of completion.)
You should have received an email from Gradescope (check your spam folders!) with instructions on how to proceed. If you did not, you can still log on using the email yourNetID@cornell.edu. If it's your first time using Gradescope, you'll need to set a password (Click on "Forgot your password?"). We've made a video to explain the whole process! If you have questions about the assignment itself, we recommend you talk to a consultant or post to piazza. If you're having trouble with gradescope specifically, please email cs1110-staff@cornell.edu.

Posted Monday, March 12th


Previous prelim solution and Prelim 1 study guide update (3)

There are versions of the 2013 spring prelim 1 question 5(b) solutions floating around that give a tricky, non-intuitive, Python-specific solution. That solution pdf has been replaced with a standard solution, and the prelim 1 study guide has been updated to include a full standard solution.

Posted Monday, March 12th


A2 grading rubric posted on CMS

The grading rubric for A2 has been posted to CMS at here. You will need to log in to view it.

If you are thinking of requesting a regrade for A2, please consult the grading rubric, and in your regrade request, make it clear which item(s) of the rubric appear to have been misapplied.

Posted Sunday, March 11th


Non-10 A1 grades will be converted to a 10-point scale by Monday morning

We are doing a final grading pass on A1s that did not receive mastery in order to determine the A1 grades on a 10 point scale. This grade will not be a direct conversion from the output of the auto-grader (which, for staff-internal calibration purposes, mentions a score out of 40. Ignore that.). Such grades will be finalized by, we expect, 7am Monday the 12th.

Posted Sunday, March 11th


A2 solutions posted

The solutions to A2 have been posted to the Assignments page.

Posted Friday, March 9th


Prelim 1 study guide update (2)

The section of "Review materials from over the years" been revised in order to only refer to review sessions involving Python 3, and missing hyperlinks have been inserted.

Posted Tuesday, March 6th


Prelim 1 study guide location and updates

The prelim 1 study guide has been posted to the Exams page, in the section labeled "Prelim 1", just under the instructions about which netids go to which rooms. It has also been updated with a note in orange about prelim 1 of 2017 spring.

Posted Tuesday, March 6th


Animation of diagramming a2_example.py

We have posted a video where Prof. Bracy works through the diagramming of the "small piece of code" mentioned in A2's Section 1, Worked Examples. We've updated the A2 handout to also give a link to that video.

Posted Thursday, March 1st


All Friday Mar 2 office hours and one-on-ones are being rescheduled

Due to the closure of the Ithaca campus: (1) The office hours that would have been held on Friday are being rescheduled; watch the calendar on the Staff page for the updated times; (2) Students who scheduled 1-on-1s for Friday are being contacted to reschedule.

Posted Thursday, March 1st


Assignment A1 revision-process instructions released

The written instructions for the A1 revision process have been posted to the Assignments page.

Posted Tuesday, February 27th


Conflict with or need special arrangements for prelim 1? Register on CMS

You have until March 1st, 11:59pm to register a conflict or a need for accommodation with the first prelim and thus request a makeup or alternate arrangements. Follow the instructions on the Exams page on how to submit a make-up petition to CMS. We make individual makeup arrangements: there is no single makeup session.

Posted Wednesday, February 21st


Assignment A1 released

Assignment A1 has been released on the Assignments webpage.

Posted Wednesday, February 14th


Had trouble joining the CS1110 Piazza before?

Try the Piazza link in the left-hand sidebar now: it's been updated to go to the direct sign-in page for CS1110.

Posted Sunday, February 4th


Enrollment update: CS1133 now has some spots open!

Faculty Center is indicating 3 open spots in CS 1133, the short course in Python, as of 2:41pm Sunday the 4th. The last day to add CS1133 is tomorrow, Feb 5.

Posted Sunday, February 4th


Get lab 01 checked in if you are still trying to enroll

If you have been unable to enroll so far, but are still trying to get into the course, then, (a) read the previous announcement, and (b) get your lab 1 checked off at Sun Feb 4-Tue Feb 6 consulting hours or at Fri Feb 2-Wed Feb 7 non-professor office hours.

Posted Friday, February 2nd


Enrollment (whether it is still possible to enroll) updates

  1. Clarification: if there are no spots in lecture, there are no spots in the class, even if there are open discussion spots. (The caps were determined by room sizes, and sizes of the section rooms don't add up to twice the size of the lecture hall.)
  2. Efforts we have made to accommodate student demand:
    • On the evening of Thu Feb 1, we contacted everyone who is enrolled but did not check off lab 1, asking them that if they don't actually intend to be CS 1110, that they drop the class on Student Center ASAP to free up their spot.
    • On Sun Jan 28, we contacted all enrolled AEM majors about switching to CS 1112.
    • We helped coordinate the raising of the cap on CS1133.
    • We have checked with various departments about their requirements.
    • We have implemented a Section Swapping Station on Piazza.
  3. If you do not end up being able to enroll in CS1110, CS1112 — a smaller class with a great prof — may work for your situation:
    • AEM majors/prospective majors: CS1112 works just as well as CS1110 for the Quantitative Methods requirement.
    • Biology majors with a concentration in computational biology: CS1112 or CS1114 (also in Matlab) work just as well as CS1110 for the "one course in computer programming" requirement.
    • Math prospective majors: CS1112 works just as well as CS1110 for the affiliation requirement.
    • Information Science prospective majors: we have confirmed that the CS1110 affiliation requirement may be fulfilled by taking both CS1112 and CS1133, not necessarily at the same time.
    • See also our list of alternative courses, linked to on the left-hand sidebar of this webpage.
  4. Explanation for why we don't have a waitlist: waitlists in Student Center are not automatic "first-in, first-to-get-in". Instead, a protocol involving repeated batching of manualrequisition, distribution, and use of quickly-expiring permission numbers by a number of different humans, which, due to the vagaries of life and the large number of individuals involved, means there are a number of failure points along the way. Hence, while the use of this protocol makes sense for many classes, but it does not for the circumstances of CS1110. There are different but also show-stopping issues with maintaining a waitlist by other means.

Posted Thursday, February 1st


The first lab exercise, for sections this week, has been posted.

Get a head start: take a look at the handout for lab ahead of time, on the Labs page.

Posted Monday, January 29th


Installation instructions are NOW live (sorry for the broken link, 9:05).

The instructions for installing Anaconda Python 3 are now live (click on the link in the lefthand sidebar). Apologies to students in the 9:05 lecture for whom the "Python/Komodo" link was (temporarily) not working!

Posted Thursday, January 25th


No discussion section (aka "labs") on Wed Jan 24th.

There are no discussion sections (a.k.a "labs") on Wednesday the 24th (labs start on Tuesday Jan 30/Wednesday Jan 31). Do come to lecture on the first day, Thursday Jan 25, though!

Posted Monday, January 15th


Trouble enrolling?

If you have been unable to enroll in a lecture (which might happen even if that lecture has open spots, because you can't find a discussion section ("lab") with available seats), please come to the first two lectures anyway. We will discuss options then, and space in the course tends to open up as people narrow down course-selection choices.

Do note that there are excellent alternate courses available.

Posted Monday, January 15th

Course Material by: E. Andersen, A. Bracy, D. Gries, L. Lee, S. Marschner, C. Van Loan, W. White