COM1101 Algorithms and Data Structures 1
Winter 2001 Course Syllabus and Calendar
Professor Futrelle --
College of Computer Science, Northeastern U., Boston, MA
(Version of 2/24/2001 -- The final version of this document)
The later labs in this course are due Mondays at 4pm, not before class.
In the calendar below, the holiday on Jan 15th is marked in red.
The final exam period, March 12th-17th, is marked in green and the Final
is on Tuesday the 13th at 3:30pm.
You can also see the full
Northeastern University Academic Calendar, which is a PDF document.
January 2001
S M Tu W Th F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
|
February 2001
S M Tu W Th F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
|
March 2001
S M Tu W Th F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
|
Note: The reading assignments in your textbook, listed throughout the syllabus below,
should be completed before coming to the class meeting
they apply to.
Weeks 1, 2 and 3: Review of the basics. File I/O for relational databases
-
- Thurs. January 4th
- Go over the Syllabus.
- The C++ Background Notes are here.
What you should already know.
- You'll need to continually re-read and refer to the basic C++
information in chapters 1, 2, 3, 4, 5, 7 and 10 throughout the quarter.
- All tests and machine problems will assume that you know these basics.
- Fill out the required questionnaire during this class and hand it in.
- Bring your textbook to all classes -- I will refer to it often.
- Look ahead to the readings that will be covered in each class and
do the readings before coming to class.
-
-
- Mon. January 8th
- Review of the basics of C++, prerequisites for this course.
- Where the course is headed -- Three projects will focus our attention.
- The first project: Random access to disks allows us to build relational
database tables. (Lab 2, Wed. Jan. 17th)
Arrays, with sorting and searching algorithms, allow us
to build indexes to the databases. (Lab 3, Tues. Jan. 16th)
- Read for today: Chapter 5 on I/O and the Lab 2
assignment
and details.
-
- Tues. January 9th
- Lab 1. How to create stand-alone projects.
This lab is due handed in by the end of the hour. Attendance required (as usual).
-
- Wed. January 10th
- How relational database tables are constructed and laid out on a disk.
- How random access to files allows us to deal with database records on disk.
- How arrays will allow us to build indexes to the databases.
- Read for today: The C++ string class, Sec. 10.3.
-
- Thurs. January 11th
- Details of random access to material in files.
- How to use input and output operations on randomly positioned files
(ref: Chap. 5).
- Creating and using an API (Application Programming Interface)
in the machine problems.
- Introduction to arrays.
- Reading for today: Secs. 9.1 and 9.2.
Also, look briefly a the array sorting algorithm, Display 9.11, pg. 573.
-
-
- Mon. January 15th
- MARTIN LUTHER KING JR'S BIRTHDAY observed. University closed.
No class.
-
- Tues. January 16th
- Lab 2. Machine Problem 1, part 1 -- relational database (DB) basics.
The first of two labs on DBs
and random access file I/O. This assignment will not include implementing indexes.
- Lab 2 is due on Monday, January 22nd, no later than the beginning of class.
-
- Wed. January 17th
- Efficiency is required for large volumes of data.
Binary search is efficient for large array-based indexes, and requires a sorted array.
- Reading for today: Sorting an array, pgs. 573-578.
- Reading on binary search: look briefly at pgs. 747-749, but focus on the program
in Display 12.8 on pg. 756.
- How to sort two arrays at once (for Lab 3).
-
- Thurs. January 18th
- Introduction to classes. The cars example (for Machine Problem 2: Labs 4 and 5).
- Reading for today: Chapter 6 through pg. 334.
This will be new and non-trivial material for practically everyone, so read it carefully.
-
Weeks 4 and 5: Object-oriented programming. Using classes in simulations
-
- Monday. January 22nd
- Lab 2 due at the beginning of class -- turn in whatever you have done
by this time.
- Final comments on arrays and sorting for Lab 3 tomorrow.
- Continuing the introduction to classes and member functions.
- Reading for today: Re-read Chapter 6 through pg. 334.
- Brief review for Wednesday's Quiz #1.
-
- Tues. January 23rd
- Lab 3. Machine Problem 1, part 2 -- relational database indexing.
The second of two labs on DBs focusing on implementing indexes.
- Lab 2 is due on Monday, January 29th, no later than the beginning of class.
-
- Wed. January 24th
- Quiz #1, 20 minutes.
Focusing on I/O, strings and array basics, but not
including array sorting and searching.
- How to set up and manage an array of objects. The car simulation project.
- Reading for today: Sec. 9.4 on Arrays and Classes.
- Separate compilation and multi-file projects. You will use these in Labs 4-7.
- Additional reading for today: Sec. 8.2.
-
- Thurs. January 25th
- Abstract Data Types (ADTs) and software design strategies.
- Reading for today: Sec. 8.1.
- What are namespaces? Look over Sec. 8.3
-
-
- Mon. January 29th
- Lab 3 due by 4pm (box in 161CN)
Note new time
-- turn in whatever you have done
by this time.
- Time-based simulation. Use of random numbers in simulation.
- Reading for today: Page 921. The random number functions in C++.
-
- Tues. January 30th
- Lab 4. Machine Problem 2, part 1 -- Using classes for simulation.
The first of two labs on this topic
- This will include selecting and initializing objects (class instances),
but with only simple object functionality.
- Lab 4 is due on Monday, February 5th by 4pm.
-
- Wed. January 31st
- More on ADTs. Re-read Sec. 8.1.
-
- Thurs. February 1st
Focusing on array sorting and binary search and the basics of classes.
- Summary of what we've learned about classes and objects up to now.
- Reading for today: Re-read Chapters 6 and 8.
-
Weeks 6 and 7: Object constructors and destructors. Pointers. Midterm Exam (2/7/2001)
-
- Mon. February 5th
- Lab 4 due by 4pm (box in 161CN)
Note new time
-- turn in whatever you have done
-
- Tues. February 6th
- Lab 5. Machine Problem 2, part 2 -- Using classes for simulation.
The second of two labs on this topic
- This will be focused on adding interesting functionality to your classes.
- Lab 5 is due on Monday, February 12th by 4pm.
-
- Wed. February 7th
- Quiz #2 -- Note this new date!, 20 minutes.
-
- Thurs. February 8th
- Introduction to building collections of objects. (For Labs 6 and 7)
-
-
-
Mon. February 12th
- Lab 5 due 4pm (box in 161CN)
Note new time
-- turn in whatever you have done
- Hand back and discuss Quiz #2.
-
-
Tues. February 13th
- Lab 6. Machine Problem 3, part 1 -- Using a collection of classes
to build more complex objects.
The first of two labs on this topic
- This lab will focus on the static class design, with no appreciable functionality.
- Lab 6 is due on Monday, February 19th by 4pm.
-
- Wed. February 14th
- Midterm exam -- Note this new date!
- Introduction to pointers and addresses, dereferencing operators and typedefs.
- Reading for today: Sec. 11.1.
-
-
Thurs. February 15th
- Dynamic arrays.
- Reading for today: Sec. 11.2.
-
Weeks 8 and 9: Dynamic allocation of objects, new and delete;
-
-
Mon. February 19th
- Lab 6 due 4pm (box in 161CN)
Note new time
-- turn in whatever you have done
- Hand back the graded Midterm Exams and go over the results and answers.
- Creation and destruction of objects.
- Functions and dynamic objects.
- Reading for today: Sec. 11.3.
-
-
Tues. February 20th
- No lab this week.
-
- Wed. February 21st
- Pointers.
-
-
Thurs. February 22nd
- Pointers and creation of object instance with new.
- Constructors.
- Introduction to inheritance
- Reading for today: All of Chapter 13.
-
-
-
Mon. February 26th
- See the "wrap-up" notes
covering pointers and inheritance.
- THE WRAP-UP NOTES
HAVE DETAILS OF TOPICS AND PAGE NUMBERS
IN THE TEXTBOOK FOR THE FINAL TOPICS OF THE QUARTER.
-
-
Tues. February 27th
- Lab 7. Wrap-up lab covering pointers and inheritance.
- Much of Lab 7 is based on the examples in the
wrap-up mentioned above.
- Due Monday, March 5th, 4pm, drop-box in 161CN.
-
- Wed. February 28th
- Brief overview of inheritance.
-
-
Thurs. March 1st
- Finish our study of inheritance.
-
Week 10: Course summary and review
-
-
Mon. March 5th
- Review session 1. C++ basics, I/O and strings.
-
-
Tues. March 6th
- Make-up lab time, TA and tutors will be in the lab.
-
- Wed. March 7th
- Review session 2. Classes and objects. Pointers and dynamic data structures.
-
-
Thurs. March 8th
- Last Class.
- Review session 3. Inheritance and other topics as required.
-
-
-
FINAL EXAM WEEK -- Final to be held on Tuesday the 13th at 3:30pm
Back to COM1101 Winter 2001 homepage (teaching Gateway)
Back to Professor Futrelle's homepage