CS253 is the final course in the programming sequence that includes CS160, CS161, CS200 and CS270. One goal of CS253 is to teach C++, since the previous courses in the curriculum are in Java (160/161/200) or C (270). The more significant goal, however, is to complete the process of training a professional programmer. When this course is complete, you should have a better understanding of (1) the strengths, weaknesses and roles of different languages (at least along the C,C++,Java spectrum); (2) the role a compiler plays in converting high level code to source code, and how you as a programmer can influence it; (3) when and where memory is allocated; (4) when and how memory can be reclaimed; (5) how functions are dispatched; (6) how to write efficient code; and (7) how to exploit templates well. In addition, the recitations (which are a mandatory and important part of the course) give hands-on experience with tools used for software development in Linux, including make, gdb, svn and valgrind.
The Course Logo is from Wikimedia Commons and is an out of copyright picture by Neville W. Cayley (1887-1950).