Conference Tutorials
Conference Tutorials offer the bonus of additional educational experiences for SESUG Conference attendees.
We have talented, recognized, and experienced instructors prepared to share their knowledge in these 3.5-hour sessions.
The tutorials cover a wide variety of topics and skill levels, which appeal to everyone interested in exceptional in-depth training.
Please note that tutorials are an extra fee event at SESUG.
For Tutorial cost information, please visit our registration page:
click here.
SESUG 2025 is
bring your own device
for any tutorials and/or hands on workshops for which laptops and/or software is required.
Some of the Tutorials require a laptop and/or software. This is indicated in the tutorial description.
If you have any questions regarding a tutorial, please contact our Tutorial Coordinators:
Jim Blum and Jonathan Duggins
tutorials@sesug.org
.
Monday, 09/22/2025 8:30am - 12:00pm |
---|
Tutorial Title | Instructor |
---|---|
SAS® Certification Review: Base Specialist | Jim Blum |
Getting Started with SAS® Macro Language Basics | Josh Horstman |
Coding for Data Quality in SAS® Viya® | Mark Jordan, SAS |
Monday, 09/22/2025 1:30pm - 5:00pm |
---|
Tutorial Title | Instructor |
---|---|
Fifty-Five Functions to Supercharge Your SAS® Code | Josh Horstman |
Let your Custom Statistical Graphs Put You on the Map - Literally! | Richann Watson & Louise Hadden |
Share Your Code with SAS® Packages – Tutorial from 0 to Hero | Bart Jablonski |
The Production of Tables, Listings, & Figures (TLF) Using Python, R, & SAS® | Kirk Paul Lafler |
Tutorial Details |
---|
Title: SAS® Certification Review: Base Specialist
Scheduled Time: Monday, September 22nd, 8:30 am - 12:00 pm
Instructor: Jim Blum
Abstract: This tutorial is an intensive review of concepts tested on the Base Programming Specialist certification exam.
The session includes a review of each main objective, emphasizing the most difficult components of the expanded objectives that are likely to be tested.
Examples focus on sample questions and how to approach them, including how to recognize what is actually being asked in the question and how to evaluate
potential answers. Students are also encouraged to bring questions based on their study and preparation for the exam..
Instructor Bio: Jim Blum is a co-author of Fundamentals of Programming in SAS: A Case Studies Approach, published in 2019.
Since August of 2000, he has been a Professor of Statistics at the University of North Carolina Wilmington where he has developed and taught
original courses in SAS programming for the university. These courses cover topics in Base SAS, SAS/SQL, SAS/STAT, and SAS Macros.
He also regularly teaches courses in regression, experimental design, categorical data analysis, and mathematical statistics;
and he is a primary instructor in the Master of Data Science program at UNC Wilmington which debuted in the fall of 2017.
He has experience as a consultant on data analysis projects in clinical trials, finance, public policy and government, and marine science and ecology,
and is a member of the committee that designed the Clinical Trials Programming Using SAS 9.4 Certification Exam.
He earned his MS in Applied Mathematics and PhD in Statistics from Oklahoma State University.
Title: Getting Started with SAS Macro Language Basics
Scheduled Time: Monday, September 22nd, 8:30 am - 12:00 pm
Instructor: Josh Horstman
Abstract: This half-day seminar is designed for the SAS programmer who is new to the Macro Language. We will start with the basics and cover the fundamentals
necessary to start applying SAS macros in your programs. Attendees will learn how the Macro Language works, what the Macro Symbol Table is, how the SAS system uses Macro Variables,
calling and executing macros, using macro parameters, and other key Macro Language concepts. The examples in the course materials demonstrate the power and flexibility of this part
of the SAS system and will enable you to apply its functionalities to your own programs right away!
Instructor Bio: Josh Horstman is an independent statistical programming consultant and trainer based in Indianapolis with over 25 years of experience using SAS.
He works primarily in the life sciences industry and specializes in clinical trial analysis and reporting for pharmaceutical and biotech clients. Josh is a SAS Certified Advanced Programmer
who loves coding and presenting at SAS user group conferences and other industry events. He also enjoys travelling and hiking with his family and has been to 47 states and 30 national parks.
Title: Utilizing National Healthcare Survey data in research and analysis using SAS
Scheduled Time: Monday, September 22nd, 8:30 am - 12:00 pm
Instructor: Mark Jordan
Abstract: This class teaches you how to use the SAS Quality Knowledge Bases (QKBs) and SAS Data Quality (DQ) procedures and functions to quickly and easily clean your dirty data.
Learn How To
- Check for and set the default QKB and Locale using SAS DQ autocall macros.
- Standardize data – e.g, re-write names in first name, last name order, change individual words to abbreviations or vice-versa, and apply complex casing rules using SAS DQ functions
- Perform powerful fuzzy matching with the DQMatch function and the DQMATCH procedure.
- Easily extract information from text with the DQExtract and DQExtTokenGet functions.
- Modify SAS programs to maximize pass-through to the database and minimize execution time.
Prerequisites
- This is an intermediate level SAS training class. You already be able to:
- Access existing SAS data libraries using a LIBNAME statement.
- Write and submit SAS programs to access and manipulate data using the DATA step and PROC SQL.
- Read and interpret the SAS log.
- Diagnose and correct syntax errors in SAS.
- SAS 9.4 with SAS Data Quality licensed
- Any version of SAS Viya
Title: Fifty-Five Functions to Supercharge Your SAS® Code
Scheduled Time: Monday, September 22nd, 1:30 pm - 5:00 pm
Instructor: Josh Horstman
Abstract: The SAS System includes an extensive collection of nearly five hundred DATA step functions that can provide great utility and convenience for the programmer.
Many of these are relatively new and unknown. In this half-day course, we’ll look at some SAS functions that should be in every programmer’s toolbox. Each function will be presented
with concrete examples so you’ll be able to take what you’ve learned and put it to use right away. We will cover functions from a broad range of categories such as string
manipulation functions, functions for controlling program logic, functions for handling dates and times, mathematical functions, and much more. This course is suitable for
beginning SAS programmers, but even seasoned veterans will probably find something new!
Instructor Bio: Josh Horstman is an independent statistical programming consultant and trainer based in Indianapolis with over 25 years of experience using SAS.
He works primarily in the life sciences industry and specializes in clinical trial analysis and reporting for pharmaceutical and biotech clients. Josh is a SAS Certified Advanced Programmer
who loves coding and presenting at SAS user group conferences and other industry events. He also enjoys travelling and hiking with his family and has been to 47 states and 30 national parks.
Title: Let your Custom Statistical Graphs Put You on the Map - Literally!
Scheduled Time: Monday, September 22nd, 1:30 pm - 5:00 pm
Instructor: Richann Watson & Louise Hadden
Richann is an independent statistical programmer based in Ohio who loves to code and is very active in the SAS User Group community.
She has been using SAS since 1996 with most of her experience being in the life sciences industry. She specializes in analyzing clinical trial data. When Richann is not busy coding or
volunteering in the SAS User Group community, she is spending time with her family and cute but psycho puppy, Loki, or doing some of her favorite crafts such as crocheting or sewing.
Louise has been using SAS since the earth was a primordial soup, and still has her V5 manual (albeit in tatters). She spends much of her time supporting statistical analyses,
specializing in complex reporting and visualizations in the Life Sciences. In her spare time, she volunteers at a local animal shelter, walking her own dog, taking pictures,
and reads voraciously. She is also the girl with the SAS tattoo!
Abstract: Anyone who has produced a graph using ODS Graphics has unknowingly taken the road less traveled by using the Graph Template Language (GTL).
Similarly to GPS, ODS Graphics allows multiple routes. You choose the route based on different needs (e.g., direct, avoiding tolls – i.e., complexity) or maybe you desire
to stop at a scenic destination along the way. SAS ODS Graphics allows you to make that choice. SAS® Statistical Graphics (SG) procedures allow to generate a basic plot with
little to no complexity. However, we may want to add stops along our way to our destination. With the TMPOUT option, we can take the underlying code produced by SG procedures
to re-calculate our route. In this tutorial, you will learn how to use TMPOUT to generate the GTL code that sits behind an SG procedure. Thus, giving you a head start on
generating graphs using GTL. Utilizing GTL provides you with more control over its format and appearance. Although the graphs produced within SG procedures are adequate for
most situations, they sometimes lack those one or two welcomed detours you need to put your graph on the map – literally. GTL, as an extension of ODS Graphics, allows users
much greater flexibility in creating specialized graphs. In this tutorial, you’ll learn how to use GTL to create complex, highly customized graphics that you could only
map out in your dreams. We will take you on a guided tour through several types of layouts provided by GTL as well as various types of plots including incorporating a
MAP into your custom graphic.
Title: Share Your Code with SAS® Packages – Tutorial from 0 to Hero: Share Your Code with SAS® Packages
Scheduled Time: Monday, September 22nd, 1:30 pm - 5:00 pm
Instructor: Bartosz (Bart) Jablonski, PhD
Abstract: When working with SAS code, especially when it becomes more and more complex, there is a point in time when a developer decides to break it into small pieces.
The developer creates separate files for macros, formats/informats, and for functions or data too. Eventually the code is ready and tested and sooner or later you will want to share
code with another SAS programmer. Maybe a friend has written a bunch of cool macros that will help you get your work done faster. Or maybe you have written a pack of functions that
would be useful to your friend. There is a chance you have developed a program using local PC SAS, and you want to deploy it to a server, perhaps with a different OS. If your code is
complex (with dependencies such as multiple macros, formats, datasets, etc.), it can be difficult to share. Often when you try to share code, the receiver will quickly encounter an error
because of a missing helper macro, missing format, or whatever… Small challenge, isn’t it?
How nice it would be to have it all (i.e. the code and its structure) wrapped up in a single file – a SAS package – which could be copied and deployed, independent from OS, with a one-liner like: %loadPackage(MyPackage).
In the seminar an idea of how to create such a SAS package in a fast and convenient way, using the SAS Packages Framework, will be shared. We will discuss:
- concept of a package,
- the framework
- overview of the process, and
- how to build a package.
Instructor Bio: Bart is a mathematician working and playing with data, an open-minded analyst and science enthusiast. Consultant, seasoned SAS professional (since 2009), and SAS teacher. He gained experience in various domains including: higher education, telecommunication, clinical trials, and banking. Mostly by resolving various analytical and programming tasks using (among others) advanced SAS techniques mixed with domain knowledge or statistical methods. Since 2015 he has led SAS Programming courses at the Faculty of Mathematics and Information Science (Warsaw University of Technology). Author and speaker on various local and international SAS-related conferences. Author, designer, and developer of the SAS Packages Framework. The framework which allows to create SAS Packages - practical, organised, devops oriented, and "easy to work with" code sharing medium for SAS. See: https://github.com/yabwon/SAS_PACKAGES He's not afraid to admit to be a SAS geek... an active member of Polish SAS Users Group (PolSUG). To turn on his internal problem solver mode just say: "you probably can't do something like this in SAS..."
Title: The Production of Tables, Listings, and Figures (TLF) Using Python, R, and SAS®
Scheduled Time: Monday, September 22nd, 1:30 pm - 5:00 pm
Instructor: Kirk Paul Lafler
Abstract: The streamlined production of Tables, Listings, and Figures (TLFs) in a clinical study represents essential elements of a Statistical Analysis Plan (SAP)
by providing answers to regulatory questions along with the necessary support documentation for the clinical data contained in them. Tables are derived from source data and
often involve the manipulation of data, listings represent the various reports that are generated in file formats like Rich Text Format (RTF), and figures represent graphical
output that provides visual clarity and understanding of the data. This course provides attendees with an introduction to TLF programming production techniques using Python, R,
and SAS® software.
Course topics include:
- Introduction to Tables, Listings, and Figures (TLFs) in Clinical Studies.
- Statistical Analysis Plan (SAP) Defined.
- Highlight a SAP for Clinical Studies.
- Review ICH E3 and Clinical Study Report (CSR) Template.
- Explore an Example Clinical Study Report (CSR).
- Explore the Types of Data: Nominal, Ordinal, Interval, and Ratio.
- A High-level Introduction to Python, R, and SAS software.
- Process of Data Preparation: Data Cleaning, Data Manipulation, Data Transformation, TLF Planning.
- Example Tables, Listings, and Figures (TLFs).
- Process of Producing Tables, Listings, and Figures (TLFs).
- Packages used to produce TLFs in Python.
- Rich Text Format (RTF) Output: Pandas, numpy, scikit, matplotlib
- Packages used to produce TLFs in R.
- Rich Text Format (RTF) Output: Tidyverse (Data Manipulation), atable, r2rtf (Reporting in RTF Format)
- Procedures used to produce TLFs in SAS software.
- Categorical Data: PROCs – FREQ, SGPLOT, LOGISTIC, GENMOD, GLIMMIX
- Continuous Data: PROCs – MEANS, UNIVARIATE, TTEST, NPAR1WAY, GLM, REG, MIXED, NLIN, NLMIXED
- Graphing Data: PROCs – UNIVARIATE (Histograms, QQPlots), Statistical Graphics (SG) SGPLOT (Histograms, BoxPlots, BarCharts, ScatterPlots, RegressionPlots, ScatterPlot Matrix), and Graph Template Language (GTL)
- RTF and PDF Output: PROCs – SORT, FORMAT, SQL, TRANSPOSE, REPORT, Output Delivery System (ODS)
Prerequisites: Basic understanding of Statistics, but No previous Python, R, and SAS experience required
Delivery Method: Instructor-led with code examples
Course Material: e-Course Notes (PDF format) and code are provided to Attendees.
Instructor Bio: Kirk teaches dozens of in-person and virtual SAS, SQL, Analytics, Python, Excel, and cloud-based technology courses, workshops, and webinars to users around the world, and is an educator, consultant, developer, programmer, data scientist, and author. Kirk is also a lecturer and adjunct professor at San Diego State University and is a Western Users of SAS Software (WUSS) Executive Committee (EC) Board Member serving as the Open Source Advocate and Coordinator.