CS 2ME3: Software Design Fundamentals
- Apr 16: Unclaimed assignments and tests (and in particular
assignment 2) can be picked up from the Drop-In Centre, in ITB-101.
The final exam has been posted below.
- Apr 3: The solutions to assignment 2 have been posted below.
- Mar 23: Amir Tavasoli is going to conduct a tutorial on Thursday
March 26, during the usual lecture time, in the usual lecture room.
Amir will do the following:
- Collect Assignment 2 (please hand in a paper version of Part B
to Amir at the beginning of the class, and send an electronic version
of Part A by email to Amir before the class).
- Marking concerns for Test 2.
- General questions about the material.
- Mar 16: Chapter 7, Online Algorithms, the last part of
the course, has been posted below. Test 2 has also been posted below.
- Mar 13: Cryptography is a huge and fascinating field; we just
saw a very small part of it. Here are some resources in case you are
interested in learning more on your own.
- The site
contains a free implementation of public key cryptography. There is
ample documentation, and you can install the package and see how it
- For a light reading about the history of cryptography, I
recommend Simon Singh's The Code Book: The evolution of secrecy
from Mary, Queen of Scots, to Quantum Cryptography.
- Mar 6: For the Java program in assignment 1, Amir used the
following test input:
and the expected output was
- Mar 6: A revised version of assignment 2 has been posted below.
Problem 4 (in Part B) was erroneously listed as problem 6.3, but it
should in fact be problem 6.4.
- Mar 3: A revised version of chapter 6 (Randomized algorithms)
has been posted below. This is a much improved version, and you
should use this version to prepare for Test 2.
- Mar 1: Assignment 2 has been posted below.
- Mar 1: The solutions to assignment 1 have been posted below.
- Feb 26: Test 2 (March 12) will be on Dynamic Programming plus
the material on Randomized algorithms covered during the week of
- Feb 26: The average on Test 1 was 36/60, and the lowest mark
was 18/60 while the highest was 55/60.
- Feb 21: Note that a revised version of assignment 1 has been
posted below. Question 3 is now problem 2.22 in the lectures notes
(before it was given, erroneously, as problem 2.23).
- Feb 9: Remember that tomorrow's class (Feb 10) will take place
in JHE/326H, 15:30-16:20. The class will be taught by the TA, Amir
Tavasoli, and he will be speaking about the dynamic programming
solution to the simple knapsack problem.
- Feb 3: Note the final final lecture time and room change for
Tuesdays. It is written up in red, and highlighted in yellow, in the
header of this page.
- Feb 3: The notes for chapter 5, Dynamic Programming,
have been posted below.
- Feb 2: The notes for chapter 4, Divide and Conquer, have
been posted below. This chapter is very short - only 5 pages - and it
is the first version of these notes, so there may be more mistakes
- Jan 27: Test 1 will take place on Thursday February 5
during the usual lecture time. It will be based on the first two
sections of chapter 3 (3.1 Spanning Trees and 3.2 Job scheduling).
- Jan 27: Short and interesting note.
- Jan 26: Amir Tavasoli suggests to use Eclipse for Java.
Here is a blurb: Eclipse is a Software Development Platform that
supports development of almost any type of application. Eclipse's
default language is Java and it is great for development of all kinds
of Java applications. It has intelligent code completion, easy to use
debugger, GUI builder and etc. Moreover it can be used on all
platforms like Mac, Linux, Windows and etc. Furthermore, its open
source and free, which makes it the best IDE around for Java
development. And here are some links:
and some more links with Java resources:
- Jan 22: Assignment 1 has been posted below.
- Jan 20: Chapter 3 has been posted below.
- Jan 16: TA office hours:
- Wednesdays 12:30-1:30 in ITB-101
- Fridays 3:30-4:30 in ITB-101
- Jan 15: Important Dates:
The tests will be written in class during the normal lecture times,
and the assignments are to be handed in during the lecture.
- Test 1 on Thursday February 5
- Test 2 on Thursday March 12
- Assignment 1 due on February 26
- Assignment 2 due on March 26
- Jan 9: The first batch of notes (chapter 2, Preliminaries) has
been posted below. Please let me know if you find mistakes;
suggestions about how to improve the text are also most welcome.
Notes, Assignments, and Tests: