Object-oriented design and programming in Java with experience in data structures and container classes using arrays, lists, array lists, stacks, queues, user-defined structures and an introduction to trees, along with associated algorithms such as insertion, removal, sorting and retrieval; introduction to examples in algorithm analysis; introduction to recursion. Prerequisites: One of AUCSC 111 (2021), AUCSC 113, or AUSCI 135. Corequisite: AUCSC 211. Note: Credit may be obtained for only one of AUCSC 112 (2021) and AUSCI 235.