Dr. Marc Olano <>
ITE 354 (455-3094); Office Hours: TuTh 4:00-5:00


Pankaj Guleria <>


CMSC 341 or equivalent undergraduate data structures course


Data Oriented Design, Richard Fabian (online book)


Develop an understanding of how to design programs for data efficiency.


Your grades will be based on homework assignments given approximately every other week, an in-class mid-term, and a cumulative final exam. The total grade breakdown will be as follows:

60%:   Homework
20%:   Mid-term exam
20%:   Final exam

Unexcused late assignments will receive a score of zero. Late submissions may be allowed for documented work or conference travel, if approved in advance of the original due date. If *I* have not told you that you will be allowed to turn an assignment in late before it is due, expect a zero if you turn it in late.

Academic Honesty

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory, or the Graduate School website.

All assignments in the course are expected to be your individual work. You may discuss assignments, however any help you receive must be documented. At the beginning of each or assignment, you must include a statement indicating the sources you used while working on it (excluding course staff and text) and the type of help you received from each. If you received no help, say so. Failure to include this comment will result in your assignment being returned ungraded.

In other words, "I referred to the arstechnica web site and discussed the assignment with John Doe" is OK as long as you explicitly say that in your homework, and still solved the problem yourself.

Tentative Schedule

Assignments must be committed and pushed to your individual git repository by 5pm Friday unless otherwise indicated.

Date Topic Due dates Web Resources
Jan 26/28 Introduction, CPUs  
Feb 2/4 Structure of Arrays
Feb 9/11 Components, Managers HW 1
Feb 16/18 Condition Tables, State  
Feb 23/25 Search
Mar 1/3 Sort, Examples HW 2
Mar 8/10 Review, MIDTERM    
Mar 22/24 Databases  
Mar 29/31 Databases,
Stream Processing
Apr 5/7 Transforms, Optimization    
Apr 12/14 Concurrency HW 4
Apr 19/21 Design Patterns (updated)  
Apr 26/28 Design Patterns HW 5  
May 3/5 Case study    
May 10 Review HW6 (Tue)  
May 12 FINAL EXAM 1:00-3:00

Class Resources

This syllabus is a snapshot of the class web page. Important announcements and updates will be made to this page throughout the semester. I will announce at the beginning of class if I make a significant change or addition.

There is a class piazza site for this class. Everyone will be added to this site. Announcements will be made there, and you can also use it for public communication with your classmates, the TA and instructor. You should either check this site periodically, or make sure it is set to send you messages by email. Please only post messages appropriate for the entire class to see. Be sure to send messages about grades or other private matters directly to the instructor or TA.