s
This core computer science course covers the internal workings of algorithms and data structures, from mathematical principles to implementation in C++. Topics include:
The objective of the course is to refine and extend the concepts and practical skills introduced in CSS 501.
The subject matter is highly technical so plan to put in considerable time and effort master the material. Expect to spend 10-15 hours or more outside of class per week.
Prerequisite: CSS 501 with a grade of 2.7 or better
[top]Location & Time
Professor: Morris Bernstein
Data Abstraction & Problem Solving with C++, Frank M. Carrano, Addisonâ
In recognition of the high cost of textbooks, the instructor does not specifically require use of the recommended text. Earlier editions are quite acceptable.
recommended supplementary texts
[top]
| Assignments (4 @ 10%) | 40% | 
| Project | 20% | 
| Midterm | 20% | 
| Final | 20% | 
| Total | 100% | 
|---|---|
Assignments are to be handed in by 11:30 pm on the due date. Acceptance of late assignments will be determined on a case-by-case basis. Turn in your assignments using catalyst.
Assigments are to be implemented in C++ using the C++98 standard. You may do your development using the environment of your choice, but your code must compile and run properly using the Linux g++ compiler on the Linux Lab (UW1-320) machines (because that's how your grader will do it!).
  Compile-time errors will not be looked upon kindly.
  Compile with
  gcc
  flags
  -Wall -Werror -Wpedantic
  flags.
  Warnings shall be treated as errors.
  Submit a compressed
  tar
  or
 zip
 archive.
 Your assignments should include:
README
    file with notes and discussion.
  BUILD
    script
  Do not submit:
While you are encouraged to discuss the assignments with your peers, do not crib off each other. Make sure you know where to draw the line. If you do crib off the interwebs (or elsewhere), cite your source(s). Not citing sources will make your instructor cranky.
Where assignments build on prior assignments, you may use a peer's earlier submission, provided
See the Assignments section on the main course website.
If a grade is egregiously out of whack with your expectation, feel free to ask for another look: with limited time available for grading, overlooking something is easy to do. Just be aware that reevaluation may cause the grade to go up or down.
Final grades may be adjusted at the instructor's discretion.
[top]Live lectures are inherently interactive. Questions during class are encouraged. Please raise your hand or dance like a chicken to get the instructor's attention. At the instructor's discretion, answers may be tabled until the end of class if they veer too far off topic.
Limit computer use during class to note-taking so as to not distract or disturb your classmates or your instructor. Since a large part of the presentation involves diagrams, it may be more convenient to turn off the computer and take notes the old fashioned way. Quill pens are optional.
Flash photography is not permitted. Non-flash photography to capture the white board will be permitted as long as it is not disruptive or distracting. Don't even think about video.
Silence your cell phones.
If you arrive late or have to leave in the middle of class, do so quietly without causing disruption.
Simple email questions may get a response. Complex questions are best saved for office hours.
Special-needs students:
To request academic accommodations due to a disability, please contact Disabled Student Services (DSS) at 425.352.5307, 425.352.5303 TDD, 425.352.5455 FAX, or at dss@uwb.edu. You will need to provide documentation of your disability as part of the review process prior to receiving any accommodations (by the third week of the quarter).[top]
Please review the Student Guide to Academic Integrity.
Assignments and projects are to be done independently unless otherwise indicated. Their purpose is to help you understand technical material. By all means, discuss the problem statement and help each other debug, but do your own design and coding. See the student honor code, particularly the section on academic misconduct.
Your instructor hates filling out that kind of paperwork and it makes him grumpy. Avoid making your instructor grumpy.
Remember: integrity is what you do when no-one's watching.
[top]Subject to change as the quarter progresses.
| Week | Date | Lecture # | Topic | Assignment | 
|---|---|---|---|---|
| 1 | Jan 5 | 1 | 
        
  | 
      |
| Jan 7 | 2 | 
        
  | 
    ||
| 2 | Jan 12 | 3 | 
        
  | 
      
        Assignment 1: Binary Search Tree
         (Jan 13)  | 
    
| Jan 14 | 4 | 
        
  | 
    ||
| 3 | Jan 19 | 5 | 
        
  | 
      
        Assignment 2: Red-Black Tree
         (Jan 20)  | 
    
| Jan 21 | 6 | 
        
  | 
    ||
| 4 | Jan 26 | 7 | 
        
  | 
      |
| Jan 28 | 8 | 
        
  | 
    ||
| 5 | Feb 2 | 9 | 
        
  | 
      |
| Feb 4 | 10 | 
        
  | 
    ||
| 6 | Feb 9 | 11 | 
        
  | 
      
        Assignment 3: Binary Heap
         (Feb 10)  | 
    
| Feb 11 | 12 | 
        
  | 
    ||
| 7 | Feb 16 | 13 | 
        
  | 
      
        Assignment 4: Huffman Coding
         (Feb 17)  | 
    
| Feb 18 | 14 | 
        
  | 
    ||
| 8 | Feb 23 | 15 | 
        
  | 
      |
| Feb 25 | 16 | 
        
  | 
    ||
| 9 | Mar 1 | 17 | 
        
  | 
      |
| Mar 3 | 18 | 
        
  | 
    ||
| 10 | Mar 8 | 19 | 
        
  | 
      
        Design Project
         (Mar 9)  | 
    
| Mar 10 | 20 | 
        
  | 
    ||
        
  | 
      ||||