CS 1320 (Principles of Algorithm Design I):
Lecture Summaries
- August 27: Administrivia (syllabus). About the course.
An example of algorithm design (converting decimal to
binary).
- August 30: Algorithm design example from August 27 revisited.
Number systems (decimal, binary, hexadecimal; addition).
- September 1: Number systems continued (negative numbers;
subtraction). Simplified "what is a computer?"
description. Representation of data.
- September 3: Simplified "what is a computer?", continued.
A first program, and another program.
- September 6: Holiday.
- September 8: Quiz #1. Another simple program, to sum and
add numbers.
- September 10: Quiz #1 returned. Program from last time
revisited and extended.
- September 13: Program testing. A little more about Unix.
- September 15: A little more about Unix.
Some debugging tips. Program to "make change".
- September 17. Program to "make change", revisited.
Other data types (C++ double, float, char).
Program to compute roots of quadratic equation,
with input terminated by end-of-file.
- September 20 (substitute lecturer J. Oldham).
Expressions and data types; booleans.
- September 22: More expressions, data types, and booleans.
Integer guessing-game problem.
- September 24: Integer guessing-game problem, continued.
Introduction to arrays.
- September 27: Quiz #2. More about arrays.
- September 29:
Nested loops. Program to simulate rolling a die.
- October 1: No lecture; exam 1.
- October 4: Program to simulate rolling a die, continued.
- October 6: Exam 1 sample solution. Additional loop
constructs ("do while" and "for").
Introduction to functions.
- October 8: Introduction to functions, revisited.
- October 11: Functions, continued.
- October 13: A little about type conversions.
A little about strings.
Top-down design, introduction.
- October 15: Holiday.
- October 18: Discussion of homework #5.
- October 20: Further discussion of homework #5.
Review of functions. File input and output.
- October 22: File input and output, continued.
File copying example.
Call by value versus call by reference.
- October 25: Call by value versus call by reference, continued.
File input and output, continued.
- October 27: Review of terminology. Examples of call by
reference and file I/O.
- October 29: More file I/O, call by reference, and modular design.
- November 1: Homework #6 questions (10:30 section);
command-line arguments (11:30 section).
- November 3: Questions about Homework #6 and Exam 2.
- November 5: No lecture; Exam 2.
- November 8: Introduction to pointers. Command-line arguments
(10:30 section).
- November 10: Introduction to classes and objects.
- November 12: More about classes and objects --
using predefined classes.
- November 15: More about classes and objects --
defining classes.
- November 17: More about classes and objects --
defining classes, continued.
- November 19: Recursion.
- November 22: Recursion, continued.
- November 24: Hints and tips about tools (vi, gdb).
- November 29: Recursion, continued.
- December 1: No class.
- December 3: Review of homework #9.
- December 6: Binary search.
- December 8: Binary search, continued; a few words about
estimating program execution time (to be discussed much
more in CS1321 -- "big O notation").