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 Data Structures & Programming Techniques course is designed for students with fundamental training in computer programming to enable them in the use of data structures for problem solving. It covers the design and the implementation of data structures and the tools and techniques in using them. The course is about choosing data structures and algorithms that are appropriate for your problem. It will also touch (albeit superficially!) the issues of comparing algorithms, studying their correctness and computational complexity. This is all essential when your programs are confronted with large versions of the problems for which they are designed. Upon a successful completion of this course you will have acquired basic knowledge of programming tools for future endeavors. The Data Structures & Programming Techniques course will offer you a mixture of theoretical knowledge and practical experience. You will learn the tools and you will learn to apply them to practical problems.
All examples as well as the programming assignments in this course will be in the programming language C. This should prove useful for you in your further coursework in the Department of Information Science as well as in your future professional career. If you lack working knowledge of C, you are advised to work really hard during the first few weeks of the semester.
As you might have already experienced by now, being a professional requires independence and creativity, but most of all commitment to hard working. In this class, most of your effort will be concentrated on programming assignments. If you have little programming experience, these assignments will make your workload heavy. The class will require a lot of your time, but I believe that you will find the work 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.
Syllabus (Spring 2006, Microsoft Word)
Marek Druzdzel's teaching page
Marek Druzdzel's home page