CSC225: Algorithms and Data Structures: I
Course Dates
CRN(s): Section A01 CRN: 10774
Term: Fall 2017
Classes Start: 2017-09-06
Classes End: 2017-12-01
Scheduled Meeting Times (M=Mon, T=Tue, W=Wed, R=Thu, F=Fri)
Section: Location: Days of week: Hours of day: Instructor:
A01ECS 123MWR16:30-17:20Wendy Myrvold
B01ECS 258M13:30-14:20
B02ECS 258M14:30-15:20
B03ECS 258M15:30-16:20
B04ECS 258T09:30-10:20
B05ECS 258T10:30-11:20
B06ECS 258F13:30-14:20
B07ECS 258F14:30-15:20
Instructor(s)

Name: Wendy Myrvold
Office: ECS 552
Phone: (250) 472-5783
Email: wendym at cs dot uvic dot ca

Office Hours:Comments
Mon03:30pm-04:15pm 
Mon05:30pm-05:45pmI will stay until all your questions are answered.
Wed03:30pm-04:15pm 
Wed05:30pm-05:45pmI will stay until all your questions are answered.
Thu03:30pm-04:15pm 
Thu05:30pm-05:45pmI will stay until all your questions are answered.

Course Overview

Steps applied when solving a problem using the computer include

  • clearly defining the problem,
  • choosing an algorithm and data structures,
  • developing pseudocode,
  • implementing the algorithm,
  • ensuring correctness using code verification and testing, and
  • evaluating the effectiveness of the solution.

The goal of this class is to illustrate this process and develop these skills starting with some traditional problems, algorithms and data structures. The performance of a program on small inputs (typical in introductory computer science courses) gives no indication of how an algorithm will perform on the large inputs often found in real applications. Paper and pencil techniques are presented for analysing algorithms for time and space requirements on large inputs without requiring the effort of implementation. Algorithms are compared with respect to their worst, average, and best case performances.

The techniques learned in the course are applied to well-studied classical problems including searching, sorting, and some graph theory applications. The study of abstract data types is continued from CSC 115 but the focus changes from that of understanding the data types to being able to make knowledgeable choices as to the best data structures for a particular application.

Topics
  • Algorithm design techniques, time and space complexity, recurrence relations.
  • Basic data structures such as arrays, linked lists, stacks and queues.
  • Sorting- including Maxsort, Mergesort, Heapsort, and Radix Sort. A lower bound for comparison based sorting methods.
  • Data structures for searching including binary search trees, balanced search trees, sets, and hash tables.
  • Data structures for graphs and some simple graph algorithms such as Depth First Search, and Breadth First Search.
  • Topological sort.
  • Algorithm design techniques: greedy, backtracking, divide and conquer.
Course Objectives And Learning Outcomes

Students will learn the skills required for algorithm development for the algorithms and data structures studied in the class, and should be able to apply these same steps to new situations which are similar. The skills developed include improved competence in all steps for the problem solving process:

  • precision in problem specification,
  • understanding the algorithms and data structures presented in class,
  • showing what happens on examples of these,
  • setting up and solving recurrences for time and space complexities,
  • writing recursive algorithms,
  • proving program correctness, and that recurrence solutions are correct by induction,
  • faithful (preserving time and space complexity) translation of pseudocode to working code, and
  • comparisons of alternate solutions to a problem based on time and/or space requirements.
Textbooks
Required: Algorithms, Fourth Edition,
by Robert Sedgewick and Kevin Wayne,
Addison-Wesley, Toronto, 2011.
Other Materials

Most materials will be available from the course web page:
http://webhome.cs.uvic.ca/~wendym/225.html

The remaining materials will be on connex.

Assignments

There will be 5 written assignments worth 3% each. There will be 3 programming assignments worth 5% each. The schedule for the assignments will be available from the course web page. It is to your advantage to start assignments early enough so that you have time to seek help if you encounter difficulties. Hand in your best effort at the beginning of class on the due date. No late assignments.

Students must have an average of at least 50% on the assignments in order to write the final exam.

Students are encouraged to work in study groups. However, final assignment submissions should be generated independently. You are expected to solve the problems yourself. Copying solutions from others, the web, or any other source will be considered a serious academic offense and may result in failure of the course.

Attendance

Students are expected to attend all the classes. In order to write the final exam, students should not miss more than 6 classes with the exception of extreme circumstances with appropriate documentation (for example, a note from a health care provider). Sign legibly (clearly enough so I can read your name) beside your name on the attendance sheet at the beginning of class. If students are late for class then this will count as a missed class. Students who miss more than 6 classes will receive a mark of N in the course.

Exams

There will be one midterm exam worth 20%. The midterm is in class on Thursday Oct. 19, 2017.
The final exam worth 50% will be scheduled by the University. You must pass the final exam to pass the course.

For courses that have final exams, students are strongly advised not to make final plans for travel or employment during the exam period since special arrangements will not be made for examinations that may conflict with such plans.

