Carleton
University
Department of Systems and Computer Engineering
SYSC
2002 Data
Structures and Algorithms
Winter 2011
Lecturer and Course Details
Section D: Dr. Lynn Marshall, Room ME4230, lynnmar@sce.carleton.ca
Office Hours: Wed 10:15-11:15am and by appointment
Lectures: Mon/Wed 11:35am-12:55pm ME4499
Labs
Lab Tests
Lab tests will be held during regular lab periods approximately bi-weekly (see "term at a glance" below for details):
- Lab Section D1: Mon 3:35-5:15pm
- Lab Section D2: Tue 9:35-11:15am
All lab tests are in ME4390. Note that these labs run
only on the dates that there are lab tests.
Open Labs
On the weeks when assignments are due (see "term at a glance" below), there will be optional open labs on Monday and Wednesday where you can meet with a TA.
See the Full Lab Schedule (below) for details.
Full Lab Schedule (added Jan 5th; changed Jan 10th: open labs updated; changed Feb 2nd: open labs updated)
Course Material
Course
Outline
Draft Week by Week Plan
Draft Term at a Glance (updated Jan 5th: open lab dates added; changed Jan 10th: open labs updated)
Assignments and Labs
Examples
Attendance
Term Marks
News and Announcements
- April 29th: Just so you are aware, I submitted the marks on Apr 14th. They are still awaiting approval by the Dean. I apologize for the delay. Please do not ask me for your marks, as I am *not* permitted to give them out!
- April 12th: The sample solution to assignment #11 has been posted -- sorry for the delay.
- April 4th: The final clicker attendance bonus marks, plus the term marks have been posted above. Any discrepancies, let me know.
- April 3rd: Students are reminded that, as per the course outline, if you got less than 40% on the midterm (i.e. less than 14 as the midterm was marked out of 35) *and* you miss the final exam, you will not be permitted to write the deferred exam, but will get FND.
- April 2nd: The marks have been released for assignment #11.
- March 30th: The marks have been released for lab test #5.
- March 30th: My pre-exam office hours will be:
- Mon Apr 11th: 10am-noon
- Tue Apr 12th: 9am-11am
Of course, you may also ask questions via e-mail.
- March 30th: Both versions of lab test #5 and their solutions have been posted.
- March 28th: The final exam (9am-noon Wed Apr 13th) will be held in AT301.
- March 25th: The sample solution for assignment #10 has been posted, and the marks have been released.
- March 23rd: Just a reminder that the end of today's lecture is the deadline for submitting midterms for remarking. (Midterms submitted for remarking will be returned in next Monday's lecture.)
- March 23rd: The attendance spreadsheet (above) has been updated with lectures up to and including Mon Mar 21st.
- March 21st: The only chapter of the notes that we will not cover is Chapter 15: Trees. All other chapters will be covered on the final exam.
- March 18th: The marks have been released for lab test #4 for D2 (Tuesday).
- March 17th: The marks have been released for assignment #9.
- March 17th: The marks have been released for lab test #4 for D1 (Monday).
- March 17th: A sample solution to assignment #9 has been posted.
- March 15th: Some sample final exam questions, important notes on the final exam, and the final exam crib sheet have been posted on the "Assignments and Labs" web page. We will go over the crib sheet and notes nearer the end of term, and we will cover some of the sample questions in class.
- March 15th: A sample lab test #5 has been posted. We'll go over this in class on Wed Mar 23rd. You are encouraged to try it on your own before then. Lab test #5 (the last one!) will be on Mon Mar 28th / Tue Mar 29th. It will involve adding methods to the list class. It will be out of 15, but we will pretend the mark is out of 10. In other words, you can get up to 15/10 on lab test #5, and thus up to 22.5/20 on the lab test portion of the course.
- March 15th: Assignment #11 (the last one!) has been posted.
- March 15th: The midterms will be returned in class on Wed Mar 16th. The sample solutions have been posted on the "Assignments and Labs" web page. If you wish to submit your midterm for remarking, please note the following:
- The deadline is the end of the lecture on Wed Mar 23rd (no exceptions!).
- The remarking will be done by me.
- On the first page of your test (or on a sheet attached to the first page), you must explain in detail, what question(s) you want remarked and *why*, with reference to the sample solutions.
- Tests that do not have a clear concise explanation of the remarking request will not be remarked.
- Note that if you submit your midterm for remarking, I reserve the right to examine the entire exam in detail.
- Your mark could go up, stay the same, or go down!
- All midterms submitted for remarking will be returned in class on Mon Mar 28th (not before!).
- March 15th: Both version of lab test #4 and the solutions have been posted.
- March 14th: Assignment #10 has been posted.
- March 14th: A sample exe has been posted for assignment #9. Note that the order of the items in our database doesn't matter, and with a linked list, it's easiest to add at the beginning (while with an array, it's easiest to add at the end).
- March 14th: The marks have been released for assignment #8.
- March 14th: The midterms will definitely be returned in class on Wed Mar 16th. Sorry for the delay!
- March 10th: Skeleton files to help you get started on assignment #9 have been posted.
- March 10th: A sample solution to assignment #8 has been posted.
- March 9th: I realized that the sample exe for assignment #8 may be helpful as it shows when the destructor is invoked, as well as how the copy constructor and operator= behave, so it is posted.
- March 8th: The midterms will probably be returned in class on Mon Mar 14th. (Definitely not on Wed Mar 9th.)
- March 8th: Assignment #9 has been posted.
- March 3rd: The marks have been released for assignment #7, and the sample solution has been posted.
- March 1st: A sample lab test #4 has been posted. Lab test #4 will be on Mar 14-15th. We will go through the sample lab test in class on Wed Mar 9th.
- March 1st: The attendance (above) has been updated to include all lectures up to and including Feb 28th.
- February 28th: Assignment #8 has been posted.
- February 23rd: The final exam for SYSC 2002 D will be held Wed Apr 13th 9am to noon (location to be announced nearer the date of the exam).
- February 21st: The marks have been released for assignment #6. Students are strongly encouraged to use the sample solution for assignment #6 as their starting point for assignment #7 to avoid inconsistencies between their files. Here are the main problems that students had with assignment #6.
- Using the Customer methods in the CustomerDB class,
- Passing objects by reference, and using const,
- Implementing the Customer constructor.
Please review the sample solution to make sure that you understand how the above should have been done. We can also discuss in the next lecture if you have any questions.
- February 21st: The sample solution has been posted for assignment #6.
- February 17th: The marks have been released for lab test #3. The tests were, in general, very well done.
- February 16th: Have you had an outstanding TA in this course or any other taught by the Department of Systems and Computer Engineering? If so, please nominate your TA for an SCE Excellence award. The deadline for nominations is Apr 1st, and the form is very easy to complete.
- February 16th: Assignment #6 has been updated to say that the default id is 10 (not 100) to make it consistent with the skeleton files. Both 10 and 100 will be accepted as valid in your assignment. The assignment #6 sample exe was also updated.
- February 16th: The solution for the exercise at the end of Chapter 9 (adding removeAll to IntBag) has been added to the examples web page.
- February 15th: The questions and solutions for lab test #3 have been posted.
- February 14th: The solutions for assignments #4 and #5 have been updated to ensure that all Dates and String2002s are passed by reference -- my bad!
- February 11th: The written midterm will be held during regular class time on Wed Mar 2nd (the week after Reading Week). It will cover all material up to and including chapter 8, plus the first 6 assignments, and first 3 lab tests. A sample midterm and the crib sheet have been posted on the "Assignments and Labs" web page under "Midterm and Final Exams". We will go over the sample midterm in class on Wed Feb 16th.
- February 11th: The marks have been released for assignment #5. Please note the following:
- As the "const" notation is relatively new to students, a mark was deducted for omitting this only if it was omitted twice or more. In future assignments and lab tests, you will lose marks for omitting it even once!
- Normally, programs that do not compile receive a maximum of 1/4. In this case, if your compile error was related to neglecting to change the method names and passing in the object as a parameter, you received a maximum of 2/4. In future assignments, it will be a maximum of 1/4 for not following the instructions!
- February 10th: Assignment #7 has been posted (due after reading week).
- February 10th: The skeleton files for the Customer class have been added for assignment #6.
- February 10th: The sample solution has been posted for assignment #5.
- February 9th: The two summary slides for chapter 8 have been added to the examples web page (link above).
- February 7th: The main program for chapter 5, exercise 2 has been added to the examples web page (link above).
- February 7th: The updated clicker attendance, including the last two weeks, has been added above.
- February 5th: A sample lab test #3 has been posted. It's recommended that you try this on your own before we go over it in class on Wed Feb 9th.
- February 5th: Assignment #6 has been posted. The skeleton files that you may use as your starting point will be added after the due date of assignment #5.
- February 4th: The marks have been released for lab test #2 for D2 (Tue 9:30am). Students in both sections are reminded that the easiest way to compare two dates is to use "compareTo". It's only necessary to convert each to day, month, and year, if you need to compare (for example) just the months. See the sample solutions posted.
- February 4th: The marks have been released for lab test #2 for D1 (Mon 3:30pm).
- February 4th: The marks have been released for assignment #4. We'll talk about getFirstCustomerName in Monday's lecture, as that's where many of you had difficulties.
- February 4th: The skeleton files for assignment #5 have been posted.
- February 4th: A sample solution to assignment #4 has been posted.
- February 2nd: A clarification has been added to assignment #4: names cannot contain spaces (nor can the string you append to the name).
- February 2nd: Both versions of lab test #2 and their sample solutions have been posted.
- February 2nd: Effective today, Marry's open lab will be Wed 5-7pm, instead of 6:15-7:15pm and 9-10pm. The lab will continue to be in ME4377. Norman's open lab is back to 1:30-3:30pm for this week (and future weeks, also).
- January 31st: Two bags were left at the front of ME4390 after today's lab test. They were turned in to the lost and found in ME4379 (inside ME4377).
- January 31st: Assignment #5 has been posted. The skeleton files will be added after the due date of assignment #4.
- January 27th: The marks have been released for assignment #3. They were generally well done. Common problems included:
- omitting the studentDB struct
- getting mixed up between what goes in studentDB.h and studentDB.cpp
- not including any/many comments -- these are especially critical in studentDB.h!
- January 27th: a4main.cpp for assignment #4 has been posted.
- January 27th: The sample solution for assignment #3 has been posted.
- January 24th: This week only (Wed Jan 26th), the first open lab with Norman will be from 2:00-4:00pm (not 1:30-3:30pm).
- January 23rd: A sample lab test #2 has been posted. We will go over this in class on Wed Jan 26th. It's recommended that you try it on your own before then.
- January 23rd: The sample solution plus the test function used by Norman, the TA who marked assignment #2, have been posted. The marks have been released. Note that there were some common errors:
- checking if num==MAXCUST num times instead of just once
- storing the customers in order by customer number -- this is a lot more work and is not required (interestingly, an assignment last term required doing that...)
- having a special case when adding the first customer (not needed)
- neglecting to check if the new number was already present when changing a customer number
- January 23rd: Assignment #4 has been posted.
- January 19th: The marks have been released for the first lab test. The average mark was 9/10. If your mark was considerably lower, you have some catching up to do! Please come and talk to me if you are in this category -- I am happy to make some suggestions. One common problem that Marry noticed was that several students wrote two if statements where one if-else would have been easier (for you) and more efficient (for the computer):
if (y>0)
    x = true;
