Final Exam       [Sun, May 7]

The final exam tomorrow will be held in our usual classroom, CIT 368. See you tomorrow at 11am. Good luck!


EIM Deadline       [Mon, May 1]

Just to clear up some confusion about the deadline for EIM, it is due tonight at 11:59 pm. I know that the handout says 5pm. Sorry about the confusion.


TA Hours       [Mon, May 1]

TA hours will be held through the final exam on May 8th. Remember, though, that regarding the final exam TAs will only be able to answer clarification questions and will not help with implementation or reasoning out solutions.


Final Exam and EIM       [Mon, May 1]

Just a quick reminder that your final program, EIM is due tonight.

The sample problems for the final exam have been posted. These are extremely helpful for you to look over before the exam. REMEMBER: the exam will be held Monday May 8th at 11am during our normal class period and not during the University appointed exam time.

If you have not handed in all of your assignments they *must* be turned in by the 8th. Good luck!


Graph Readme, EIM, and Assignment Grading       [Sat, April 22]

You should be finishing up the Graph programming assignment at this point, and the CS16 staff has received several questions about a README for the program. The handout does not explicitly request a README, but you should know by now that we generally expect something similiar along with your program. Essentially, we're looking for any insight into your design decisions and programming techniques that may not be instantly understandable from looking at your program and its comments. Remember that the README is also your opportunity to tell us about program bugs in exchange for some leniency in grading those bugs, so writing such a file is definitely to your benefit.

The final programming assignment (and the last assignment before the final exam), Encrypted Instant Messenger, has been released and is due roughly one week from now on Monday, May 1st at 11:59pm. This is not a complicated or time-consuming program, but it is still worth 10% of your final grade, so take the time to ensure you've done a good job on it. There will be no helpsession for this program, so you should use the lecture slides and the program documentation to guide your design.

