Upcoming Classes 2021

WUSS Online Classes 2021 – UPCOMING CLASSES

In lieu of an annual conference, WUSS is offering an extensive menu of online training classes in 2021. Our classes are taught by seasoned industry experts and are a tremendous value at just $125 per class. All classes are held from 10am to 2pm PDT (1pm to 5pm EDT). Please click on each class title for a detailed description of the course and information about the instructors.

Register Now

Registration is NOW OPEN for these classes:

Date Course Title (click for description) Instructor(s)
SEPTEMBER
Sep 2 Introduction to the SQL Procedure Kirk Paul Lafler
Sep 3 PROC SQL Programming: Beyond the Basics Using SAS® Kirk Paul Lafler
Sep 17 Python Programming Seminar – Basics for Statistical Programmers and Statisticians Kevin Lee
Sep 20 Advanced DATA Step Programming Techniques Josh Horstman
Sep 22 SAS Essentials (or How I Learned to Stop Worrying and Love Code) Part 1 Tasha Chapman
Sep 24 Python Programming Seminar – Advanced with Machine Learning Kevin Lee

Registration will OPEN LATER for these classes:

Date Course Title (click for description) Instructor(s)
NOVEMBER
Nov 15 SAS Essentials (or How I Learned to Stop Worrying and Love Code) Part 2 Tasha Chapman
Nov 17 SAS Macro Quoting: Learning the Skills of a Macro Developer Russ Lavery
Nov 19 CDISC ADaM – Implementation by Example Richann Watson
Nov 29 Everything is Better with Friends: Using SAS in Python Applications with SASPy and Open-Source Tooling (Getting Started) Isaiah Lankham and Matthew Slaughter
DECEMBER
Dec 2 Designing Effective Surveys: Using Social Science to Answer Your Questions Tasha Chapman
Dec 6 Everything is Better with Friends: Using SAS in Python Applications with SASPy and Open-Source Tooling (Beyond the Basics) Isaiah Lankham and Matthew Slaughter
Dec 7 Fifty-Five Functions to Supercharge Your SAS® Code Josh Horstman
Dec 9 Hands-On Functions: How to Build Your Own User-Defined FCMP Functions and Macro Functions Troy Martin Hughes

Course Descriptions


Introduction to the SQL Procedure

Kirk Paul Lafler
Thursday, September 2, 2021, 10:00am-2:00pm Pacific Daylight Time

This introductory-level course provides SAS® users with a solid foundation with the Base-SAS software’s SQL procedure. Attendees learn core concepts and features on how PROC SQL can be used to interact and access data stored in SAS datasets (or tables); use PROC SQL to retrieve, subset, order, and group data and results; understand the similarities and differences between DATA step merges and joins; perform simple inner and outer join operations to shape results; produce “quality” output and results using PROC SQL and Output Delivery System (ODS); create new tables; create and modify data in tables; and manage the tables themselves.

PROC SQL Programming: Beyond the Basics Using SAS®

Kirk Paul Lafler
Friday, September 3, 2021, 10:00am-2:00pm Pacific Daylight Time

PROC SQL Programming: Beyond the Basics Using SAS® provides SAS® and SQL users with core concepts, features and techniques on how to effectively use PROC SQL. Attendees learn how to use PROC SQL to access data in SAS datasets (tables); review essential programming tasks including retrieving, execution order of the SELECT clauses, subsetting, ordering, and grouping data; construct logic scenarios with case expressions; explore one-to-one, one-to-many, and many-to-many data relationships; understand the similarities and differences between DATA step merges and joins; create inner and outer join constructs as well as apply set operators to combine two or more tables together; use summary (statistical) functions to aggregate data; use three different approaches to create new tables; interface PROC SQL and the macro facility to create single-value and multi-value (list) macro variables; apply a number of query debugging techniques to help detect coding errors, warnings and other messages; and scale SQL queries for improved performance.

Python Programming Seminar – Basics for Statistical Programmers and Statisticians

Kevin Lee
Friday, September 17, 2021, 10:00am-2:00pm Pacific Daylight Time

Python is one of the most popular language nowadays. Python can be used to build just about anything, and it is a great language for back-end web development, data analysis, scientific computing, machine learning and many more.

