PROG20799: Data Structures and Algorithm Development in C


Instructor:Dr. Alex Babanski
Office Hours:By Appointment, via WebEx
Webpage:http://babanski.com/teaching
Contact E-mail:

Course Description

See the Course Outline for more detailed information.

Students develop skills and knowledge of classic computer science data structures and algorithms. They are introduced to various data structures: stacks, queues, linked lists, recursion, trees, hashing, and graphs. In addition, they explore topics such as sorting and searching algorithms, algorithm complexity analysis, and the Big O notation. Students also learn the fundamentals of the C programming language. They gain hands-on experience with these concepts through a series of programming assignments and examples.

Topics covered:

  • Fundamentals of data structures.
  • Arrays and strings.
  • User-defined types.
  • Pointers and dynamic memory management.
  • Linked lists.
  • Stacks and queues.
  • Searching and sorting.
  • Trees.
  • Hashtables.

SLATE will be used heavily in this course. Check SLATE frequently for any important announcements or changes to the class plan, materials, due dates, etc. Lecture notes/links, assignments, and all the other info will be posted on SLATE as well. Students are responsible for reading and following this information.

Course Evaluation

  • Quizzes: 10% (4 @ 2.5% each)
  • Assignments: 30% (4 @ 7.5% each)
  • Tests: 60% (4 @ 15% each)
  • To pass the course, students must achieve a 50% weighted average across the 4 tests and at least 50% overall in the course.

Students participating in the in-class activities or attending the lectures can also receive 0.25% bonus mark, up to 0.5% per week, and up to 5% per course.

Assignments refer to homework that you can take away to complete and then submit on a specified due date. Assignments allow you to demonstrate your knowledge of some of the topics covered in the course.

Quizzes/Exercises/Labs refer to in-class work or "spot-checks". You must be in class for these, no exceptions. See assignment policies regarding missed in-class assignments.

All assignments/exercises/labs/tests/quizzes/exams are individual efforts and academic integrity policies apply. You may only discuss approaches to problems among yourselves. Unauthorized collaboration will be treated as academic dishonesty under the College's Academic Dishonesty Policy. Assignments/Exercises/Labs/Exams that are judged to be the result of academic dishonesty will, for the student's first offence, be given a mark of zero. Please see the Academic Integrity section for more information.

Textbook

There is no required textbook for the course.

Recommended books

  • Malhotra D., Malhotra M., (2019) Data structures and program design using C: a self-teaching introduction. (in Sheridan library).
  • Kalicharan, N. (2015) Learn to Program with C, Apress.
  • Kalicharan, N. (2008) Data Structures In C, CreateSpace (www.createspace.com).
  • Kalicharan, N. (2013) Advanced topics in C: core concepts in data Structures. (in Sheridan library).
  • Dietel, Dietel (2013) C How to Program 7th Edition, Prentice Hall.
  • Goodrich M. T., Tamassia R., (2002) Algorithm Design: Foundations, Analysis and Internet Examples, Wiley.
  • Horton, I., (2007) Beginning C From Novice to Professional, Apress.
  • Horton, I., (2013) Beginning C, 5th Edition, Apress.
  • Sharma, A. K. (2013) Data Structures using C, 2nd Edition, Pearson India. (in Sheridan library).
  • Kamthane, A. (2012) Introduction to data structures in C. (in Sheridan library).
  • More books/resourced will be announced in the class.

Required Software

All Software you will need for this course can be downloaded from the Internet. Details will be discussed in-class in a timely manner.

In-class activity: Exams/Quizzes/Labs

  • All in-class activity (exams, quizzes, labs, etc) must be written on the date specified at the time specified. Any student who has previously self-identified as needing special accommodations for exams/quizzes must contact me to make special arrangements one week prior to the in-class activity. Otherwise it is assumed that you are writing your exam/quiz at the normal date/time/location within the standard allotted time.
  • If you are late for an in-class activity, you will not be given extra time or a make-up.
  • If you are going to miss an in-class activity and aware of that ahead of time (e.g. court date), you must notify me one week before the scheduled date of the in-class activity.
  • If you missed an in-class activity due to valid "unforeseen" circumstances, you need to notify me by e-mail within 48 hours. Valid reasons for missing an in-class activity are:
    • Illness, medical emergency.
    • Death in the family, family emergency.
    • Legal proceedings.
  • In cases of extenuating circumstances, where suitable supporting documentation can be provided, you might make special arrangements to take the exam/quiz at the Assessment Centre on a different date/time.

