INFSCI 0020: Programming Design and Software Tools

Instructor: Marek J. Druzdzel


"An apprentice carpenter may want only a hammer and a saw, but a master craftsman employs many precision tools. Computer programming likewise requires sophisticated tools to cope with the complexity of real applications, and only practice with these tools will build skill in their use." --- Robert L. Kruse, Bruce P. Leung & Clovis L. Tondo

Even though superficial knowledge of a programming language may get you far in your professional endeavors, being an information science professional requires much more. Like in the analogy between an apprentice and a craftsman, it is possible to write programs with minimal knowledge of programming, but you can accomplish more and in a more efficient way by mastering the available variety of programming tools.

The purpose of this course is to make you familiar with programming design and software tools, using the C programming language. The course is about structuring computing problems and choosing data structures and algorithms that are appropriate for them. Upon a successful completion of this course you will have acquired basic knowledge of the C programming language and programming tools that should prove useful in your future endeavors.

As you might have already experienced by now, being an engineer or a scientist requires intelligence, independent, creative thinking, and most of all commitment to hard working. In this course, most of your effort will be concentrated on programming assignments. If you have little programming experience, these assignments will make your workload heavy, but I still believe that you will find the course satisfying. In fact, most successful students in my past programming courses were not those who came into the course with rich programming experience, but those who worked hard. The workload in this course will be moderately heavy, but I believe that you will find it interesting and important. I require your commitment, keeping up with the readings and the assignments, coming to classes, and being their active participant. In return, I will do my best to ensure that you have fun and learn useful skills.

Marek Druzdzel's teaching page
Marek Druzdzel's home page

HOME / Last update: 12 September 2003