Instructor:  Professor 
Michael Langer 
 Lectures:  Tues, Thurs  10:05-11:25 pm,  BRONF 151
 Office hours: Tues, Thurs 11:30-12:30 pm, or by appointment
 Prerequisites 
The official prerequisite for this course is  COMP 250 Introduction to
  Computer Science .  It would be helpful (but not strictly speaking necessary)
if you have some background 
in basic discrete mathematics such as set theory and logic which  
will be needed to follow some of the proofs and derivations that we cover,  
e.g. a course such as MATH 240, 363, or 235.    
 Course Material 
The specific topics and lecture schedule can be found on the public course web page. 
There is no required textbook.  Lecture slides will be made available in PDF form 
on  the  public course web
  page  along with links to other material including online courses (videos), and exercises 
which will reinforce and broaden your understanding of the material.   
  
 Discussion Board 
Please follow common sense rules and etiquette for 
discussion board postings:  be polite,  avoid texting shorthand 
("ur" instead of "you are", ...), choose a suitable subject line for your posting 
and use multiple postings for multiple subjects, keep your postings brief, etc.   
In addition, to try to maximize the usefulness of the discussion board and to minimize clutter:
-  do not email the instructor or T.A.s privately with technical questions 
about the course material or course itself.  Use the discussion board instead, so that
everyone can benefit from the answer. 
-   If someone helps you out by answering your question that you have posted and you wish to send a 
'thank you' note, please do so with a private email rather than with a discussion board posting.  
-  If you would like your posting to be removed (e.g. because you realized that your question made no sense, et), 
please add a request within the thread and the instructor will take care of it.  
 Policy on collaboration 
We greatly encourage you to discuss the assignment problems with each
other.  However, these discussions should not so far that you are sharing 
code or giving away the answer.  
A rule of thumb is that your discussions should considered public in the 
sense that anything you share with a friend should be sharable with
any student in the class.    
 Evaluation 
Your final grade will be calculated using the following percentage breakdown.
-  Assignments (25 % total).    There will be four assignments (programming in Java).   
You will be given about 10 days to complete each assignment.  
- 
Two 80 minute in-class Midterm Exams  (2 x 12.5% = 25% total).  
Dates and location(s) will be announced on the public web page.  
-  Final Exam (50 %, or 75% -- see below) held during Final Examination Period.   
-   McGill grading system says that 85 or above in a A,  80-84 is an A-,  75-79 is a B+, etc.   For non-integer final grades, I use the following round-off 
policy.  If your final grade is x + [0-.4999] where x is an integer, then it rounds down to x, 
whereas if your grade  is x +[.5-.999] then it rounds up to x+1.  So for example,  74.49 rounds to 74 which is a B and 74.5 rounds up to 75 which is a B+.
The exams are closed book, except for a small number (say max 5) of
doublesided pages of notes.
 No electronic devices are
allowed. 
 If your percentage grade on the Final Exam is
greater than your percentage grade on the two midterms, then your
Final Exam grade will count for 75 % of your final grade and the two
midterms will count for 0%.  This policy allows some flexibility, for
example, if you do not write one or both of the midterms.
Policy on re-grading:  if you wish me to re-grade a question on an exam (or assignment),  I will do so.  
However, to avoid grade ratcheting,  I reserve the right to re-grade other questions on your exam as well.  
 Policy on bonus points:  It is 
helpful to me and to other students if you inform me of
errors in the lecture slides, exercises, or assignments.  For this reason, I
will give a small bonus in your final grade if you point out such errors.
  Policy on final grades:  I realize that there are many factors that determine your grades.   
These include how interested you are, how hard you work and how talented you are, but also whether you have fewer hours to do the work because 
you have a part time job or other assignments/exams around the same time, whether you have a long commute to school, 
whether you were adequately prepared for the course by having done well in the 
prerequisites, what you health situation is, 
what sort of family issues or emergencies you have to deal with, etc.
When I assign your final course grade,  I do not take these factors into
account.  I assign the final grade only based on your assignment and exam scores.  I use a formula and the
same formula applies to everyone.  
That is the only way I can be fair.  (The only exceptions are if you have a medical circumstance that is 
officially reported to McGill, and in this case I need to know beforehand, and the bonus points I mentioned above.)
 McGill policies 
 McGill University values academic integrity. Therefore, all
  students must understand the meaning and consequences of cheating,
  plagiarism and other academic offenses under the Code of Student
  Conduct and Disciplinary Procedures. See  this link  for more 
  information. 
In accord with McGill University's Charter of Students' Rights,
students in this course have the right to submit in English or in
French any written work that is to be graded.