Exam Procedures

  • All electronic devices (cell phones, tablets, etc) must be turned OFF/SILENT and put in the bag/backpack.
  • All belongings (backpacks, bags, books, papers, hats, coats, jackets, etc) must be put under the table/chair or left at the front of the room.
  • No laptops or calculators are permitted unless indicated by the professor.
  • Students will not be allowed to begin an examination after it has been in progress for 30 minutes or more.
  • You are not permitted to leave an exam during the exam period. Please go to the washroom before the exam, as you will not be allowed to leave until you submit a completed exam.
  • No cheating will be tolerated. This includes talking during the exam, using notes/textbook/etc, looking up answers on an electronic device or hard copy resource, taking photos of exam materials, writing exam questions or answers on anything other than the exam paper, etc.
  • Your student photo I.D. is required at exams to verify your identity.

Assignment Submission and Grading Policies

  • Please review the "School of Applied Computing Academic Procedures for Evaluations" policy: Academic Procedures for Evaluations.
  • In general, students must submit/complete all assignments, in-class activities and projects by the scheduled due date and write all tests on the specified date/time. Exceptions to this procedure will only be made under extraordinary circumstances. Students requesting an exception must provide supporting documentation or discuss their specific situation with their Professor prior to the scheduled evaluation due date. This includes any on-going accommodations such as long-term medical issues.
  • Assignments and projects are due at the time, date, and place indicated in the Course Plan as posted on SLATE. A penalty of 10% of the value of the deliverable will be immediately deducted for late submissions. An additional 10% of the value of the deliverable will be deducted for each subsequent day (includes weekends and holidays) to a maximum of 3 days at which point the assignment or project will be assigned a mark of "zero". Professors will normally not return assignments and/or post solutions until after the 3 day period has lapsed. Any change to a due date will be clearly communicated through SLATE in advance.
  • Exceptions to this procedure will be made under unforeseeable and extraordinary circumstances. Evidence of such circumstances must be provided to the Professor via Sheridan email, in the form of supporting documentation from an appropriate source (e.g. doctor’s medical note, copy of obituary, police report) no later than 24 hours after any missed assignment or project. Students without acceptable documentation or who contact the Professor after the 24 hour deadline will be assigned a mark of "zero" for the assignment or project.
  • In the event that the Professor deems the circumstances appropriate for a student, he/she may waive the daily late penalty for one or more of the 3 days at their discretion. Such a waiver should be documented in an email. Regardless of the number of days for which the late penalty has been waived, a mark of "zero" will still normally be assigned after 3 days.
  • Assignment details will be posted on SLATE. Any changes, updates, and clarifications to assignments will also be posted on SLATE.
  • Submission requirements will be clearly stated for each assignment.
  • Unless otherwise specified, all assignments must be submitted electronically to the Dropbox on SLATE. E-mails with assignments won't be accepted (no exceptions!).
  • Assignment not submitted to the Dropbox before it closes will receive a Zero (0) Mark.
  • Unless you have a valid reason, no extensions will be given for assignments. You need to notify the course instructor if you are going to miss the late submission deadline for any assignment!
  • There is no such thing as a "alternative", "late" or "makeup" assignment in this course.
  • A request for adjustment in an assignment mark must be made within two weeks of the date on which the grade was released. Any requests for mark adjustments after two weeks will not be granted and the mark will be considered final. Any requests for mark adjustments must be submitted via email only and must include specific reasons why you believe you deserve more marks. Even if you request a remark because you disagree with one portion of the mark, your ENTIRE assignment will be remarked again. If more problems are found during remarking, you may end up with a lower mark that you were given initially. If this happens, the new lower mark will be final and you will have no recourse to go back to the original mark.
  • A small portion of the mark may be subjective. For example: names of classes, complexity of the code, unnecessary variables, etc. This part of the mark will not be adjusted after the mark is given.
  • Students are personally responsible for regular backups of their work and maintaining their laptops in working condition. Any software or hardware issues are not valid excuses for submitting work late.
  • Having laptop issues during in-class activity (exam, lab, etc.) does not justify receiving extra time or taking the exam later.
  • Keep copies of all material handed in, as well as the actual graded assignment, to guard against the possibility of lost assignments or errors in recording marks.
  • Accidental submission of something wrong (or empty) or submission to the wrong Dropbox folder is not a valid excuse to submit the correct work later.
  • The marks for all assignments will be posted on SLATE. It is your responsibility to ensure that the marks posted are correct.

