Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.
This course focuses on standard methods of packaging and storing data (data structures), and building data storage mechanisms that can be reused and re- vised (abstract data types). Emphasis will also be placed on the efficiency of associated algorithms; a problem may be solved by a variety of structures and algorithms, but which is the most efficient solution? The various implementa- tions will develop a familiarity with memory management, including static and dynamic allocation, and pointers.
| Date | Item | |
|---|---|---|
| January | 5 | first day of lectures |
| 10 | first day of tutorials | |
| 18 | last day for changing registration | |
| February | 14–18 | mid-term examination (to be determined) |
| 21–25 | mid-term break: no lectures or labs | |
| March | 15 | last day for withdrawing without penalty |
| April | 4–8 | lab exam during regular lab period |
| 8 | last day of classes | |
| 11–30 | final examination (centrally scheduled) |
There are no required textbooks. However, we provide the following recom- mended references:
Richard F. Gilberg and Behrouz A. Forouzan Data Structures: a Pseu- docode Approach in C, 2ed. , Course Technology (Thompson), 2005.
K. N. King C Programming: a Modern Approach, 2ed. , W. W. Norton & Com- pany, 2008.
It may be surprising that we recommend textbooks using the C programming language for a course employing C++ for programming. As discussed in section 11, we are using the procedural fragment of C++, which very closely resembles C. Hence, students will be writing what are essentially well-formed C programs, employing only the superior maintenance features of C++.
| Section | Times | Location | Instructor | |
|---|---|---|---|---|
| 02 | Mon., Wed., Fri. | 11:30am – 12:20pm | Arts 214 | Dutchyn |
| 04 | Tues., Thurs. | 1:00pm – 2:20pm | Thorvaldson 271 | McQuillan |
Please attend the section you are registered in, as classroom space is lim- ited and registered students have priority seating. If you miss your regularly- scheduled lecture, you can attempt to make up for the missed material by at- tending replacement lectures in the other section. Be aware that the sections will be kept in rough synchronization; but, there is no guarantee that the other section might not have already covered the material you missed.
Tutorials in a laboratory setting are mandatory and include new material not presented in class. Lectures emphasize the data organization concepts using pseudocode; tutorials focus on how to implement, in C++, the concepts studied in lecture. Material presented in tutorial is examinable.
Students will demonstrate their individual mastery of the programming skills shown in their assignments by completing a lab examination near the end of term. The lab examination will consist of writing a simple program during a tutorial session.
There are five tutorial sections, at differing times of the week:
| Section | Times | Location | Leader | |
|---|---|---|---|---|
| T02 | Monday | 4:00pm – 5:20pm | Thorvaldson 311 | Teresa Hume |
| T04 | Tuesday | 4:00pm – 5:20pm | Thorvaldson 311 | Steven Indzeoski |
| T06 | Wednesday | 4:00pm – 5:20pm | Thorvaldson 311 | Muhammad Asaduzzaman |
| T08 | Thursday | 4:00pm – 5:20pm | Thorvaldson 311 | Scott Johnston |
| T10 | Friday | 1:00pm – 2:20pm | Thorvaldson 311 | Marli Rauert |
| Additional Marking | Minhaz Zibran | |||
Most tutorial sections are overbooked (38 students with seating for 33); hence, students with laptops are encouraged to bring them to the first few sessions. Students must attend the section they are registered in.
If you miss a tutorial section, you may try to attend another section during that week; but there is considerable risk you will not be able to find a seat.
Tutorials begin the week of January 10, and conclude with the lab examination during the week of April 4–8.
There will be twelve weeks of lecture, ten tutorial weeks, and one lab exami- nation. The approximate order of topics (timing and topics subject to change) are:
| Date | Lecture Topic | Tutorial Note | |
|---|---|---|---|
| January | 5–7 | Software Design | no tutorial |
| 10–14 | Algorithm Analysis | ||
| 17–21 | Pointers and References | ||
| 24–28 | Memory Management | ||
| January 31–February 4 | Abstract Data Types | ||
| February | 7–11 | Lists | |
| 14–18 | Stacks | ||
| 21–25 | no classes: mid-term break | ||
| February 28–March 4 | Recursion | ||
| March | 7–11 | Queues | |
| 14–18 | Skip Lists and Trees | ||
| 21–25 | Binary Search and Heaps | ||
| March 28–April 1 | Objects | ||
| April | 4–8 | Hashing | lab examination |
There will be six assignments in this course, one approximately every two weeks. Assignments shall consist both of questions that require written answers and questions which require you to write computer programs. All computer pro- grams must be written in C++ and must compile using the GNU C++ com- piler (g++) under Linux: the standard will be the tuxworld.usask.ca cluster of machines.
Submission instructions will be included with each assignment description. Com- puter files,
Assignments will be due Mondays, at 10:00pm.
| Assignment | Date | Note |
|---|---|---|
| 1 | January 24 | |
| 2 | January 31 | |
| 3 | February 14 | |
| 4 | March 7 | |
| 5 | March 21 | two weeks |
| 6 | April 4 | two weeks |
| Date | Examination | Note | |
|---|---|---|---|
| February | 14–18 | mid-term exam | evening multi-session |
| April | 4–8 | lab exam | during lab session |
| April | 10–30 | final exam | centrally scheduled |
The mid-term examination is intended to provide practice for the final exam, and to provide feedback to students regarding their current performance. It will be held in common with both lecture sections, will be scheduled for 90 minutes over a 2 and one-half hour period; student can select their writing times to meet their schedule:
| Time | Note |
|---|---|
| 5:00pm–6:30pm | students cannot leave early (before 6:30pm) |
| 5:30pm–7:00pm | students cannot leave early (before 6:30pm) |
| 6:00pm–7:30pm | students cannot leave early (before 6:30pm) |
The mid-term examination is written, closed-book; only bring water, your student card, and writing instruments.
A student who cannot attend the mid-term test for religious reasons or due to a conflict with another class or examination must inform the instructor at least two weeks prior to the test date so that alternative arrangements can be made.
Students who miss the midterm due to illness or family circumstance will be required to contact their instructor by email on the day of the missed exam, and to complete a signed student affadavit, and will discuss the circumstances with their instructor. The instructor, in consultation with the student, will de- termine how the missed work will be compensated for; one potential alternative is transferring the weight of the midterm onto the final examination.
The lab examination will be held during your last, regularly-scheduled tuto- rial session. You will be given a small-scale programming problem containing variations of the tasks required for assignments. You will have access to your textbooks, notes, and any of your personal course work; but no access to email or other external communication. A sample lab exam is available to assist in preparation.
A student who misses the lab examination due to illness must contact their instructor by email on the day of the missed test explaining the reason for their absence. The student must subsequently provide a signed student affadavit to the course instructor at which time the instructor and the student shall discuss how the missed exam may be made up.
A student who cannot attend the mid-term test for religious reasons must inform the instructor at least two weeks prior to the test date so that alternative arrangements can be made.
The final examination, common to both lecture sections, will be scheduled by central timetabling to occur during the usual final examination interval. It will be three hours long, written, closed-book. Again, bring only water, your student card, and writing instruments.
A student who misses the final examination for any reason, has a conflict with another final examination, or cannot attend the final examination must follow the appropriate procedures outlined in the University of Saskatchewan policy.
Some students, especially those with disabilities, may be entitled to special ac- commodations, primarily for assignment deadlines, and examination times and circumstances. In keeping with Disabled Student Services policy, all students claiming special accommodations
Please note that three important criteria are required to successfully complete this course:
Furthermore, the following University policies must be adhered to:
Intangibles may count in the determination of your grade. Regular attendance and productive classroom participation may slightly ameliorate some weaknesses elsewhere; the converse is also true.
Late submissions will not be accepted.
Extensions on assignments will be granted only by the course instructor. As a general rule, individual requests for extensions on medical or compassionate grounds will only be considered if made prior to the due date of the assign- ment. All extension requests will require suitable documentation. Students with disabilities should review the discussion above.
Assignments will typically be marked by the TA in your tutorial section, al- though some questions may graded by other TAs. Hence, if you feel that an assignment grade is inaccurate, please consult your TA first. They are instructed to review your entire assignment, not just any portion you select. Therefore, if you appeal your grade, the entire piece of work will be re-graded. If you are still unsatisfied, please appeal to your instructor, who will follow the same full review process.
If you are concerned about consistency of grading, i.e. your mark differs from your friend’s mark, and wish to appeal on that basis, then you and your friend must submit both assignments for re-grading: none, one, or both assignments might have grades altered up or down. If both assignments to be reviewed are from a single tutorial section, begin the review by approaching that section’s TA. If the assignments are from different tutorial sections, or if you disagree with the results of the TA’s review, please appeal to one of the instructors.
To understand the grading standards, students are directed to the University Grading System. Part of this reproduced below, for completeness.
>90 Exceptional A superior performance with consistent strong evidence of
80–89 Excellent An excellent performance with strong evidence of
70–79 Good A good performance with evidence of
60–69 Satisfactory A generally satisfactory and intellectually adequate per- formance with evidence of
50–59 Minimal Pass A barely acceptable performance with evidence of
<50 Failure An unacceptable performance.
The course website is on the Department Moodle site, under CMPT 115.
Course announcements regarding assignments and examinations, as well as lists of frequently-asked questions and other information will be communicated to the class members via this website. Each student is responsible for reading this website regularly.
Instructor office hours are
| Instructor | Venue | Times |
|---|---|---|
| McQuillan | Spinks instructor station 3rd floor | T, Th 2:30-3:30 |
| Dutchyn | Thorvaldson 286.10 | TBD |
If these times do not suit, please contact the instructor to schedule a specific appointment. Teaching assistants in the Spinks help centre may offer tutorial assistance, according to that centre’s schedule.
The department provides facilities for students to discuss coursework, via the Moodle course website. Note that the instructors and TAs will often be available on this system. Also, note that this system is archived and reviewed (even for anonymous use) to ensure that academic misconduct does not occur. As a general rule, pseudo-code and abstract discussions are fair, anytime actual code or written solutions are mentioned, the line has been crossed into misconduct. Note that permitting others to use your work constituted academic misconduct also; so, keep your code safe.
Students are warned that the department employs the MOSS system to detect code copying. Effectively, the work required to defeat MOSS exceeds the work involved in the assigments by an order of magnitude (or more).
Note that the University of Saskatchewan has adopted a new Academic Mis- conduct policy. Students are obligated to inform themselves of this policy; as an example, this paragraph suffices to ensure that a student reasonably ought to have known better.
Students are expected to be academically honest in all of their scholarly work, including course assignments and examinations. Academic honesty is defined and described in the Department of Computer Science Statement on Academic Honesty and the University of Saskatchewan Academic Honesty Website.
All students will be asked to make a Declaration of Academic Honesty.
Students using the Moodle system to submit an assignment for the first time will be prompted with a declaration of academic honesty. After reading the declaration, you will be presented with three options: “Agree”, “Disagree”, or “Decide Later”. If you choose “Decide Later” you will be prompted again the next time you log into the Moodle system. Agreement or disagreement applies to all CMPT courses in which you are registered.
For classes that do not use the Moodle system, each student may be re- quested to submit an Online Declaration of Academic Honesty.
All implementation will be done in the procedural fragment of C++. In most respects, this is identical to ansi C, but with superior programmability:
Use of object-oriented features of C++, including cin, <<, cout, >>, will be be penalized with a 25% reduction of the total mark, unless explicitly stated to be allowed.
Instructor (MWF): Ian McQuillan
email mcquillan@cs.usask.ca
web http://www.cs.usask.ca/faculty/mcquillan
office Spinks 423
Instructor (TR): Chris Dutchyn
email mailto:dutchyn@cs.usask.ca
web http://www.cs.usask.ca/faculty/cjd032
office Thorvaldson 286.10
TA (Mon.): Teresa Hume
email mailto:tch562@mail.usask.ca
TA (Tues.): Steven Indzeoski
email mailto:sji969@mail.usask.ca
TA (Wed.): Muhammad Asaduzzaman
email mailto:mua237@mail.usask.ca
TA (Thurs.): Scott Johnston
email mailto:gsj601@mail.usask.ca
TA (Fri.): Marli Rauert
email mailto:mrr628@mail.usask.ca
Additional Marking Minhaz Zibran
email mailto:mfz946@mail.usask.ca