CS 1MD3 T2 2004
Slides and reference material
Many slides are in PDF format. You'll need the free
Acrobat Reader
from Adobe to read them.
Other slides are in PowerPoint. You can get a
free powerpoint slide viewer from Microsoft.
Sections indicated below are those applicable sections of the textbook(s).
B4.2 refers to Brookshear, "Computer Science: an overview" Chapter 4
section 2. When there is no explicit mention of slides, it is
because the ones from the textbook were used.
The instructor reserves the right to change the future; in other words,
the topic of lectures that have not yet happened might change
without notice. However, within a reasonable amount of time, the
slides and topics for past lectures will be made to reflect reality.
You can get all of the slides from Brookshear as a
zip file of PowerPoint files. You
can also get each chapter seperately - see bottom of this page.
- Jan. 6 - Outline
- Jan. 7 - Introduction to programming languages. B5.1.
See also these diagram , as
well as this diagram.
Both of the previous pages contain considerable extra material
on the topic, much of it very interesting.
- Jan. 9 - Topic: XML. No slides available.
- Jan. 13 - Programming languages - imperative. B5.2.
- Jan. 14 - Programming languages - imperative. B5.3-5.4..
- Jan. 16 - Topic: GUI design. No slides available.
- Jan. 22 - Programming Languages - OO. B5.5.
- Jan. 23 - Programming Languages - OO. B5.5.
You may get some benefit from looking at last years' slides
for the corresponding classes (Jan 9, 22, 27, 29)
available here
- Jan. 24 - End of GUI topic. Then Functional programming in Maple.
This Maple worksheet
was used in class. Maple is available on most lab machines.
- Jan. 27 - Complexity. Partly covered in B4.6. Otherwise
notes were blackboard only. (see Feb. 3 for references)
- Jan. 28 - Complexity continued. (see Feb. 3 for references)
-
- Jan. 30 - Topic: Haskell. Highly inspired by
Two dozen short lessons in Haskell by Rex Page, but the examples were all done
interactively in class using
GHCi
- Feb. 3 - Complexity continued. Solving recurrence equations.
The textbook Discrete Mathematics and its applications (3rd edition)
by Kennet H. Rosen contains valuable information on
recurrence relations.
The first 3 pages of
this handout from a math course are good. For the
mathematically inclined, I recommend
this handout. For the divide-and-conquer part, a slight
variant (more general!) of what I did is well explained near the
end of
these lecture notes.
- Feb. 4 - Midterm. Covers lectures from Jan 5. to Jan 30,
inclusive.
- Feb. 6 - Topics - automated testing.
scanned slides from last year.
Topics covered include what a 'test case' is, what a 'test suite'
is, the necessity for test cases to build on one another,
automatic code generation for test case failure, and how to
scale this up to test suites.
- Feb. 10 - Data structures. B7.1, B7.2, B7.3.
(Abstraction, Arrays, lists)
See bottom of page for slides.
- Feb. 11 - Data structures. B7.4, B7.5, B7.6.
Linked-lists, stacks, queues. See bottom of page for slides.
The C source code as developped
in class. You can also find some
some nicer C code that does
similar work.
- Feb. 13 - Topics - Web infrastructure
- Feb. 24 - Data structures. B7.6. Arrays code. (by John Nakamura).
Also available is the C source code
used in the lecture (as amended on feb. 25).
- Feb. 25 - Data structures. Finish array code, and then
do linked list code.
- Feb. 27 - Software Engineering. Mostly the material from
Chapter 6 of Brookshear, using
these slides. The
Extreme Programming web site is a great source of information on that topic.
- Mar. 2 - Data structures. Hashing (B8.6).
using these slides.
- Mar. 3 - Data structures. Hashing (cont). Finished
first set, and went over
second set of slides.
first and
second set of slides
also available as Word documents.
- Mar 5 - Topic: Javascript. There is a lot of
information available at the
the W3School
on JavaScript and many other Web technologies. The code
I showed used JavaScript, CSS, the DOM, and DHTML to
make things work...
The
HTML page I used.
Right-click on the link above and use 'save target as' to
get a local copy that you can view with your favourite editor.
Note that I mis-interpreted part of the code [I missed one
line]; JavaScript is *not* a spreadsheet-like language.
- Mar 9 - Finite State Machines
- Mar 10 - Midterm 2.
- Mar 12 - Topic: numerical analysis [floating point numbers],
using this maple worksheet
- Mar 16 - Algorithms. All of
chapter 4 in Brookshear.
- Mar 17 - class cancelled.
- Mar 19 - Evaluation. Algorithms (cont)
- Mar 23 - Finish algorithms. Midterm 2 review. Logic.
- Mar 24 - Logic (propositional)
- Mar 26 - Topic: Databases?
- Mar 30 - Logic (predicate)
- Mar 31 - OS concepts
- Apr 2 - Topic: Fun with C
- Apr 6 - review
Brookshear ppt by chapter:
There are some
applets available for various data structures and
algorithms on them that may prove helpful.
Back to main page