September 12, 2009
Dear Student,
This note is meant to provide you with some insight into the CIS29 class that you are enrolled in. I am writing this note to share with you my attitude toward the course and my expectations of your involvement in the course.
I am a part-time instructor for the CIS department. I work full time as a software engineer. I program primarily using C++. Since programming is my primary job, I have the attitude that my students want to be programmers, just like me. Not really, but I do enjoy programming, and I strongly believe that there will be a continuous demand for programmers in the next several years, and the pay is pretty good, too. My philosophy of education involves making mistakes and learning from those mistakes. If you make mistakes, and you learn the cause and how to correct the problem, then this is the most important part of your education. I am also a strong believer in understanding what is going on with your program. I think, at a simplistic level, about the way functions and variables interact and the use of the memory involved during the execution of my program. I'll be sharing some of these thoughts with you during the course.
This class is an advanced-level course. I assume that you have some C++ programming experience. I assume you know about C++ classes, objects, methods, constructors, destructors, and (some exposure to) inheritance. I do plan to review the introductory course material (CIS27) during the first two weeks of class. Then, we will study strings, stringstreams, C++ cast operators, multiple inheritance, compilation, libraries, exception handling, templates, the Standard Template Library, and programming style. We'll cover these topics in some depth. Being a practitioner, I will work toward our understanding of the concepts as well as being able to use them in programming situations. There will be eight programming assignments in this class. These will give you practice in exercising the concepts presented. The assignments won't be that difficult, but you will have to stay on top of them.
Programming is about copying and leveraging someone else's idea. It's about learning concepts, understanding how things work, and then applying those concepts to a new situation. Professional programming is about gaining the understanding of a problem and then developing a solution that solves the problem. Programming is not about copying someone else's assignment or having someone else do your work for you. Programming is often about working together on a solution to a common problem. In this class you must "own" your solution. "Owning your code" means that you can reproduce it on your own. My attitude is that you don't have to copy someone else's solution. I will "give" you a solution, I will write code for you, but only if I have your involvement. You gain ownership in the process. It is with the assignments that you gain experience in problem solution and it is on the tests that you prove your ability.
I expect your commitment in this class. I expect you to have the prerequisites for the class. I don't expect to spend lots of time teaching you the introductory curriculum. I expect you to not put off assignments until the last minute. I expect that you will take advantage of the lab time and office hours. I expect that you will ask for help when you need it. I am unavailable to help you during my usual work hours (Monday-Thursday, 6 am-5pm), so you must plan ahead (assignments are usually due on Thursdays). You must allow yourself adequate time to complete the assignment - this includes time to "get into trouble" and obtain help when necessary.
I consider it a privilege and an honor to be your teacher for this class. I promise to maintain a consistent work effort throughout the course, to treat you fairly and compassionately. I will try to the best of my ability to answer your questions and to explain the concepts in a manner that you will understand. Of you, I ask a 12 week serious commitment, to be responsible for your work, to own it, and to be proud of it. I also ask that you treat me and your fellow students with respect and understanding.
As you read this letter now, I expect that you are motivated and possess a strong positive attitude. I sincerely hope that you will maintain this attitude throughout the course. You have my best wishes for your success.
Joe Bentley