Tuesdays and Thursdays, 2:35-4:25
Macdonald Harrington G-01
Anton Dubrau
Yasmina
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.
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 |
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.
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 |
Course Textbook:
Required Software
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.
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.