Reusable
Programs and List Processing:
Concepts
and Development,
Techniques
and Tools
BASUG Half-Day Training Session
Topic: Principles of Writing, Developing and Consolidating
Reusable Programs
Instructor: Ronald J. Fehd
Centers
for Disease Control, Atlanta, GA
Ronald Fehd has a B.S. in Computer Science, and has attended SAS®
User Group conferences since 1989. Since 1997 he has presented over a dozen
papers on macro usage, programming theory, and Hands-On Workshops on list
processing.
Ron is also “the macro
maven” on SAS-L, the international online SAS listserve,
to which he has posted over 5,000 messages since 1997. In 2001 and 2003 he was
voted Most Valuable SAS-L Contributor.
He is the author of several packages on the SAS Community wikipedia.
His 20 years of SAS
experience includes 15 years as a data manager; he is currently tech support
for SAS on the HelpDesk at Centers for Disease
Control in Atlanta.
When:
Where: NEW LOCATION!
The Courtyard Marriott Boston-Cambridge
777 Memorial Drive
Cambridge, MA 02139
(617) 492-7777
Please see directions below
Price: $125 (if paid by check postmarked by
$160
(paid at-the-door)
See
details below
Summary: This
course covers the principles of writing, developing and consolidating reusable
programs. The goal is to make you a more
valued and productive programmer or analyst.
At first, you will be shown how to move beyond simple “cut and paste”
code into reusable code that handles repetitive tasks efficiently.
Next,
you will learn how to look at the process used to write code. This will allow you to develop the
requirements documents usually needed but rarely provided by supervisors and
clients. It will also give you insight
into how large-scale applications can be broken down into smaller, repeatable
tasks.
Audience: SAS users at all levels will benefit from this course,
though you should have an understanding of the CONTENTS, PRINT, FREQ, SUMMARY
and SORT procedures. Some
familiarity with macro language is helpful but not required.
Benefits: Why
do you want to learn this material? To:
·
Reduce tedious,
repetitive, and ad hoc programming
·
Program smarter,
by identifying common elements, processes, and features across programs that
can be automated into reusable SAS code
·
Improve your
processes for developing requirements and satisfying your clients and
supervisors
·
Gain perspectives
for using existing programs for building complete large systems
·
Become familiar
with the intermediate step in macro development: parameterized %INCLUDEs
·
Become a faster,
greater, and valued programmer
We promise you that you will have ah-hah moments!
Contact: If you have questions about the course contact: Bruno Berszoner (617-543-5718) or Brian Saper (617-489-4651)
Registration: Pre-registration
is required. Please see detailed
information below.
Course
Description
This course is designed to help SAS
programmers develop their skills by progressing from writing simple code to
writing more flexible, automated code.
This progression is as follows:
1.
Beginning (where most programmers start off): review
of hard-coded, ad hoc programs
2.
Improving your programs: consolidating ad-hoc
programs into a reusable program (such as a routine or subroutine)
·
Identifying hard-coded elements that can be
program parameters.
·
Organizing your file references, options,
projects and sites in an autoexec.sas file.
3.
Driving the reusable programs – using lists:
·
How to make lists
·
Using lists to call reusable programs
4.
How to write modules which make and use lists
·
Create programs that make lists and use them
to call other programs
·
Using parameterized %INCLUDE statements to
automate your code
·
Replacing the macro %IF statement with %SYFUNC
and the IFC function
·
Replacing the macro %DO loop with the
trainer’s CALLX SAS code routine. See www.sascommunity.org/wiki/Call_Execute_Parameterized_Include
for more details.
5.
Examples of automation – we will look at
examples written by the trainer:
·
SmryEachVar,
a data review suite consisting of include modules, routines and subroutines
which provide a summary of each data set (Memname) in
a library (Libname).
See www.sascommunity.org/wiki/SmryEachVar_A_Data_Review_Suite
for more details.
·
Using PROC CONTENTS output as a list of
variables
·
Calling a reusable FREQ program for each
variable
Registration and Payment Instructions for
the Course
Please read this entire section carefully!
1. You must pre-register for this training, by going to this site: http://www.basug.org/register.php3
INDIVIDUAL, ON-LINE PRE-REGISTRATION IS REQUIRED FOR
TRAINING. NO EMAIL!
All registrants will receive an immediate email confirmation of their pre-registration.
Within 72 hours you will then receive another e-mail, with a customized invoice for the training, based on your membership status.
Seats are limited, so register early! Seating is guaranteed only for pre-paid registrants.
2. Complete the invoice form and mail it
along with your check, postmarked by
BASUG
PO Box 253
Boston, MA 02117
3. Note that this class is open to BASUG members only. This means that your 2009 $30 individual membership dues must be paid up in order to attend! If you are not currently a member, your invoice will include the $30 fee for 2009 BASUG membership dues.
If you have any questions about your BASUG membership status, please contact our Membership Coordinator (Robert Rosofsky).
4. Please do not mail any checks after Friday, June 12, 2009 If you miss the mail-in deadline, bring your completed invoice form and a check made payable to BASUG to cover the at-the-door tuition rate of $160, plus any $30 membership fees due, as specified in your invoice form. For walk-ins, we will only be able to accommodate people on a first-come, first-served basis until seats are filled.
Full payment is due by the day of the class. There will be NO EXCEPTIONS. As a small voluntary organization, we cannot accept credit cards at this time. We also will not handle cash, so checks only please.
5. REFUND
POLICY: To receive a full refund, notify either of the meeting coordinators
(see “Contact” above) by
Keep your BASUG Membership
up-to-date! Print out a membership form
from our website, and bring it with you to the meeting (along with your
check). Please note that we have discontinued
Corporate Memberships - we now provide only Individual Membership at $30
annually. For more information on our
membership policy, or to print out a form visit: http://www.basug.org/basugj.shtml
DIRECTIONS TO THE TRAINING
Directions to the Courtyard Marriott Boston-Cambridge can
be found at http://www.basug.org/directionsCourtyard.html
BASUG CONTACTSBASUG's Mail Address: BASUG PO Box 253 Boston, MA 02117To email our Webmaster: basugwm@basug.org