Through my experiences writing code, for software projects at school and work, I have come into contact with many topics of this class. As Professor Wyk has already mentioned in class, this class was created to address the concern of important software development practices being missed in other classes. These practices enable a programmer to look at work as a craft rather than work.
I have used a few Version Control Systems in the past such as: Source Safe, CVS and Git. I have found Git to be my favorite. I like having a local repository to commit into without merging with the remote project. Also Git will compress files before sending them across the network making it perform very well. Having a version control system in place makes it easy for multiple developers to work on the same project. It also allows you to make changes in your code without the fear of breaking everything, if I doesn't work you can just revert the changes and you are back where you started.
Writing effective comments is another important topic of this class that I have had experience with. In my summer internship I wrote documentation for two existing software projects. Some of the most important comments I found were explaining the reason the decision to write a piece of code in a certain way. Documenting roadblocks and workarounds in a comment can save time for the next person to read the file.
Modular Software Design and Unit Testing are topics I am looking forward to receiving more in-depth information about. Know the right level of abstraction to design and using inheritance effectively make coding solutions easier.
Unit testing is also very helpful. If you don't write unit tests then your production code modules are your unit tests. Test helps find bugs and let's you rewrite code without the fear and assurance that things still work as expected.