CS110: Programming and Problem Solving

advertisement
CS340-001: Advanced Data Structures and Algorithm Design
Winter 2016 (201610)
Instructor
Robert J. Hilderman
Office: CW308.23, 3rd Floor, College West
Voice: (306) 585-4061
Fax: (306) 585-4745
e-Mail: robert.hilderman@uregina.ca
WWW: http://www.cs.uregina.ca/~hilder
Lectures
Location: CL410, 4th Floor, Classroom Building
Time: MWF 3:30 – 4:20 PM
Office Hours
Location: CW308.23, 3rd Floor, College West
Time: MWF 10:30 – 11:30 AM (or by appointment)
Prerequisites
CS210: Data Structures and Abstractions
Text
Goodrich, M.T. and Tamassia, R. (2014). Algorithm Design and Applications.
John Wiley & Sons, Inc.
Grade Distribution



Assignments:
Midterm Exam:
Final Exam:
Total:
35%
15%
50%
100%
Note 1: The assignments will be weighted depending on the degree of difficulty.
Note 2: The midterm exam is scheduled for 50 minutes.
Note 3: The final exam is scheduled for 180 minutes.
Note 4: You must pass the final exam to pass the course. If you fail the final
exam, the final grade you receive for the course will be 40%.
Note 5: At the instructor’s discretion, the final grade may be adjusted up to +/5%.
Policies and Procedures









The material discussed in class forms the basis of topics that will be covered
on assignments and exams. Feel free to stop the instructor at any time if you
need to ask a question or make a comment. If the instructor can’t answer a
question when asked, he’ll try to have an answer by the next lecture.
To facilitate a learning environment that is respectful to the instructor and
other students, and one that is free from distractions, please make every effort
to arrive on time. Only use cell phones, tablets, and laptop computers during
lectures for work related to CS340, but of course, how you actually use your
time in class is up to you. So, if you insist on activities that are not related to
CS340, your instructor asks that you at least sit at the back of the room. Click
here for something you might find interesting.
Sleeping is allowed, but snoring isn’t. If you need to sleep in class, the
instructor asks that you at least sit at the back of the room.
Conversation between students is generally not necessary during lectures.
Occasionally, the instructor may need to send out an email to the whole class.
Any email to the whole class will go to the email address associated with your
Hercules account (of the form <your_name>@cs.uregina.ca or
<your_name>@uregina.ca). However, the email address that you provide
in an email to the instructor or in documents submitted for grading may be
different, if you prefer. In that way, if the instructor or marker needs to discuss
some aspect of your assignment with you, the email address that you provide
will be used to contact you.
Solutions to the programming problems on the assignments and exams should
be written in ISO/ANSI/standard C/C++. Programs of this kind are portable
and can be compiled and executed on Hercules (you should all have an
account on Hercules), on the Linux machines in CL115, on Apple
Macintoshes using the xCode environment in OS X, and on Windows
machines using Visual C++ with Microsoft language extensions turned off.
Last time I checked, you could turn off Microsoft language extensions using
the following steps: (1) open your project in Visual C++, (2) click on
Project, (3) scroll down to your project name Properties and click on
it, (4) double click on Configuration Properties, (5) double click on
C/C++, (6) click on Language, (7) set Disable Language
Extensions = Yes, and (8) click the OK button.
Program style, formatting, and documentation of program source code should
conform to some standard. If you have never developed or adopted a standard
for your programs, develop or adopt one and stick to it.
Screen shots are a terrible method for capturing the output from a program
and will not be accepted for credit. See the instructions for creating a C++
script file on the CS340 home page.
The due date and time of assignments will be specified on the assignment
sheet. Assignments must be submitted to UR Courses by 3:20 PM on the date






due, unless otherwise indicated. Late assignments will be accepted, but there
will be penalties. Specifically, if an assignment is not submitted by 3:20 PM
on the date due, the maximum possible grade will be reduced to 90%, and for
each successive day the assignment is not submitted by 3:20 PM, the
maximum possible grade will be reduced to 80% (for one day overdue), then
70% (for two days due), etc.
If you are unable to complete an assignment due to a health problem, inform
the instructor as soon as is practical. Under some circumstances, a medical
certificate may be required to confirm that you were unfit to complete the
assignment. For other rare or unusual circumstances, some consideration may
be given at the discretion of the instructor.
Partial marks may be awarded for an incomplete assignment. For example, if
you do not have solutions for all the assigned problems, submit solutions for
those that you did complete. For an incomplete assignment where some
components in the solution to a programming problem do not work according
to the required specifications, include a written description of those
components and describe, in detail, the problems encountered and solutions
attempted. Your grade will be reduced due to non-working components, but
only by some percentage associated with those components.
Keep all graded material that is returned to you and do not alter it in any way.
If you suspect an error has been made in recording your grade, you may have
to provide the instructor with the graded material in order for the error to be
resolved.
If you have any issues with graded material, provide a detailed, written
explanation of the problem and submit it to the instructor.
You are required to work alone when completing assignments. While
discussion of course material and assignments between you and other students
is highly encouraged, as it relates to assignments, it should be of a general
nature only. Certainly, the sharing of algorithms, program code, or other
written material that is submitted for grading is not allowed. For example,
copying the solution (or part of a solution) to a problem on an assignment or
exam from someone else is academic misconduct. And knowingly allowing a
solution to be copied is also academic misconduct. Generally, submitting any
material for grading that you did not create is not allowed. You are
encouraged to read Section 5.14 of the 2015-2016 Undergraduate Calendar,
where you will find a section on academic misconduct. You are encouraged to
report any suspected incidents of academic misconduct to the instructor. All
reports will be held in strict confidence.
Your continued attendance implies that you have read, understand, and will
comply with, the policies and procedures described above.
Tentative Lecture Topics (in no particular order)



Depth- and breadth-first traversal algorithms
String algorithms
Graph algorithms









Brute-force algorithms
Greedy algorithms
Divide-and-conquer algorithms
Backtracking algorithms
Branch-and-bound algorithms
Dynamic programming algorithms
Randomized algorithms
Parallel algorithms
Complexity theory
Important Dates


TBA: Midterm Exam
Location: CL410
Time: 3:30 – 4:20 PM
Wednesday, April 20, 2016: Final Exam
Location: TBA
Time: 2:00 – 5:00 PM
Other Dates

Tuesday, January 19, 2016: Add/No-Record Drop Deadline
Note: Last day for adding a course and dropping a course without it showing
on your transcript record
 Monday, February 15, 2016: Statutory Holiday
Note: No lectures, labs, or office hours
 Tuesday, February 16 to Friday, February 19, 2016: Winter Break
Note: No lectures, labs, or office hours
 Tuesday, March 15, 2016: Grade-of-W Drop Deadline
Note: Last day for dropping a course and showing a withdrawal on your
transcript record
 Friday, March 25, 2016: Good Friday
Note: No lectures, labs, or office hours
 Tuesday, April 12, 2016: Last Day of Lectures
Note: The above dates are unofficial. Please refer to the Section 1.2.1 of the
2015-2016 Undergraduate Calendar for the official record of key dates and
deadlines.
Download