The seminar is intended for Statistical Programmers and Statisticians who are familiar with SAS programming. It is not easy for programmers and biostatisticians to learn new language alone. The seminar will provide basic concept and foundation of Python programming, and the seminar will provide its comparison and similarity with SAS programming. Therefore, Statistical Programmers and Statisticians have easier time to understand how Python programming works.

The basic Python Programming seminar will cover basic Python programming. It is recommended for those who has a little or no experience in Python programming. It will help SAS programmers and statisticians how to start Python programming and how to use Jupyter Notebook/Lab (the most popular python platform).

Agenda for the seminar: Python Programming Seminar – Basics

  • Introduction to Python for statistical programmers and statisticians
  • Jupyter Notebook (Python programming platform) download and implementation
  • Python Variables Type: Number, String, Lists, Dictionaries, Arrays, Data Frames
  • Simple variable manipulation – If & For statements
  • Python Function development and comparison with SAS Macro
  • Import external Modules/Functions
  • Reading and writing external data (excel, SAS datasets, Images)
  • Data manipulation using Python
  • Introduction of NumPy and Array
  • Introduction of Pandas and DataFrame: DataFrame vs SAS datasets
  • Basic data manipulation – merge, sort, variables drop/addition
  • Create SDTM DM dataset using SAS raw datasets

Advanced DATA Step Programming Techniques

Josh Horstman
Monday, September 20, 2021, 10:00am-2:00pm Pacific Daylight Time

To solve complex coding problems with the SAS® DATA step, one must go beyond a basic understanding of the individual statements. You need to understand how the various statements interact with each other and how their options can be leveraged to build DATA step code that provides innovative solutions to the toughest of problems. Based on Art Carpenter’s book, Carpenter’s Guide to Innovative SAS® Techniques, this class is a must for the DATA step programmer who wants to take his or her programs to the ‘next’ level.

Topics include working across multiple observations using look-ahead and Look-back techniques, employing the DOW loop, taking advantage of double SET statements, working with hash objects, performing table lookups, using arrays to transpose data from columns to rows and back again, evaluating complex expressions, applying data set options, adopting new DATA step functions (and old function with new options), and more.

This course is designed to be taken by a student who has a basic understanding of the DATA step and its primary statements. The material will focus on advanced topics that will give the student a deeper understanding of the operation of the DATA step. Through examples, students will be exposed to innovative techniques for solving difficult programming problems.

SAS Essentials (or How I Learned to Stop Worrying and Love Code) Part 1

Tasha Chapman
Wednesday, September 22, 2021, 10:00am-2:00pm Pacific Daylight Time

SAS Essentials is a three-part instructor-led course that provides a thorough introduction to the basics of SAS programming including DATA steps, PROC steps, and the Output Delivery System. In these classes we focus entirely on coding, providing a fundamental education in how SAS thinks and unlocking the power to use the incredible versatility of SAS code. Whether you’re entirely new to SAS, new to coding, or just want to brush up on the fundamentals, these classes are for you.

Part 1: DATA steps and data manipulation (or How to Train Your SAS Datasets)

Together we’ll walk through the fundamental building blocks of a SAS program with a deep dive into DATA steps and data manipulation, including SAS libraries, conditional processing, functions, and more.

Python Programming Seminar – Advanced with Machine Learning

Kevin Lee
Friday, September 24, 2021, 10:00am-2:00pm Pacific Daylight Time

The advanced Python programming seminar will cover more advanced Python programming. It is recommended for those who took morning seminar or last year’s Python course, or for those who have some knowledge, but want to learn more advanced Python programming. This seminar will also cover Machine Learning implementation using Python.

Agenda for advanced Python programming seminar

  • Simple review of basic Python Programming seminar
  • Metadata analysis (PROC CONTENT)
  • Advanced Programming – transpose, remove duplicate record, group-by
  • Statistical Analysis – Pair t-test, Fisher Exact Test, Survival Analysis
  • Data visualization – Scatter Plot, Histogram, Kaplan Meier Curves
  • Machine Learning Introduction – concepts and theory
  • Machine Learning Algorithm – Regression, Logistic Regression, Decision Tree
  • Deep Learning Algorithm – Deep Neural Network (DNN), Convolutional Neural Network (CNN), Recurrent Neural Network (RNN)
  • Python Machine Learning modules – Sklearn, Tensorflow, Keras
  • Python Machine Learning workshop using image data