if (y<=0)
    x = false;
is "ugly", and instead should be written as:
if (y>0)
    x = true;
else
    x = false;
- January 19th: The bonus mark for those who sent me their clicker Device IDs by Jan 11th, plus the attendance for the last two weeks is shown in the "Attendance" spreadsheet above. There are a total of three additional bonus marks for attendance (approximately 1/7th of a mark per class), so there are still lots of bonus marks left to earn!
- January 19th: The open labs for today (and the rest of the term) will be in ME4377.
- January 19th: The files from lab test #1, plus the sample solutions have been posted.
- January 15th: Assignment #3 has been posted.
- January 15th: The marks have been released for assignment #1. Note that a key part of this assignment was writing the correct function. A mark was deducted if you did not do this (even if the program results were correct). This time we were lenient about program indentation and comments, but marks will be deducted in the future if your programs are not well formatted and commented.
- January 13th: A sample solution has been posted for assignment #1.
- January 13th: When e-mailing me, you must use your connect account. Please put "SYSC 2002" plus a bit more information on your question in the subject line. And include your name and student number in the message. As I'm also teaching ECOR 1606 this will be very helpful!
- January 12th: As ME4377 is not quite ready now (11:20am), it's looking very likely that today's open labs will be moved as per the next note (below).
- January 10th: It's possible that ME4377 won't be set up in time for our open labs this Wed Jan 12th. If it's not ready, we'll move the 1:30-3:30pm lab to MC5030 and the evening labs to ME4390. Check ME4377 first!
- January 10th: Lab test #1 will be held on Mon Jan 17th (D1) and Tue Jan 18th (D2). It will involve writing functions and using arrays (chapters 1 and 2 of the notes). You need to be sure you understand both call by value and call by reference for paramete passing.
- January 10th: Just a reminder that the deadline to get your bonus mark for having a clicker is midnight Tue Jan 11th. Unless I already have your Device ID, you need to send it to me by e-mail by then. Starting with the lecture on Wed Jan 12th, we will be taking "clicker" attendance. There will be an additional 3 bonus marks for attendance. Thus there will be 21 classes where we take attendance. If you were to attend all 21, you would get 3 bonus marks (plus 1 for having your clicker by midnight Jan 11th). If you attended 14, you would get 2 bonus marks, etc.
- January 10th: UPDATE!!: The optional open labs (for help with assignments) will be held in ME4377 on Wednesdays starting Wed Jan 12th as follows:
- 1:30-3:30pm: Norman
- 6:15-7:15pm: Marry
- 9:00-10:00pm: Marry
Just a reminder that the first lab test will be held Mon Jan 17th or Tue Jan 18th depending on your lab section.
The full lab schedule with all the lab tests and open labs and their dates has been posted with the lab information near the top of this web page.
- January 6th: Assignment #2 has been posted. (Note that we have not yet covered all the material that you need to complete this assignment.)
- January 4th: To get your first "clicker" bonus mark, please e-mail me your Device ID by midnight Tue Jan 11th.
- January 4th: A clarification has been added to assignment #1.
- January 3rd: The link to the ECOR 1606 style guide (on the "Assignments and Labs" web page) has been fixed.
- January 3rd: The SYSC 2002 notes are now available from the IEEE office. Please try to get your notes before Wednesday's lecture (details below under December 30th).
- January 3rd: The submit program is now available and ready to use for this term. Please register to create your submit account at your earliest convenience.
- January 3rd: Assignment #1 has been posted. I have several more assignments ready to go, so just e-mail me if you want to get ahead and you'd like another one posted.
- January 3rd: Note that while the submit program is already available for download, it hasn't yet been reset for Winter 2011. Please hold off on registering until I let you know that it's ready for this term.
- December 30th: Notes for this course are available from the IEEE office (ME4238). The cost is $13 for IEEE members and $15 for non-members (cash only!).
First come, first served!
- December 28th: We will be using TurningPoint clickers during this course. I have some available for rent. They can also be bought from Haven Books and the University bookstore. Alternatively, if you have a laptop (with internet access in the classroom), iPhone or Blackberry, you can subscribe to TurningPoint's ResponseWare as follows: You need to purchase a 1-year subscription for US$19 (payable by PayPal) at http://store.turningtechnologies.com. Although it's a US site, it accepts Canadian e-mail addresses. Your mailing address will end up with a US state in it, but don't worry about that (as nothing is shipped). Just follow the instructions when you receive the e-mail confirmation of your subscription.
- December 28th: Links to the course outline, week by week plan, and term at a glance have been added.
Updated April 29th, 2011