Mark Terwilliger is a professor of computer science at Lake Superior State University, and he has taught computer science for the past 22 years. Mark earned a Bachelor of Science in computer science in mathematics from Lake Superior Sate University and a Master of Science in computer science from Michigan State University. His emphasis was in artificial intelligence. Mark then went on to earn a PhD in computer science at Western Michigan University, where his thesis research delved into wireless sensor networks.
What is computer programming?
Computer programming is developing software to solve problems. It also includes testing, debugging, maintaining, and documenting software.
What do you find most interesting about computer programming?
Computer programming can range from writing software to controlling robots on a space mission to making an app that allows you to sling angry birds through the air.
What is your least favorite aspect of computer programming?
Sometimes it can be frustrating when you are trying to develop a program and it’s not going as smoothly as you would like. The key is to be patient and to take a systematic approach to solving the problem.
Are there subfields of computer programming that students might not be aware of?
A computer programmer can specialize in many areas. First of all, there are different platforms in which you can program. This includes Windows, Mac, Unix, Web-based, and mobile devices. For large projects, you might specialize in developing the user interface, a database backend, or some type of mathematical model.
What careers do students commonly pursue with a degree in computer programming?
Most computer programmers are writing the code for new software systems. You might work in developing documentation for software. Another area is maintaining and updating existing computer programs. The list goes on.
Technically, the actual degree title that students will receive is “computer science”, not “computer programming.” Computer science encompasses computer programming, but it also includes things like databases, networks, graphics, artificial intelligence, operating systems, and so on.
Is a graduate degree preferable for a career in computer programming, or can someone enter the field with a bachelor’s degree?
A bachelor’s degree should prepare a student sufficiently for a computer programming career. A graduate degree would help if a student was pursuing research or a job in academia.
What personality traits do you think a student should have in order to be successful in computer programming?
A student needs to be a good problem solver to be successful at computer programming. A solid math background is always helpful. As mentioned earlier, patience is important. Sometimes coding goes smoothly. Other times, things don’t go as planned. When troubleshooting and debugging software, you have to be calm and stay persistent. You’ll eventually figure it out if you have a positive attitude.
What electives would you recommend that a student in a computer programming program take?
The more mathematics you take the better. A technical writing course is helpful when working on documenting software. If you want to develop games, taking some physics is to your advantage. This helps to understand gravity, collisions between objects, friction, etc.
What study tips would you give to a student to help him or her succeed in computer programming courses?
Don’t do the minimum. A programming course will have assignments and labs. In your free time, write some programs similar to your class work projects. Play around. Experiment. Have fun.
Do you think computer programming is a subject that can be studied online, or is a traditional class environment ideal?
I feel the person, not the subject matter, dictates what can be accomplished online versus a traditional class. Most people require the structure of a classroom and an instructor in front of them to learn. It takes discipline to learn things independently. Some people can do it. In programming, though, you can’t just read about developing software. It has to be a hands-on experience. When you get stuck on a problem, are you a resourceful person that will figure things out? Or, do you need a teacher by your side to help you through the difficult times?
What subjects should a prospective student of computer programming study before entering formal college courses?
As stated earlier, take as much math as possible. Get as much experience with computers as possible. Even if it isn’t programming, using other software to develop webpages, spreadsheets, databases, etc. can only help you understand and appreciate what you are getting into.
What pieces of advice, or caution, would you offer to a prospective student of computer programming?
Many students go into a college computer science program thinking they are going to develop computer games. Playing computer games and developing computer games are two different things. Getting up-to-speed to the point where you are ready to develop games will not happen overnight. Sometimes, the work will be very difficult. In the end, though, the reward is special when you finally achieve your goals.