HW4 was returned by email along with your marked-up PDF files, and you should be receiving your Convex Hull grade back shortly (if you haven't already). Good luck on Graph and EIM!


Running Time Error in Graph       [Mon, April 17]

There is a minor error involving running times in the latest programming assignment, Graph. The handout specifies that the insertVertex(.) method must run in O(1), while removeVertex(.) must run in O(n^2) worst case with O(n) possible. The MyGraph stencil indicates that the insertVertex(.) method must run in O(n^2) worst case with O(1) possible, while removeVertex(.) must run in O(n^2) worst case with O(1) possible. Both of these are slightly wrong.

The actual required running time for insertVertex(.) is O(n^2) with O(1) possible, as the stencil indicates. The actual required running time for removeVertex(.) is O(n^2) with O(n) possible, as the handout indicates. Note that "possible" means that the running time can be achieved depending on your implementation choices. Apologies for the confusion.


Homeworks #3 and #5       [Sun, April 16]

Homework #3 has been returned to your CS email account. As usual, attached to the email are the marked-up copies of your Questions #1-3, each of which were worth 20 points. Question #4 represents the Quicksort miniprogram, which was worth 40 points. Because Quicksort was graded mostly by automated script, we did not return your Quicksort to you along with the grade. If you have questions about your Quicksort grade, you may talk to Amy on hours, but please note that all points were lost on sorting functionality (not code style or readability). Please test your Quicksort code once more and look carefully for mistakes before approaching Amy on hours.

Homework #5 is due tomorrow (Monday the 17th) at 5pm. If you haven't already, please get started on Graph, which is due next Monday the 24th. The helpsession slides for Graph will be posted shortly.


SimBroadband released       [Sat, April 8]

Graph is now available and is due April 24th. The help session for it will be held this Monday, April 10th in Motorola. As usual, please read the handout and the suggested readings beforehand and come ready with questions. Remember that HW #5 is out and is due the 17th.


Extra TA Hours and New Assignments       [Fri, April 7]

By student request, I will be holding TA hours for Convex Hull tonight, Friday, from 4:30pm to 6:30pm. These are not normal hours and are applicable only for April 7th. More details on some special guidelines pertaining to tonight's hours are available on the course newsgroup. Homework #5 has been posted to the website and is due Monday, April 17th at 5pm. Assignment #4, Graph/SimBroadband, will be posted to the website shortly.


Lecture Slides Page Corrected       [Wed, April 5]

There was a problem with the lecture slides portion of the website. New lecture slides added to the site were overwriting the most recent PDF added, causing files such as the Convex Hull Helpsession slides to be removed. The problem has been corrected and all slides have been re-added. Good luck finishing your Convex Hull, and remember to check those special cases! When in doubt about how you should respond to colinearity, check the demo code's operation.


Convex Hull Helpsession Slides       [Wed, March 29]

The PDF file containing the slides from the Convex Hull helpsession last Wednesday has been posted to the Lecture Slides page. You will probably find the mathematical formula for the orientation method to be of the most interest, although it is presented in "determinant" form elsewhere. Apologies for not posting this file sooner, but please do get started on Convex Hull if you have not already! As the helpsession slides indicate, there are many special cases to check for this program, and tweaking your code properly is not something you can do effectively at the last minute. The program is due on Friday, April 7th, so you will not have much time after you get back from break!


Convex Hull Help Session       [Mon, March 20]

Due to a conflict with the CS22 exam, the Convex Hull help session will *not* be held tonight. Instead, it will be held this Wednesday, March 22 at 9pm. Before coming, please read the handout as well as the associated readings in the textbook and on the website. In addition, come prepared to ask questions about the project since much of the help session will be question driven.


Convex Hull Materials Posted       [Wed, March 15]

The Convex Hull lecture slides from this morning have been posted. Also posted are the supplementary materials from the old version of the textbook on Convex Hull construction and implementation. Both of these PDFs are available in the Lecture Slides area of the secure website. Please review these materials before the Convex Hull / Robot program helpsession on Monday, March 20th at 8:00pm in Motorola (CIT 165). Bring questions!


Convex Hull / Robot Available       [Wed, March 15]

"Convex Hull" or "Robot," the third program for cs16, is now available and is due April 7th. The handout has been posted to the Programs page and JERPA has been updated with the latest stencil code. The helpsession will be held Monday, March 20th at 8:00pm in Motorola (CIT 165).

Please read the handout carefully, especially if you won't be able to attend the helpsession. It should answer many of your questions. Also, please start the program as soon as you can! It may feel like the deadline isn't for a while, but the due date may creep up on you. Good luck!


Homework #4 Posted       [Wed, March 15]

Homework #4 is now available and is due Friday, March 24th at 5pm. Please remember that while you can hand in the homework multiple times through the webpage, you must submit all the questions each time, and anything you submit will overwrite the entirety your previous submission. Always check the confirmation page to ensure everything was turned in successfully and please keep a copy of your homework in case there are problems.


An Important Handin Reminder       [Mon, March 13]

Homework #3 is due this Wednesday, March 15 at 5pm. There are only three standard questions, so you may safely leave the fourth and fifth fields on the turn-in page blank. The Quicksort miniprogram is handed in separately through scripts on the CS filesystem. Consult the homework PDF for details.

REMEMBER: While you can hand in the homework multiple times through the webpage, you must submit all the questions each time, and anything you submit will overwrite the *entirety* your previous submission. This means that if you hand in all three questions once, then find a mistake on the second question, you *must* resubmit all three questions, not just the second one. If you submit a single question at any point, the server will erase all previous submissions, including other questions. Always check the confirmation page to ensure everything was turned in successfully, and please keep a copy of your homework in case there are problems.


Midterm Exam Grading       [Sun, March 12]

Grading of the midterm exams has been completed and grades will be posted online shortly. We hope to hand them back to you at the end of class on Monday, if there is time. Each of your three completed questions was graded out of 33 points, with the last point granted for free. The grade distribution was curved after all the exams were graded, and it is your adjusted grade that appears circled on the exam and posted on the website. If you have a question about how a particular problem was graded, please first see the solutions posted on the website. If you're still confused, talk to the TA who graded that problem, as indicated in the box on the first page.

Remember that Homework #3 is due Wednesday at 5pm and contains a non-collaborative Quicksort miniprogram. There are no late hours available for this miniprogram, so get started! Good luck!


Homework #3 Posted       [Tue, March 7]

The PDF file for Homework #3 was posted to the homework page this morning around 10am. Since then, there has been a minor change to the definition of the Quicksort miniprogram that is due along with three standard homework problems. If you downloaded a copy of this file before 4pm on Tuesday, please obtain a new copy. Sorry for the inconvenience.


Heap, Homework #3, and Grading       [Mon, March 6]

Heap is due tonight at 11:59pm via the website's handin form. Please remember that you must submit the zip file generated by JERPA's "Prepare Handin" button online in order for us to receive the assignment. If you started on the assignment late and are struggling to complete it, remember that it is often to your advantage to take the extra time to do it properly, even if it means digging into your 5-day supply of late hours. We will optimally distribute your late hours among your assignments at the end of the semester, so you will probably receive a better grade overall if you implement a well-executed version of the assignment. There are TA hours from 8pm until midnight if you are rushing to make the deadline.

Homework #3 goes out later today and includes three traditional homework problems plus a "mini-program" in which you will write an implementation of Quicksort. This program is not available through JERPA and can only be done in the Sunlab. The homework -- including the mini-program -- is due next Wednesday, March 15.

If you have not yet received your Queue grade (with a detailed grading breakdown), you should get an email by 8pm tonight in your CS account. Read your grading report carefully to analyze what went wrong with your last program and how you might make your Heap as perfect as possible. Remember to comment where appropriate (i.e. anywhere where the code is not transparently clear) and to write your README file. Good luck!


Friday's Midterm Exam       [Wed, March 1]

IMPORTANT: The CS16 midterm exam on Friday, March 3rd will be held in the Sunlab due to a CS department event in our usual classroom.

Please remember that this exam is closed-book and closed-notes and that you will not be allowed to bring anything into the exam. Because of this, proper preparation using the sample questions is essential, and you should fully understand all your proposed solutions going into the exam! You will also not be allowed to login to the Sunlab nodes during or before the exam.

TAs will be on hand to answer clarification questions during the exam, but as all the questions will mirror the sample material, you should ask your questions on hours to save yourself some time during the exam itself. There will not be sufficient time to reason out a solution from scratch, so plan accordingly. Good luck!


HW2 and Queue Grading       [Tue, February 28]

HW2 has been graded and returned via email, and grades will be posted on the website shortly. As always, if you are confused about your grade on a homework question, please see the TA that graded the question (as indicated by the login on the PDF comment box). Again, this should be reserved for cases where you don't understand the comment after looking at the posted solutions or where you feel there has been a serious grading mistake (i.e. more than a few points). If you do not receive an email within the next 24 hours or if the grading report does not include all the questions you think you submitted, please email the Head TAs.

Queue grading is being completed incrementally over the course of the week, so don't worry if a friend has received a grade and you haven't. You will receive an email report when the TA grading your assignment has finished reviewing it. Hope your exam preparation is going well, and remember that Heap is due next Monday. Study hard, and good luck!


Final Midterm Update       [Sat, February 25]

There were again some minor corrections in the midterm sample questions. If you have begun work on a question, please download a new copy of the file (current as of Saturday at 1:30pm). The questions have not changed at all conceptually, but some of the interfaces have been adapted to match the net.datastructures 4.0 package. We're really sorry about the confusion. This will be this last update.


Midterm Sample Questions Updated       [Fri, February 24]

The midterm sample questions file has been updated. There are no changes to the question content, but some clarifying information has been added to the file header. The questions were subsequently re-ordered to neatly fit them on pages of the PDF file. Finally, the exam was correctly labeled as "Non-Collaborative" rather than "Collaborative" on the Programs page. You are encouraged to download a fresh copy of the file, although, again, the questions themselves are unchanged.

We apologize for any problems you may have had trying to access the secure section of the website this afternoon. The server CS16.net runs on was experiencing technical difficulties unrelated to the site itself. Department technical staff has resolved the problem for now, but there is no guarantee it won't happen again. We are unable to make MOTD posts when the secure section of the site isn't working, so check the newsgroup for details if you are concerned about an upcoming deadline. Study hard, and good luck on the midterm!


Midterm       [Fri, February 24]

The sample questions for the midterm are now posted. These questions will be similar to the questions on the exam given next Friday (March 3). It is to your advantage to look over them, do them, and understand them. We will choose four questions and you will have to complete three of them during the 50 minute class period, so it is safe to ignore one question. These questions are NON-COLLABORATIVE and therefore the only people you are allowed to talk about them to are the TAs and Professor Tamassia and then only clarification questions. If this is not clear, please email the Head TAs.

Good Luck!


Homework #1 Returned       [Wed, February 22]

You should receive an email shortly containing your grades for Homework #1 and the TA-marked versions of your five question submissions. The grades have not yet been posted to the website, but we hope to have that up soon so that you can see the homework average for each question. Don't be too upset if your grade isn't quite what you were hoping for, as the averages are fairly low and the class is graded on a curve. Remember that each homework is worth only 6% of your grade and that your worst assignment will be weighted half as much as the others.

We apologize for the long delay in returning your homeworks, but we ran into technical difficulties with some of our backend scripting. If there's anything wrong with your returned homework -- missing PDFs, grades that don't match up or add up, files that aren't yours, etc. -- please let a Head TA know so that we can correct the problem. Likewise, if you do not receive an email at all within the next 24 hours, please tell us. However, if you have an issue with how the grade was arrived at (rather than a technical problem), please see the grading TA on hours. We would encourage you to reserve this "right to petition" for cases where there has been a serious mistake. If you're worried about a few points, keep in mind that the grading TA applied the same rubric for that question to everyone in the class, so minor flucuations in grading style will balance out in the end.

Preview questions for Exam #1 go out on Friday, so you may want to use this opportunity get a jump on Heap. Good luck!


Newsgroup Updates       [Tue, February 21]

Several important posts have been made to the "brown.cs.cs016" newsgroup recently. Homework #2 is due tomorrow (Wednesday) at 5pm, so Amy will be holding extra hours from 6pm to 8pm for those of you coming back from the long weekend. There is also a post on using recursive techniques with pseudocode that you may find useful in writing up HW2. Finally, Amy has managed to get the Market Maker frontend for heap working, and there are instructions on the newsgroup as to how to test it out. You should be checking the newsgroup and the MOTD regularly for updates throughout the class.

CS16 will not be as lenient this week with respect to late or incomplete handins, so check your website submission carefully to ensure all the necessary files are sent! Also, remember that the Heap deadline is not that far off (given that you have a midterm coming up), so get started if you haven't already. Hope you had a relaxing long weekend!


Heap Helpsession       [Tue, February 14]

The helpsession for the second program, Heap, will be held Wednesday, February 15 at 8pm in CIT 165 Motorola. It should take no longer than one hour. We understand this is somewhat late notice, but we want you to be able to get started on the program as soon as possible. An annoucement will be made in class on Wednesday morning, but if you have friends who can't make it to class tomorrow, please remind them of the helpsession.


Heap / Market Maker Available       [Tue, February 14]

"Heap" or "Market Maker," the second program for CS16, is now available and is due March 6th. The handout has been posted to the Programs page and JERPA has been updated with the latest stencil code. If you attempted to use JERPA to view the stencil code prior to February 14th at 11pm, you should overwrite the files you downloaded with a fresh copy.

Please read the handout carefully, especially if you won't be able to attend the helpsession. It should answer many of your questions. Also, please start the program as soon as you can! It may feel like the deadline isn't for a while, but between the homework problems and studying for the (upcoming!) midterm, the due date may creep up on you. Good luck!


Homework #2 and Heap Update       [Mon, February 13]

Homework #2 is now available and is due Wednesday, February 22nd at 5pm. There are only four questions, so you may safely leave the fifth field on the turn-in page blank. Please remember that while you can hand in the homework multiple times through the webpage, you must submit all the questions each time, and anything you submit will overwrite the entirety your previous submission. Always check the confirmation page to ensure everything was turned in successfully and please keep a copy of your homework in case there are problems. Heap is not yet available, but it will be soon. A post to the MOTD will be made when it is ready for download.


JERPA Problems and HW#1 Solutions       [Wed, February 8]

If you are having problems running JERPA after installation, please check the brown.cs.cs016 newsgroup for a solution. You should always check the newsgroup and the Message of the Day (MOTD) on the CS16.net homepage before emailing the TA "cs016tas" alias. If you have a problem the Head TAs need to address, use the HTA "cs016headtas" alias instead of emailing an HTA individually.

Homework #1 solutions have been posted to the website, and we should have your homeworks graded and returned by next Friday. Remember: your first program is due next Monday at 11:59pm. You don't want to start cutting into your late hours this early! Good luck!


Queue / DDR Helpsession       [Mon, February 6]

The helpsession for the first program, Queue/DDR, is tonight at 8pm in CIT 165 (also known as "Motorola"). We had some difficulties reserving the room, so we apologize for the late notice on the location. If you haven't done so already, please read the program handout and bring questions to the helpsession. TA hours will resume after the conclusion of the helpsession, which should go no longer than an hour at most.

The first homework assignment was due today at 5pm. If you did not turn in your homework electronically through the website, please do so immediately. Late homeworks will not be accepted in the future and must be accompanied by an emailed explanation to the Head TAs. If you encounter problems using the website to hand in your homework, email the Head TAs your PDF files and work with the TA staff to resolve any issues you are having with your account.


Dance-Dance Revolution Available       [Thu, February 2]

The first program for CS16 -- "Queue" or "Dance-Dance Revolution" -- went out yesterday afternoon on the Programs page. This assignment is due Monday, February 13, so read the handout, check out the JavaDocs for the support code, and get started! Whether you work from the Sunlab or from your dorm computer, you'll need to install the utility CS16 uses to distribute programs: JERPA. Check the link on the Information page or click the one on the program handout itself for setup details.

CS16 will be holding a helpsession for the program on Monday night at 8pm. We'll go over the basics briefly, but a helpsession is mostly an opportunity for you to ask us questions. This means that you absolutely should have started coding before Monday night! You'll only have a week to complete the assignment after that, so plan wisely. Good luck!


Homework #1 Available       [Fri, January 27]

Homework #1 went out today in the secure section of the course website. It is due via electonic handin on Monday, February 6th at 5pm. Details on the electronic handin procedure are available in the homework header and on the "Turn In Here" link for the homework. When preparing your work, please remember that each question must be submitted in an individual .doc, .ps, .ppt, or .pdf formatted file. After grading, your files will be returned to you in .pdf format, so we would prefer it if you submitted your documents as Adobe files. Adobe Acrobat is available via Brown Software (http://software.brown.edu/) or you may use a third-party utility such as PDFCreator (http://sourceforge.net/projects/pdfcreator/) to generate PDF files from your documents. The TA staff cannot provide technical support for these programs.

Please keep in mind the collaboration policy as you work on this first assignment for CS16. You are free (and encouraged!) to discuss homework problems with your classmates and you may reason out solutions with them. You may not, however, either write up solutions with a partner or copy from notes taken down during collaborative discussion. The collaboration policy contains more details and is available in the Information section of the website. Good luck!


CS 16 Website Login       [Fri, January 27]

We have been receiving a lot of questions regarding logging into the site. The login is different from your regular cs login. If you have turned in your Student Agreement form you should have received an email to your cs account that will give you a temporary password to log you in. You can then change your password on the site. If you haven't turned in your form, please do so soon as it is required to access the secure sections of the website. If you have any problems with this, please let us know.


Course Textbook and Collaboration Forms       [Thu, January 26]

The bookstore recently notified us that they understocked the course textbook and have run out of copies, but should have more in a few days. You shouldn't need the textbook to do the first homework assignment (which goes out on Friday), but if you'd like to look over the material, feel free to borrow a TA's textbook during hours. If you're having trouble with pseudocode notation, take a look at the class lecture slides for examples. The Information page links to two PDFs that contain some helpful tips. Remember to read the collaboration agreement and turn in your signed form to a TA or to the handin bin on the second floor. You won't be able to log into the website until we have your form!


Welcome to CS16!       [Sun, January 22]

Congratulations on finishing CS15, and we're glad you're joining us for Data Structures and Algorithms! We're still working on updating the website, but you can click the Information link on the left sidebar for the course syllabus, CS16 missive, collaboration policy, and some other helpful documents. You'll get an account with which to access the rest of the website -- including assignments, lecture slides, and your grades -- after the first class on Wednesday, January 25th at 11am. If you have any questions about the course, feel free to contact us. There's a link to the CS16 TAs email alias and the course newsgroup at the top of the page. We'll see you in CIT 368!

-- The CS16 Staff