CPSC 221: Basic Algorithms and Data Structures
2014 Winter Term 2
Administration


Home Learning Goals Schedule Administration Readings Lab/Lecture Notes Assignments Computing

Description: Design and analysis of basic algorithms and data structures; algorithm analysis methods, searching and sorting algorithms, basic data structures, graphs and concurrency.

For information on prerquisites, corequisites, and the like, please see the UBC calendar entry for CPSC 221.

Texts: See the Readings webpage.

Office hours: See the Schedule webpage.

Note: Office hours are your time. You needn't make an appointment or wait outside the door. Come right in and take part! (If you want to meet privately with one of us, however, please let us know.)

Labs:

Labs are required and marked. Lab write_ups may contain a Pre-Lab section, which must be completed before the lab session. You may also work on labs at home, get help during scheduled Office Hours, or post questions on the course discussion boards. You should aim to finish your work and get it marked within the 2 hour session. However, if necessary, you may continue to work on it over the following week, as long as you have it completed no later than the beginning of your next lab session.

Getting your work marked if you are absent: If you must miss your regular Lab session, an extension (for any work that was due) until your next scheduled session (normally one week) can likely be arranged. You cannot get your work marked in a session later in the week; it can only be marked in your regular session. Email your request to the Lead TA (Lawrence Cahoon at h9m6@ugrad.cs.ubc.ca) in advance, or if the absence is unexpected, within 24 hours of the missed session. Extensions of more than one session are not available.
Getting help with the current lab: You can get help with your work on the current lab at Office Hours, by posting questions on the course discussion boards, or possibly at one of the remaining lab sessions (See the course Calendar at Schedule to determine which Lab sessions remain, and what Office Hours are being held before your next lab session.) If you want to attend one of the remaining Lab sessions, then you can, as long as there is space in that session. Email your request to the Lead TA at the above address.

Labs will introduce C++; however, as 2nd year students, much of the responsibility of learning the new language will fall on you. If you need C++ programming resources, check the textbook section of the website and make use the course discussion boards.

Evaluation:

Your final course mark will be based roughly on the following breakdown. The staff reserves the right to change this scheme (but do not anticipate using that right).

Labs 10%
Theory Assns/Quizzes15% (all equally weighted)
Programming Projects15% (all equally weighted)
Midterm Exam20%
Final Exam35%
PeerWise5%
Piazza2% (Bonus)

Updated on March 26
To give you more incentive to study for the final, we're making the following change to the marking scheme, which provides a great opportunity to improve your final grade! So in the new marking scheme:

Midterm Exam10%
Midterm or Final Exam (whichever you did best on)10%

To pass the course, you must obtain a 50% overall mark and, in addition, you must pass the final exam. Students who fail the final exam will receive as their course grade the minimum of their normally computed grade and 45%.

Approximate Topic Schedule:

See Readings on the Schedule webpage.

Communication:

Most electronic communication should go to Piazza. (You are expected to read the Announcements daily!)

Personal questions or those that might violate academic conduct standards if posted should go to your Instructor or to the individual staff member you wish to contact (see the home page for email addresses).

Assignments:

There will be roughly three programming projects and three written assignments during the term.

Exams: There will be one midterm and one final exam.

Academic Conduct:

Collaboration enhances the learning experience. We encourage collaboration in various ways throughout the course, subject to the rules stated here:

Violation of any of these rules constitutes academic misconduct and is subject to penalties ranging from a grade of zero on a particular assessment to indefinite suspension from the University. If you are uncertain as to what is or is not reasonable collaboration, please contact the instructor. If you are having problems understanding or keeping up with the material, please contact your instructor or TA to discuss how we can fix the problem. Don't cheat!

 

cs221@ugrad.cs.ubc.ca
Last Modified: Sun 22 Feb, 2015