Prerequisite: CS 113 with a grade C or better. A study of advanced programming topics with logical structures of data, their physical representation, and the design of computer algorithms operating on the structures. Course covers program specifications, correctness and efficiency, data abstraction, and algorithm analysis. Students receiving degree credit for CS 114 cannot receive degree credit for CS 116 or CS 505.