Explain, implement, and apply the following data-structures:
Analyze the time and space complexity of algorithms using asymptotic upper bounds (big-O notation).
Explain and use references and linked structures.
Outline basic object-oriented design concepts: composition, inheritance, polymorphism.
Outline basic concepts of immutable data structures and explain the trade-offs compared to mutable data.
Write and test recursive procedures, and explain the run-time stack concept.
Analyze searching and sorting algorithms, and explain their relationship to data-structures.
Choose and implement appropriate data-structures to solve an application problem.
Understand techniques of software development, such as unit testing and version control.
Your final score is based on the following weighted components:
And here's the grade scale applied to the final, aggregate score:
There will be approximately a dozen machine problems assigned over the course of the semester. They will be accessed, completed, and submitted via the online development environment and learning platform Mimir. Machine problems are weighted according to their allotted number of points.
Each student starts the semester with a "late pool" of 7 days. Late days are automatically applied when machine problems are submitted late (though not after the last day of the semester). After the late day pool is exhausted, late assignments will not be accepted for credit.
Quizzes will be periodically released on Mimir that typically ask students to modify and apply the data structures completed in lab. Quizzes are equally weighted. Late days may not be applied to quizzes.
There will be three exams: two midterms and a final. All exams are nominally cumulative, though will generally focus on material not covered by preceding exam(s). Exams are equally weighted.
At the instructor's discretion, scores for the second midterm and final exam may be used to replace earlier exam scores, if they show improvement.
You are welcome to discuss assignments with classmates, but all final work must be your own. For details on what constitutes academic dishonesty, consult the university's Code of Academic Honesty at https://web.iit.edu/student-affairs/handbook/fine-print/code-academic-honesty. Any confirmed cases of academic dishonesty will be reported to academichonesty@iit.edu, and any work involved will, at the very least, will receive a reduction in grade deemed appropriate by the instructor.
Reasonable accommodations will be made for students with documented disabilities. In order to receive accommodations, students must obtain a letter of accommodation from the Center for Disability Resources and make an appointment to speak with the instructor as soon as possible. The Center for Disability Resources is located in the Life Sciences Building, room 218, 312-567-5744 or disabilities@iit.edu.