Prerequisite: Minimum grade of C- in CMSC131 or permission of instructor; and permission of CMNS-Computer Science department.
This course provides an introduction to the techniques that avoid the accumulation of "technical debt" by using effective methods from the start of the creation of a software project. Emphasis will be on design decisions, rather than algorithmic analysis. There are an infinite number of ways to implement an algorithm, and always more than one algorithm that will solve, or assist in solving, a particular problem. Good code is not strictly a function of which algorithm you use or even how you implement that algorithm. Good code is easy to understand, easy to maintain, easy to adapt, and easy to debug. Creating good code relies on knowing and using "best practices," defined as "commercial or professional procedures that are accepted or prescribed as being correct or most effective." Note that this definition does not state "accepted or prescribed as being correct" by whom. Thus, what constitutes a best practice is not necessarily a closed question. We will look at some practices that are widely accepted, and a few where debate goes on.