4cr. Prerequisite(s): CSCI-A 201 or A 304. Counts as a Natural and Mathematical Sciences course. Advanced programming techniques: user-defined functions and types, recursion vs iteration, parameter-passing mechanisms; Classic abstract data types and algorithms. Programming style. Object-oriented programming. Web programming. May be counted toward computer science major requirements if completed prior to CSCI-C212.