Through the seminars, programmers and statisticians will be able to learn the following:

  • Deeper Understanding of Python programming
  • Jupyter Notebook download and experience
  • Real time Python coding exercise
  • Difference and similarity with SAS programming
  • Data Manipulation and analysis in Python
  • Machine Learning programming in Python

SAS Essentials (or How I Learned to Stop Worrying and Love Code) Part 2

Tasha Chapman
Monday, November 15, 2021, 10:00am-2:00pm Pacific Daylight Time

SAS Essentials is a three-part instructor-led course that provides a thorough introduction to the basics of SAS programming including DATA steps, PROC steps, and the Output Delivery System. In these classes we focus entirely on coding, providing a fundamental education in how SAS thinks and unlocking the power to use the incredible versatility of SAS code. Whether you’re entirely new to SAS, new to coding, or just want to brush up on the fundamentals, these classes are for you.

Part 2: PROC steps and basic reporting (or How to Succeed in SAS Without Really Trying)

This course will feature a showcase of the most common reporting procedures, including MEANS, FREQ, PRINT, TABULATE, and REPORT. We’ll also walk through the Output Delivery System and how it can be used to build professional reports the easy way.

SAS Macro Quoting: Learning the Skills of a Macro Developer

Russ Lavery
Wednesday, November 17, 2021, 10:00am-2:00pm Pacific Daylight Time

Attending this seminar that will give people the skills to move from being a macro writer to macro developer by understanding macro quoting. It works through more macro quoting examples than exist an all other online materials – combined.

This Seminar focuses on using examples, and animated PowerPoints of the internal workings of the SAS system, to make words in the documentation clear and understandable. This seminar is effective for several reasons. Firstly, pictures/maps of the system are easier to understand than words when establishing relationships among system components. Secondly, a programmer must understand the sequence, and timing, of the steps in macro quoting in order to write/debug macros. This is best communicated as a series of “detailed moving images” that show the states of different parts of the system.

The moving graphical presentation has several advantages:

  • The picture of the process allows a reader to “check their understanding”. If the picture agrees with an attendee’s understanding of the words, the concept has been understood. If the attendee wants to ask questions, the map/picture allows the attendee to ask very specific/focused question and get answers that address their point of confusion.
  • This graphic presentation of the material helps bridge language barriers (I’ve done this in China 3 times). When English skills are lacking, the picture provides a second channel of communication.
  • The macro quoting process is complex and understanding/learning the process requires a student “hold the state of the system in their memory.” Using pictures of the system greatly reduces the mental complexity (human memory needs) of the learning process.

CDISC ADaM – Implementation by Example

Richann Watson
Friday, November 19, 2021, 10:00am-2:00pm Pacific Daylight Time

This course will provide a high-level overview of some of basic ADaM concepts. It is assumed that the attendee will have a fundamental knowledge of the different ADaM structures and principles. The primary focus of the course is to illustrate the implementation of some of the concepts found in both the ADaM Implementation Guide (ADaM IG) and the ADaM Structure for Occurrence Data (OCCDS) documents. Items covered include setting up subject level analysis data set (ADSL) for common trial designs and walking through the process of creating a basic data structure (BDS) starting from a simple BDS and building on it to structure a data set that will support one or more analyses. Additionally, the course will demonstrate how to implement some variables that are only found in OCCDS, such as the standardized MedDRA query (SMQ) and customized query (CQ) variables.

Everything is Better with Friends: Using SAS in Python Applications with SASPy and Open-Source Tooling (Getting Started)

Isaiah Lankham and Matthew Slaughter
Monday, November 29, 2021, 10:00am-2:00pm Pacific Daylight Time

Interested in learning Python? How about learning to make Python and SAS work together?