Grading
Coursework Weight (out of 100%)
Written Assignments 15%
Programming Assignments 15%
Midterm Exam 20%
Final Exam 50%
Grading System

The University of Victoria follows a percentage grading system in which the instructor will submit grades in percentages. The University will use the following Senate approved standardized grading scale to assign letter grades. Both the percentage mark and the letter grade will be recorded on the academic record and transcripts.

F D C C+ B- B B+ A- A A+
0-49 50-59 60-64 65-69 70-72 73-76 77-79 80-84 85-89 90-100
Grades Description
A+, A, A- Exceptional, outstanding or excellent performance. Normally achieved by a minority of students. These grades indicate a student who is self-initiating, exceeds expectation and has an insightful grasp of the subject matter.
B+, B, B- Very good, good or solid performance. Normally achieved by the largest number of students. These grades indicate a good grasp of the subject matter or excellent grasp in one area balanced with satisfactory grasp in the other areas.
C+, C Satisfactory, or minimally satisfactory. These grades indicate a satisfactory performance and knowledge of the subject matter.
D Marginal Performance. A student receiving this grade demonstrated a superficial grasp of the subject matter.
F Unsatisfactory performance. Wrote final examination and completed course requirements; no supplemental.
Posting of Grades

Typically marks for assignments, examinations, and provisional final grades, are made available through conneX, or CourseSpaces where each student will be able to view only their own grades. Sometimes numerical marks/grades may be posted publicly to the entire class. In that case, full student numbers or names will not be included with the posted information.

Course Experience Survey (CES)

I value your feedback on this course. Towards the end of term you will have the opportunity to complete a confidential course experience survey (CES) regarding your learning experience. The survey is vital to providing feedback to me regarding the course and my teaching, as well as to help the department improve the overall program for students in the future. When it is time for you to complete the survey, you will receive an email inviting you to do so. If you do not receive an email invitation, you can go directly to the CES site

You will need to use your UVic NetLink ID to access the survey, which can be done on your laptop, tablet or mobile device. I will remind you closer to the time, but please be thinking about this important activity, especially the following three questions, during the course.

  • What strengths did your instructor demonstrate that helped you learn in this course?
  • Please provide specific suggestions as to how the instructor could have helped you learn more effectively.
  • Please provide specific suggestions as to how this course could be improved.
Csc Student Groups

The Computer Science Course Union (https://onlineacademiccommunity.uvic.ca/cscu/) serves all students who are either in a computer science program or taking a class in computer science. Please sign yourself up on their mailing list if you would like to be informed about their social events and services.

The Engineering Students' Society (ESS) serves all students registered in an Engineering degree program, including Software Engineering (BSEng). For information on ESS activities, events and services navigate to http://www.engr.uvic.ca/~ess .

Course Policies And Guidelines

Late Assignments: No late assignments will be accepted unless prior arrangements have been made with the instructor at least 48 hours before the assignment due date.
Coursework Mark Appeals: All marks must be appealed within 7 days of the mark being posted.
Attendance: We expect students attend all lectures and labs. It is entirely the students' responsibility to recover any information or announcements presented in lectures from which they were absent.
Electronic devices in labs and lectures: No unauthorized audio or video recording of lectures is permitted.
Electronic devices in midterms and exams: Calculators are only permitted for examinations and tests if explicitly authorized and the type of calculator permitted may be restricted. No other electronic devices (e.g. cell phones, pagers, PDA, etc.) may be used during examinations or tests unless explicitly authorized.
Plagiarism: Submitted work may be checked using plagiarism detection software. Cheating, plagiarism and other forms of academic fraud are taken very seriously by both the University and the Department. You should consult the link given below for the UVic policy on academic integrity. Note that the university policy includes the statement that "A largely or fully plagiarized assignment should result in a grade of F for the course."

The Faculty of Engineering Standards for Professional Behaviour are at http://www.uvic.ca/shared/shared%5fengineering/docs/professional-behaviour.pdf
U.Vic guidelines and policy concerning fraud and academic integrity are at http://web.uvic.ca/calendar/undergrad/info/regulations/academic-integrity.html
U. Vic Privacy Policy: If any student has concerns about their private information being stored or accessed outside of Canada, they are required to inform the course instructor about their concerns before the end of second week of classes.

Equality

This course aims to provide equal opportunities and access for all students to enjoy the benefits and privileges of the class and its curriculum and to meet the syllabus requirements. Reasonable and appropriate accommodation will be made available to students with documented disabilities (physical, mental, learning) in order to give them the opportunity to successfully meet the essential requirements of the course. The accommodation will not alter academic standards or learning outcomes, although the student may be allowed to demonstrate knowledge and skills in a different way. It is not necessary for you to reveal your disability and/or confidential medical information to the course instructor. If you believe that you may require accommodation, the course instructor can provide you with information about confidential resources on campus that can assist you in arranging for appropriate accommodation. Alternatively, you may want to contact the Resource Centre for Students with a Disability located in the Campus Services Building.

The University of Victoria is committed to promoting, providing, and protecting a positive, and supportive and safe learning and working environment for all its members.