Please see In-class activity: Exams/Quizzes/Labs for more information.

Equal Opportunity and Evaluation Policy

The college is committed to academic integrity and has high ethical and moral standards. All students will be treated equally and evaluated using the criteria presented in this course outline and their respective weights. The evaluation criteria are based strictly on actual achievement, not on effort or how hard the student tried.

Claims of an excellent academic history, of attendance in the course components, or of personal issues (family, relationship, financial, etc.) cannot be used to justify a higher grade in the course because they are not criteria for evaluation. There is no extra work available for extra credit or to "make up" another grade. The program does not offer any extra assignments, essays, experiments, or other work of any kind to any student.

The requirement for a higher grade in order to, for example, maintain a scholarship, enter a program, or obtain a higher GPA for various reasons, is not a justifiable reason for increasing your grade. If we increased or "bumped" your grade (i.e. gave you a grade that you did not legitimately earn), it would be unfair to the other students and also a great disservice to the scholarships and programs who are evaluating all students on the basis of their grades.

In case student can't write midterm or final exam for a legitimate reason, the decision of how to re‐weight/assess the missed marks is solely at the discretion of the course instructor. For example, the marks from the missed midterm may be added to the next midterm or final exam, another examination or assignment may be arranged, or other means to replace the missed examination may be found.

It is the College policy that students who choose to write a test or exam deem themselves fit enough to do so and must accept the mark obtained. Claims of medical, physical, or emotional distress after the fact will not be considered. There is no opportunity for a re-weight of the other course components after the test or exam has been written. The reason of "I did not want to write a heavily weighted test" is not a valid reason for writing the test while ill.

The final grade is rounded up as follows: 79.01 - 79.44 is rounded to 79 and 79.45-79.99 is rounder to 80.
The final grade won't be "bumped up", i.e. 79 (B+) won't be bumped to 80 (A).

Sheridan Acceptable Use Policy

Sheridan's Acceptable Use Policy governs the use of computer networks, all computers and other devices connected to those networks, and the resources made available thereby at Sheridan. It applies to all employees, students, alumni and any other users of the information resources at Sheridan.

Use of Laptops

Laptops will be needed for most classes, whether you're writing programs trying in-class activities, or checking notes and documents that are part of the course material. However, it is often tempting to use the laptop for things that have nothing to do with the course, such as social media, watching videos or playing games.

Acceptable Use of Laptop in Class:

  • Typing up notes from the professor's lecture.
  • Working on programming problems demonstrated or assigned by the professor during class.
  • Researching topics being discussed in the current class.

Unacceptable Use of Laptop (or other devices) in Class:

  • Social networking/media (e.g. Facebook, Twitter, Flickr, Pinterest).
  • Chatting with friends/family.
  • Reading news/sports/entertainment/etc. that is not related to the current class.
  • Playing games.
  • Watching videos, listening to music.
  • Texting friends/family/classmates/etc.
  • Anything else not pertaining to the course.

Attendance

  • Attendance is not mandatory, but is highly recommended. The only way to get comfortable with problem solving and programming is to practice! You will be given plenty of opportunities to practice in class.
  • There can be graded in-class activities (assignment(s), lab(s) or quiz(zes)) that must be done in class. The dates are posted on SLATE and indicated in the Weekly calendar, but these dates are subject to change. The date of any graded in-class activity will be finalized the week before.
  • If you do miss a class, it is your responsibility to catch up any missed material. Please do NOT send the course instructor emails "Did I miss anything?". All lectures notes and exercises will be posted on SLATE. Please check weekly content, do the exercises, and only then email the course instructor if you have any questions.
  • Although no direct marks are assigned for attendance, it may be used as criteria for border-line cases to determine your interest in the course and the effort you made to succeed in the course. It may also be used to assign the bonus mark(s).

