Continuation of CSIA 150; development of problem solving using a high level language including abstract data types, multidimensioned arrays; strings; records and structures; function design, construction, and parameter passing methods; recursion; introduction to objects and classes; pointers: lists, stacks, queues, and trees; and file I/O. Multiple sorting and searching algorithms including concepts of program complexity. Extensive programming required. A computer use course.
Students will be able to: 1) Illustrate the use of Object-Oriented concepts such as Encapsulation, Composition, Inheritance, and Polymorphism to solve real world problems in Java. 2) Demonstrate mastery in intermediate software development skills such as error handling, software testing, generics, & introductory algorithm analysis. 3) Implement fundamental data structures (including both linear and non-linear types) & the Java Collections Framework. 4) Determine which data structures & algorithms are appropriate for various app requirements and explain the trade-offs involved.