* * * This outline is constantly
updated. Students should consult this page regularly for all
information relevant to this course * * *
Dr. George Karakostas
ITB/218, ext 26132, Mac address: karakos
Office hours: TBA (by email appointment)
Course AssistanceEric Lefort (firstname.lastname@example.org)
Term II, 2017/18
Tu Th Fr, 2:30 - 3:20 PM, Rm TSH B105
Session 1: Mo 2:30 - 3:20 PM, Rm T13 107
Session 2: We 2:30 - 3:20 PM, Rm T13 107
Session 3: Th 3:30 - 4:20PM, Rm BSB 117
SFWR ENG 2DM3
In this course, we will study the
concepts behind the technology of algorithms
and data structures. The algorithmic solution of problems arises
in any Computer Science or Software Engineering (indeed, any engineering or science)
issue. Our goal will be: (i) To appreciate that algorithms and
data structures are a technology
(just as, say, electrical circuit design, or large software
system design); this will be done by introducing performance
measurement in order to measure algorithmic efficiency (in this
course we will limit ourselves to efficient usage of time, and, sometimes, space). (ii) To recognize the
details and nuances of modelling basic problems such as sorting,
searching, graph exploration, etc. that will always show up in a
Computer Scientist's or Software Engineer's career, and take
advantage of these details in order to design better algorithmic
solutions; not all algorithms that solve a problem are good, and
no algorithm is good for all problems. (iii) To practice the art
of reducing a given problem or application to other problems for
which we already have good algorithms.
Outline of Topics (roughly per week)
Student Assessment (Grading)
Policy on delayed assignments: Assignments delivered between the lecture they were due and the following lecture get 50% of total credit. After the following lecture, no credit given.
Policy on collaboration during exams: ABSOLUTELY NO COLLABORATION DURING EXAMS!!!
Required textbook: "Algorithms", 4th
ed., by R. Sedgewick and K. Wayne.
Recommended textbook: "Elements of programming interviews", by A. Aziz, T-H. Lee, A. Prakash
Algorithms visualization tools: There
are many of those. One that can be particularly useful is
the tool developed by David Galles and you can find here.
Other texts: There are many excellent
(text)books that can be used for studying algorithms and data
structures. Here I give only a couple you may find interesting,
but don't feel discouraged from creating your own "algorithmic
library" and finding the books that fit your needs. The subject
of this course is rather challenging, and you will benefit if
you hear more than one person(=book) explain a concept to you.
"Academic dishonesty consists of misrepresentation by
deception or by other
fraudulent means and can result in serious consequences, e.g. the grade of
zero on an assignment, loss of credit with a notation on the transcript
(notation reads: "Grade of F assigned for academic dishonesty"), and/or
suspension or expulsion from the university.
It is your responsibility to understand what constitutes academic
dishonesty. For information on the various kinds of academic dishonesty
please refer to the Academic Integrity Policy, specifically Appendix 3,
located at http://www.mcmaster.ca/senate/academic/ac_integrity.htm
The following illustrates only three forms of academic dishonesty:
1. Plagiarism, e.g. the submission of work that is not one's own or for which other credit has been obtained. (e.g. submitting a copy of someone else's writeup for an assignment)
2. Improper collaboration in group work. (e.g. collaboration between groups in an assignment)
3. Copying or using unauthorized aids in tests and examinations."
"The Faculty of Engineering is concerned with
ensuring an environment that is free of all
discrimination. If there is a problem, individuals are
reminded that they should contact the Department Chair, the
Sexual Harrassment Officer or the Human Rights Consultant, as
the problem occurs."
"The instructor and university reserve the right to modify elements of the course during the term. The university may change the dates and deadlines for any or all courses in extreme circumstances. If either type of modification becomes necessary, reasonable notice and communication with the students will be given with explanation and the opportunity to comment on changes. It is the responsibility of the student to check their McMaster email and course websites weekly during the term and to note any changes."
All assignments are to be submitted to the
dropbox for 2C03 on the first floor of the ITB building.
To read the assignment files, you'll need the Adobe Reader,
which is here.
The lecture slides are a collection of textbook
figures and other material. You can find them at the textbook