Reading lecture notes is not a substitute for attending lectures.

Behaviour

  • Please be polite and consider others.
  • If you distract or disturb others, you may be asked to leave the room. If you refuse, you will be escorted out by security.
  • No side conversations during lecture/theory portions of the class.
  • There will be plenty of time during class where you can discuss material with your classmates. If there is something you want to discuss about the content/material currently on topic, please let the course instructor know. On-topic class discussions and questions benefit many students.

If you arrive late to class:

  • Please take your seat quietly.
  • Wait until a break or in-class exercises time to turn on your computer.
  • It is your responsibility to catch up on any missed material.

E-mails / Questions via E-mail

You are encouraged to contact the course instructor via SLATE email, with brief, appropriate questions regarding lecture material or clarification of assignments. However, please check the course website and Discussions section on SLATE for answers to frequently asked questions, or to see if the information you are looking for is already there.

Your e-mails will be ignored if you don't follow these simple rules:

  • You must send emails only from your SLATE e-mail (i.e., your email address @sheridan.desire2learn.com).
  • E-mail subject must include the course/section number.
  • Your e-mail must include your first name, your last name and your student ID.

All emails will be answered in 72 hours. Please send emails only in the plain-text format.

Academic Honesty

Scholastic offences are taken seriously. You are responsible for reading and respecting the Sheridan's Student Code of Conduct and Academic Integrity policy. Unless otherwise specified, all assigned work is to be done individually. Specifically, this means that the following activities are classified as "cheating" and can result in a penalty:

  • Copying work (in whole or in part) from another person, even if that person is not in your class.
  • Submitting work (in whole or in part) that is not your own. This includes work that you found online, work that was completed by someone else, including any portion of work that you did not do yourself.
  • Allowing other students to copy your work (in whole or in part) or giving your work to other students with the purpose of allowing them to submit any part of that work as their own.
  • Discussing your work with other students or giving any "hints" with the purpose of allowing them to submit any work as their own.

See the Sheridan's official Academic Honesty Policy for more detailed information about what is allowed and what is not allowed. Consult this document if you are ever unsure, or ask me! It is better to be sure than to be penalized for cheating!

Penalties for Academic Dishonesty

Note that, according to Sheridan's official Academic Honesty Policy, there are different "sanctions", or penalties for academic dishonesty, ranging from a grade of 0 on the evaluation item in question to expulsion from the college. In general, first-time offenses are the lesser penalties and multiple offenses result in the more severe penalties. The following are typical for a first-time offense:

  • Cheating on an assignment/exercise/project/test/exam/quiz/etc results in a 0 grade for the assigned work and a permanent note on your college record.
  • If another student was involved (e.g. you copied some/all of their work or you allowed another student to copy some/all of your work), the other student(s) also receive a 0 grade for the assigned work and a permanent note on their college record.

ALS Accommodations

Sheridan offers many services and accommodations for students with disabilities, including Learning Strategies Training and Assistive Technology. Students who are eligible to receive accommodations should meet with Accessible Learning Services (ALS) staff to determine the most appropriate accommodations and services available to meet individual needs.

Students with a documented accommodation from Accessible Learning Services must self-identify in the first two weeks of classes. Please bring or e-mail a copy of your accommodation form and schedule a meeting to discuss your accommodation and the course policies that apply to you.

Students with an accommodation must request an extension on each assignment by email. The request must be made after assignment is posted and at least 48 hour in advance of the due date. The request must include a plan to complete the work and the anticipated submission date (within a few days to one week of the original due date).

For Quizzes/Tests/Exams ("Exams") students with an accommodation must provide the Exam Request Form (ERF) via email for each exam. The request must be sent after the Exam is set and announcement is published on SLATE. The ERF must have student name, ID, accommodation information and clearly state when/how the student wants to take the exam. In case you don't want to do the exam at the Assessment center, you must still send an email with accommodation information for each exam that requires extra time.

Students who do not self-identify and do not request an accommodation for each Exam or Assignment do not receive accommodations.

For further information please visit Accessible Learning Services.

Disclaimer

This syllabus is subject to change based on the needs of the class. Any changes will be announced in class.


Tuesday January 18th, 2022.
© Alex Babanski