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.
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 me as soon as possible. The Center for Disability Resources is located in the Life Sciences Building, room 218, 312-567-5744 or firstname.lastname@example.org.