In this class, we’ll practice writing Python scripts using Google Colab (https://colab.research.google.com/), which is a free online implementation of JupyterLab, and we’ll link to SAS OnDemand for Academics (https://welcome.oda.sas.com/) to access the SAS analytical engine. We’ll also learn to use the popular pandas package, whose DataFrame objects are the Python equivalent of SAS datasets.

Along the way, we’ll work through common data-analysis tasks using both regular SAS code and Python together with the SASPy package, highlighting important tradeoffs for each and emphasizing the value of being a polyglot programmer fluent in multiple languages. This will include a beginner-friendly overview of Python syntax and data structures.

SASPy is a module developed by SAS Institute for the Python programming language, providing an alternative interface to the SAS system. With SASPy, SAS procedures can be executed in Python scripts using Python syntax, and data can be transferred between SAS datasets and their Python DataFrame equivalent. This allows SAS programmers to take advantage of the flexibility of Python for flow control, and Python programmers can incorporate SAS analytics into their scripts and applications.

This class is aimed at SAS programmers of all skill levels, including those with no prior experience using Python or JupyterLab. However, some examples will assume familiarity with the Output Delivery System, PROC SQL, and the SAS Macro Facility. Accounts for Google and SAS OnDemand for Academics will be needed to interact with code examples, and instructions for creating accounts will be distributed in advance. Also, all class materials will also be accessible (without any accounts needed) through https://github.com/saspy-bffs/wuss-2021-class

Designing Effective Surveys: Using Social Science to Answer Your Questions

Tasha Chapman
Thursday, December 2, 2021, 10:00am-2:00pm Pacific Daylight Time

When we want to know what’s going on in the minds of our customers, clients, and stakeholders we often develop a survey. However, gathering public opinion is not as simple as asking and answering. In fact, poorly designed questions actually frustrate participants and produce useless – or worse, inaccurate – results.

Don’t waste another minute creating a survey that doesn’t elicit useful information! Learn the right way to design a questionnaire from a scientific perspective. This course will use the fundamentals of social science research to prepare attendees to make their next survey a targeted and informative success.

Everything is Better with Friends: Using SAS in Python Applications with SASPy and Open-Source Tooling (Beyond the Basics)

Isaiah Lankham and Matthew Slaughter
Monday, December 6, 2021, 10:00am-2:00pm Pacific Daylight Time

Are you familiar with Python syntax? Want to go beyond the basics, and use Python and SAS together like a pro?

As in the “Getting Started” version of this course, we’ll practice writing Python scripts using Google Colab (https://colab.research.google.com/), which is a free online implementation of JupyterLab, and we’ll link to SAS OnDemand for Academics (https://welcome.oda.sas.com/) to access the SAS analytical engine. We’ll also practice using the popular pandas package, whose DataFrame objects are the Python equivalent of SAS datasets.

Along the way, we’ll work through more advanced data-analysis tasks using both regular SAS code and Python together with the SASPy package, highlighting important tradeoffs for each and emphasizing the value of being a polyglot programmer fluent in multiple languages. For example, we’ll explore advanced data-manipulation techniques, using SASPy as an interface for SAS/STAT, calling web APIs, and creating simple Python web applications incorporating SAS analytics.

SASPy is a module developed by SAS Institute for the Python programming language, providing an alternative interface to the SAS system. With SASPy, SAS procedures can be executed in Python scripts using Python syntax, and data can be transferred between SAS datasets and their Python DataFrame equivalent. This allows SAS programmers to take advantage of the flexibility of Python for flow control, and Python programmers can incorporate SAS analytics into their scripts and applications.

This class is aimed at intermediate to advanced SAS programmers, but assumes only basic familiarity with Python syntax and pandas DataFrames. However, no knowledge of JupyterLab is assumed, and it’s not necessary to have taken our “Getting Started” class beforehand. Accounts for Google and SAS OnDemand for Academics will be needed to interact with code examples, and instructions for creating accounts will be distributed in advance. Also, all class materials will also be accessible (without any accounts needed) through https://github.com/saspy-bffs/wuss-2021-class

Fifty-Five Functions to Supercharge Your SAS® Code

Josh Horstman
Tuesday, December 7, 2021, 10:00am-2:00pm Pacific Daylight Time

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!

Hands-On Functions: How to Build Your Own User-Defined FCMP Functions and Macro Functions

Troy Martin Hughes
Thursday, December 9, 2021, 10:00am-2:00pm Pacific Daylight Time

“User-defined” functions represent those functions that are created by SAS users, as contrasted with “built-in” functions, which are part of the out-of-the-box Base SAS module and the SAS language. SAS provides two methods to build user-defined functions, including the SAS macro language and the SAS Function Compiler (aka PROC FCMP). This introductory course demonstrates how to build user-defined functions (and subroutines)—including both macro functions and FCMP functions. No prior experience with the SAS macro language or PROC FCMP syntax is required.

User-defined functions improve software reusability—that is, the ability of code modules to be reused in future software projects, and to be reused by multiple SAS practitioners within a team or organization. This code reuse enables a function to be developed once but used repeatedly, which reduces the workload of the SAS practitioners who are writing programs, by enabling us to rely on previously built (and fully tested) code modules. Thus, user-defined functions lead to not only more flexible and configurable software but also a more productive, efficient SAS team.

This HANDS-ON workshop enables students to run all programs in real-time using SAS Display Manager, SAS Enterprise Guide, or SAS OnDemand for Academics.

Macro function topics include:

  • Gentle introduction to the SAS macro language, including differentiation between SAS macros and SAS macro functions
  • Differentiation between positional and keyword parameters
  • Defining optional parameters and default parameter values
  • Passing macro lists and two-dimensional data structures to functions
  • Use of the PARMBUFF option in the %MACRO statement to facilitate multi-element arguments
  • Macro function argument validation, exception handling, and use of global macro variables as return values / return codes

FCMP function topics include:

  • Gentle introduction to PROC FCMP syntax and the construction of user-defined functions and subroutines (with the FUNCTION and SUBROUTINE statements, respectively)
  • Use of the VARARGS option in the FUNCTION statement to enable multi-element arguments to be passed to functions, and OUTARGS option to modify multiple arguments (within a subroutine)
  • Passing character and/or numeric data types to functions
  • Passing arrays to functions, and utilizing arrays within functions
  • Declaring, initializing, and referencing hash objects within functions
  • Calling functions and subroutines from the DATA step, and from %SYSFUNC and %SYSCALL, respectively
  • Calling functions from PROC FORMAT

Meet the Instructors

Tasha Chapman has been using SAS since 2003 and an active member of the SAS User Community since 2006. Throughout her career she has championed continuing education and professional development, presented trainings and workshops at professional conferences across the country, sat as an executive committee member on nationally recognized associations, and founded two organizations dedicated to educating colleagues about research, data, and statistics. She was the chair of the Western Users of SAS Software Conference and Educational Forum in 2017.

Tasha received a Master’s Degree in Psychology, with an emphasis on personality assessment and psychometrics from the University of California, Riverside. Since 2005 she has worked for the State of Oregon as a lead research analyst providing data and policy analysis for Oregon OSHA, the Oregon Child Welfare Program, and the Oregon Health Authority. She lives in Salem, Oregon with her two adorable kids, Nadia and Atlas.

Patricia Ferido is a Senior Research Programmer at the Leonard D. Schaeffer Center for Health Policy and Economics where she analyzes medical data for research on dementia care and treatment. Prior to joining the Schaeffer Center, she worked as an economics litigation consultant specializing in the analysis of labor data for wage and hour litigation. She holds a BA in both Economics and International Development Studies from UCLA and is pursuing a Masters in Public Policy Data Science at USC.
Josh Horstman is an independent statistical programmer based in Indianapolis with 20 years’ experience using SAS in the life sciences industry. He specializes in analyzing clinical trial data, and his clients have included major pharmaceutical corporations, biotech companies, and research organizations. A SAS Certified Advanced Programmer, Josh loves coding and is a frequent presenter at SAS Global Forum and various regional and local SAS users’ group. Josh holds a bachelor’s degree in mathematics and computer science, and a master’s degree in statistics from Colorado State University.
Troy Martin Hughes has been a SAS practitioner for more than 20 years, has managed SAS projects in support of federal, state, and local government initiatives, and is a SAS Certified Advanced Programmer, SAS Certified Base Programmer, SAS Certified Clinical Trials Programmer, and SAS Professional V8. He has given more than 100 presentations, trainings, and hands-on workshops at SAS conferences, including at SAS Global Forum, SAS Analytics Experience, WUSS, SCSUG, SESUG, MWSUG, PharmaSUG, BASAS, and BASUG. He has authored two groundbreaking books that model software design and development best practices:

  • SAS® Data-Driven Development: From Abstract Design to Dynamic Functionality, Second Edition (2021)
  • SAS® Data Analytic Development: Dimensions of Software Quality (2016)

Troy has an MBA in information systems management as well as other credentials, including: PMP, PMI-RMP, PMI-PBA, PMI-ACP, SSCP, CISSP, CSSLP, Network+, Security+, CySA+, CASP+, CISA, CGEIT, CISM, CRISC, ITIL Foundation, CSM, CSD, A-CSD, CSPO, CSP, CSP-SM, CSP-PO, and SAFe Government Practitioner (SGF). He is a US Navy veteran with two tours of duty in Afghanistan.

Kirk Paul Lafler is an entrepreneur, consultant, programmer and educator, and has been a SAS user since 1979. Kirk is a lecturer and adjunct professor at San Diego State University; an advisor and adjunct professor at the University of California San Diego Extension; and teaches dozens of SAS, SQL, Excel, R and Python courses, seminars, workshops, and webinars to users around the world. As the author of several books including PROC SQL: Beyond the Basics Using SAS, Third Edition (SAS Press. 2019) along with hundreds of papers and articles on a variety of SAS topics; Kirk has been selected as an Invited speaker, educator, keynote and section leader at SAS conferences and meetings worldwide; and is the recipient of 25 “Best” contributed paper, hands-on workshop (HOW), and poster awards.
Isaiah Lankham is a polyglot data analyst for the University of California’s systemwide office in Oakland, CA, specializing in data analysis and visualization using Tableau, SAS, and Python. Initially trained as a mathematician and educator, Isaiah is also an adjunct faculty member for the Statistics Department at California State University, East Bay, regularly teaching graduate SAS programming courses.
Russ Lavery is a frequent and multiple-award winning presenter at SAS and other programming conferences. He has been the technical reviewer for five books by SAS press and has lectured all over the U.S. in Europe and in Asia.
Kevin Lee is a Data Scientist, Machine Learning Leader/Instructor/Evangelist in Pharmaceutical Industry. Currently, Kevin is Assistant Vice President of AI/Machine Learning Consultant at Genpact and teaches Machine Learning/Python/CDISC/Oncology courses at conferences and university. Kevin has been a big advocate in leadership and innovative technologies, with which Kevin wants to innovate Pharmaceutical Industry. Kevin earned an M.S. in Applied Statistics at Villanova University following a B.S. from University of Pennsylvania.
Bruce Lund is a statistical modeling consultant and trainer. For 15 years he was a statistical and modeling consultant for OneMagnify of Detroit. Before OneMagnify, he was the customer database manager at Ford Motor Company and a mathematics professor at University of New Brunswick, Canada. He has a mathematics PhD from Stanford University. Bruce Lund has presented at SAS Global Forum, SAS AnalyticsX, ASA CSP, and at regional SAS user group conferences.
Matthew Slaughter, MSBA is an Advanced SAS Certified Programmer and a Statistical Research Analyst at the Kaiser Permanente Center for Health Research in Portland, Oregon. Specializing in clinical prediction modeling, Matthew provides data management, programming, and analytical support to research projects in various topic areas.
Richann Watson is an independent statistical programmer and CDISC consultant based in Ohio. 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 and implementing CDISC standards. Additionally, she is a member of the CDISC ADaM team and various sub-teams.

Richann loves to code and is an active participant and leader in the SAS User Group community. She has presented numerous papers, posters, and training seminars at SAS Global Forum, PharmaSUG, and various regional and local SAS user group meetings. Richann holds a bachelor’s degree in mathematics and computer science from Northern Kentucky University and master’s degree in statistics from Miami University.