SOUTHEAST SAS USERS GROUP CONFERENCE 2025: September 22nd - 24th

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.
Who Should Attend: Data scientists, data analysts, and SAS programmers
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.
Applies to these SAS versions:
  • SAS 9.4 with SAS Data Quality licensed
  • Any version of SAS Viya
Instructor Bio: Mark Jordan (a.k.a. SAS Jedi) grew up in northeast Brazil as the son of Baptist missionaries. He served 20 years as a US Navy submariner, pursuing his passion for programming as a hobbyist. Upon retiring from the Navy, his hobby became his dream job and he’s been a happy SAS programmer ever since! Mark writes and teaches a broad spectrum of SAS programming classes, and his book, "Mastering the SAS® DS2 Procedure: Advanced Data Wrangling Techniques" is in its second edition.

 

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:

  1. concept of a package,
  2. the framework
  3. overview of the process, and
  4. how to build a package.
The intended audience for the presentation is intermediate or advanced SAS developers (i.e. with good knowledge of Base SAS and practice in macro programming) who want to learn how to share their code with others. All materials are publicly available at seminar’s GitHub: https://github.com/yabwon/HoW-SASPackages.

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)
Intended Audience: Programmers, Statistical Programmers, Clinical Scientists, Statisticians, Data Managers, and others who want to learn how to produce Tables, Listings, and Figures (TLFs) using Python, R, and SAS Software.

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.