IDL Training Courses
No better IDL training courses anywhere - guaranteed
Get Up to Speed Quickly
IDL represents a major leap forward in visual data analysis. With the introduction of pointers and objects, including a completely new object-oriented graphics engine, IDL has the potential to change the way you write IDL programs forever. Whether you are a seasoned IDL programmer or a first time IDL user, coming to grips with new product features can be difficult and time consuming. Let me help you get up to speed quickly and cost effectively with an IDL training course. There is nothing like having your own personal expert to get you up to speed quickly.
Training to Suit Your Needs
I pride myself on matching the contents of each of my IDL training courses with your specific training requirements. There is no point taking valuable time learning things you will not use. I find out what you need and want to know, and then use my skill and experience teaching IDL programming courses to customize course materials and example programs in a way that is of specific benefit to you.
In addition, each course participant receives a comprehensive course manual or book that reinforces the information presented in the course. These task-oriented manuals and books are excellent reference materials and many course participants find them to be the most valuable part of the course.
Whether you want one-on-one personalized instruction to help you get your assignment jump-started, a customized course for the people in your lab, or a standard course for all the IDL programmers in your building, I can help you design a course that is perfect for you and your training requirements. Contact me today to see how easy it is to get started.
The programming examples are exceptional ... they are valuable additions to my own IDL library.
My Teaching Philosophy
You may be contacting me because you have already heard about me from someone who has taken one of my courses. I'm guessing that you didn't hear that I was boring or uninspired. More likely, you heard that my course was a lot of fun and that as an instructor I can be a bit strange. It's true. I don't teach programming courses like most instructors. I tell stories. I play music. I joke around. In short, I do just about whatever it takes to make course participants open themselves up to a new learning experience.
I have two seemingly contradictory teaching philosophies. You can think of them as my teaching yin and yang, if you like. First, I don't believe people learn well unless they are slightly frustrated. And second, I don't believe people learn well unless they are having fun doing it. Keeping a class somewhere in the midst of this creative tension is the endless fascination of teaching for me.
To keep people slightly frustrated I design programming exercises in which I ask people to do certain things, but I don't give them all the information they need to do it. They have to discover what they lack on their own. It reminds me of real-world programming. I've found it effective at helping people remember essential programming concepts.
To make it fun for people, I tell a lot of crazy stories. I don't ever tell stories randomly, however. All of my stories have a point, although I never tell you what that point may be. You can discover it for yourself. I think of these stories as opening stories, because they are meant to open the listener up--to crack him up or open, so to speak--to other possibilities. Like to the possibility that there is another way to write programs, to take just one example. Many of these stories (the coyote stories, in particular) have been used for centuries for this purpose.
In general, I try to provide an environment where bright people can enjoy themselves and admit that they don't know everything. There is a lot of give and take in my classes. I often learn as much as the students. Most of the people who take a programming course from me tell that it was one of the best courses they have ever taken. I certainly try very hard to make it so.
Your Course Guarantee
I have nearly 20 years experience using IDL. Teaching is my passion.
I think you will find my training courses lively, entertaining, and--above
all--motivating. I have helped literally hundreds of IDL users to learn
to write top-quality IDL programs.
Every training course I teach is fully guaranteed. If you are not completely satisfied, you will not be charged for anything beyond expenses. My number one goal is to provide more value and service than you expect. I'm confident that you will not find a better IDL training course anywhere, guaranteed!
IDL Training Course Outlines
Although every IDL course I teach is different, people often like to
have suggestions as to what can be offered. Here are three suggestions for
training courses that cater to a range of IDL users, from the beginner to
experienced IDL application developers.
- IDL Programming Fundamentals A three-day IDL overview course for those who want to learn the basics of IDL programming and graphical display techniques.
- IDL Programming Techniques A four-day programming course suitable for intermediate and advanced users who want to take their IDL programming to the next level. I've put all of the most powerful programming techniques I know together in this one, all-encompassing course.
- IDL Object-Oriented Programming A three-day programming course focusing on widget-based object-oriented programming techniques. About half the class is devoted to writing objects using direct graphics, and about half the class is devoted to learning about the IDL object graphics library.
To Find Out More
If you want to know why hundreds of scientists and engineers have already chosen Fanning Software Consulting to provide them with IDL training, then contact us today by filling out a simple reply form. This will also ensure that you are notified of upcoming IDL books and courses that are being taught in your area. You may also contact us by phone 970-221-0438 or e-mail to discuss your specific training requirements.
IDL Programming Fundamentals Course
IDL Programming Fundamentals is a three-day course for those who want a comprehensive overview of IDL functionality, programming, and direct graphics techniques. The course concentrates on those basic programming and graphics display techniques that are required in almost every IDL program. Attention is given to reading, analyzing, and displaying your data both on the display and in hardcopy output. The course is suitable for those just starting to learn IDL or for those who want to expand their IDL programming repertoire by learning new tricks and techniques.
Each course is tailored specifically to the interests and abilities of the course participants. Feel free to bring your own data to use in the various examples and programming exercises. Each course participant receives a copy of my new programming manual, IDL Programming Techniques.
IDL Programming Fundamentals Overview
- Overview of IDL functionality and capabilities.
- Creating line, contour, and surface plots.
- Working with images and simple image processing.
- Reading and writing data files.
- Creating data animations.
- Using the Z-Graphics buffer.
- Working with colors in IDL.
- Writing powerful IDL programs.
- Creating PostScript, GIF, JPEG file output.
- Tips, tricks, and techniques used by IDL programming experts.
Minimum skill level:
- Knowledge of a high level programming language. No IDL experience required.
- Ability to use a text editor.
- Experience with one of the following computer operating systems: UNIX, Windows 3.1/95/NT, VMS, or Macintosh.
IDL Programming Techniques Course
IDL Programming Techniques is a four-day course for those who want to take their IDL programming to the next level. In over five years of teaching IDL programming, I've noticed that many new IDL programmers lack a sense of how to write a good IDL program. Most of us write programs to get the job done. But if we are aware of a few simple programming principles, those get the job done programs can be in resizeable graphics windows, be printed directly on PostScript printers, be saved as GIF or JPEG files, have their own graphical user interface to drive them, work on 8-bit and 24-bit systems automatically, and be easily shared with colleagues who are developing other tools.
This class is the only IDL training course I know of where these programming principles are explained in a systematic way. The art of programming I teach is an object-oriented approach that results in programs that are easily maintained, extended, and shared among colleagues. The benefit of learning to program this way from the beginning is that it is a natural progression into the new object programming methods introduced in IDL 5. People who have taken the IDL Programming Techniques course in the past are writing much better-- and significantly more useful--programs than the average IDL programmer.
Each course participant receives a copy of my new programming manual, IDL Programming Techniques.
IDL Programming Techniques Overview
- Techniques for writing powerful graphics display programs.
- IDL graphical display tricks (including such techniques as erasing display windows, creating rubberband selection tools, and fast animations).
- How to write graphical user interfaces (widget programs) in IDL. This includes powerful techniques for communicating between widget program modules and between independent widget programs, all without using common blocks.
- How to write information gathering dialog widgets (these include both modal and non-modal dialogs).
- How to create your own widget programming library by writing powerful compound widgets.
- When and how to use pointers in IDL.
- How to write programs that run correctly on both 8-bit and 24-bit displays.
- How to create resizeable graphics windows for all of your graphics programs.
- How to get perfect PostScript output with automatic output to PostScript printers.
- How to write object-oriented programs, including how to create your own objects and methods.
Minimum skill level:
- Knowledge of a high level programming language.
- At least six months experience with IDL programming. You must be totally familiar with basic IDL graphics display techniques. In addition, you must know how to write an IDL procedure and function and how to define both input and output keywords. This class moves quickly. If you are not comfortable writing IDL programs, consider taking the IDL Programming Fundamentals course first.
- Experience with one of the following computer operating systems: UNIX, Windows 3.1/95/NT, VMS, or Macintosh.
IDL Object-Oriented Programming Course
IDL Object-Oriented Programming is a three-day programming class that covers IDL's object-oriented programming concepts in considerable depth. The object's and object classes in IDL have the potential to change the way IDL programs are written in the same way that the introduction of widgets did several years ago. But as with widgets, the learning curve is quite steep and first-time learners are not helped much by the always terse documentation supplied with IDL. Plus, the object graphics system is so different from what you may have already encountered in IDL, it may be best if you forget everything you already learned about direct graphics in IDL!
The purpose of this class is to give you a context and basic understanding of the principles of object-oriented programming, so that you can learn more about this exciting new way of programming on your own. You will also learn when it makes sense to use object graphics in your programs and when it makes more sense to stick with the tried and true direct graphics system. If you want to cut through the hype and learn how object graphics really work, this is the class for you.
IDL Object-Oriented Programming Overview
- Introduction to heap variables: pointers and objects.
- Understanding INDEXED and RGB color models and their implications for data display.
- How are pointers, objects, and structures different from each other?
- Automatic structure initialization and object method definition.
- Implications of differences between direct and object graphics.
- What does encapsulation mean for memory management and data sharing?
- What is object inheritance and how can it be used to advantage?
- What are the advantages of object polymorphism? Why should you care?
- What does graphic persistence really mean? What doesn't it mean?
- Understanding object classes and defining your own.
- Limitations of object graphics. What you can't do (at least not yet).
- How to write an object graphics program.
- What is the view rectangle and why is it so critical to me?
- How to write a direct graphics program that looks like an object.
- Rules and techniques for building your own object classes.
- Writing methods for your objects.
Minimum skill level
- At least 1 year IDL programming experience or
- Completion of the IDL Programming Techniques course.
- Good knowledge of--and experience with--IDL widget programming.
Last Updated 24 November 2006
