McGill University - School of Computer Science

COMP202: Introduction to Computing 1


Time and Place

Tuesdays and Thursdays, 2:35-4:25
Macdonald Harrington G-01

Instructor

Anton Dubrau

Office hours:
Tuesdays and Thursdays, 4:30-6:00, in McConnell 234
Contact:
anton DOT dubrau AT mail DOT mcgill DOT ca (please put '202' somewhere in the message subject or body)

TA

Yasmina

Office hours
Mondays and Wednesdays, 13:00-15:00, in Trottier, 3rd floor (3130)
Contact
yasmina DOT schoueri AT mail DOT mcgill DOT ca

Course Objective

The course introduces students to programming, intended for those with little or no prior knowledge in the subject. We will learn the basic building blocks of programming languages, and some of the object-oriented programming paradigm. We will try to view these concepts with an emphasis on solving problems. We will use the java programming language as our specific programming language, but the concepts are applicable to many other languages.

Schedule

The set of notes can be found here. They match the course material for the most part, but do not represent the official material (the material for the final is whatever was covered in class, and the assignments). Use at your own peril.

Date Topic Material/Readings Assignements Tutorials
T
R
04.05
06.05
2
4
Intro
Types/Vars
Chapter 1
Chapter 2

Ass1 out

Hello World Tutorial
T
R
11.05
13.05
6
8
Conditionals
Intro to methods
chapter 3
chapter 4 except 4.8-4.10

Ass1 due, Ass2 out
T
R
18.05
20.05
10
12
Loops, fruitful methods chapter 5
chapter 6

Ass2 due, Ass 3 out
T
R
25.05
27.05
14
16
switch, Strings
Recursion
chapter 7, official String, Scanner, Math documentation, sections 4.8-4.9, 5.8-5.10
Ass 3 due

Midterm Review Tutorial
T
R
01.06
03.06
18
20
in-class Midterm, Netbeans
Intro, Objects
chapter 8, official Point documentation Ass4 out
T
R
08.06
10.06
22
24
Making objects
Arrays
chapter 9, 10, 11, 12 Ass4 due, Ass5 out
File I/O Tutorial
T
R
15.06
17.06
26
28
Generics, Arraylists, Maps, Object Orientation chapter 13, official HashMap, ArrayList, Character documentation, chapter 'X' - on subtyping and inheritance, Decent article on generics (from Wikipedia) Ass5 due, Ass6 out
T

R
22.06

24.06
30

32
Interfaces, javadoc, GUI
-
Ass6 due,
Ass7 out
T 29.06 34 Matlab Final Review Tutorial

Assignments

Assignment 1, due Thursday, May 13th, at the end of the day. SolveSystem.java.

Assignment 2, due Thursday, May 20th, at the end of the day. ConnectThree.java.

Assignment 3, due Thursday, May 27th, at the end of the day. Fractal.java.

Assignment 4, due Tuesday, June 8th, at the end of the day. Interpreter.java.

Assignment 5, due Tuesday, June 15th, at the end of the day. Dna files: 1 2 3 4 5

solutions: DNAString.java, StringUtils.java, Main.java

Assignment 6, due Wednesday, May 23rd, at the end of the day. TranslationScanner.java.

language files: fr-eng-no-contractions.txt

Assignment 7, due Saturday, July 3rd, at the end of the day. data, Image.java.

Tutorial schedule

There will be 4 tutorials. Each one will be held once or twice. The review tutorials are there for your convenience, you are responsible for the others.

Tutorial Time Place Description
Hello World Tutorial Fri, 07.05, 10:00
Fri, 07.05, 12:00
Trottier You will get set up on how to compile and run your first program. We will show you how to set up you lab account. Bring your own laptop if you have one.
Midterm Review Tutorial Fri, 28.05, 12:00 Trottier review and question session for the midterm
File I/O Tutorial Wed, 09.06, 12:00 Trottier you will learn how to read and write files in java, and what exceptions are
Final Review Tutorial Fri, 02.07, 12:00 Trottier review and question session for the final

Textbooks and Software

Course Textbook:

Required Software

Grading and Lateness Policy

The final grade will be determined by one of the schemes:

Assignements Midterm Final
40% 20% 40%
60% 40%
40% 60%

Whichever scheme gives you the highest grade - this will be your final grade. I reserve the right to make the final assignment count more than the other assignments.

There will be a total of 5-7 assignments. There is a late penalty of 10% for the first day late, 100% for all following days.

Assignments and Plagiarism Policy

Official policy: 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 http://www.mcgill.ca/integrity/ for more information).

Assignments should be your own. You may discuss the problems with your peers in person or on WebCT. You may never share actual code with anybody. Since the assignments constitute a large share of your final grade, there is a zero tolerance policy when it comes to plagiarism.

All assignments should have the student's name and ID at the top, and should be well commented. There will be penalties if these are missing. You may submit partially finished homework to receive partial credit. You must document what works and what doesn't in your program. You may be asked to present and explain your program to a TA or an instructor at any time.