General Programming Concepts: Writing and Debugging Programs