
How to Use the Google Notebook LM Support for This Course
This course includes Google Notebook LM support — a powerful AI assistant that helps you answer specific questions about course content, code examples, and concepts. To use it, you’ll need a Google account and access the course notebook provided at:
? https://notebooklm.google.com/notebook/6d96dab2-13b6-48bc-9d5f-603804c1a552
Getting Started
Sign in with Your Google Account
Visit the link above using a browser where you are signed in to your Google account.
If prompted, allow Notebook LM the permissions it requests — this enables it to help you learn more effectively.
Open the Course Notebook
Once signed in, you should see a dedicated notebook that contains course‑related notes, examples, and AI interaction tools.
This notebook acts like an interactive study companion where you can ask questions directly.
Ask Questions Using Natural Language
In the Notebook, there’s a field where you can type your questions. Write any question like you would ask a tutor.
Example formats:
“How do I use a DO LOOP in SAS?”
“Explain the difference between implicit and explicit output.”
“Show an example of using PROC FORMAT for custom labels.”
Review the AI‑Generated Answers
Notebook LM will provide detailed, contextual responses based on course content.
It can show explanations, code snippets, definitions, and even step‑by‑step guidance.
Interact and Refine
If the first answer isn’t exactly what you need, you can refine your question.
Try follow‑ups like “Can you give a code example?” or “What’s a simpler explanation?”
Download the SAS Programming Resource Guide (link below) as accompanying slides and notes. Use it for quick reference to the lectures, make your own notes on top of this, or use them as presentation slides wherever you want !
This comprehensive document serves as a companion to the lectures, providing detailed slides and notes on the course content. With this Workbook, you can quickly refer back to important concepts covered in the lectures, ensuring a better understanding and retention of the material.
Additionally, the Workbook allows you to personalize their learning experience. You can make your own notes, annotations, and highlights directly on the slides, tailoring the content to your individual learning style. This interactive approach fosters active engagement and facilitates a deeper grasp of the SAS programming concepts.
Moreover, you can utilize the workbook beyond the course environment. The slides can be used as presentation material, enabling sharing your knowledge and insights with colleagues, classmates, or professional networks. Whether it's a workplace presentation, a team meeting, or a conference, this resource empowers you to showcase their SAS programming expertise with confidence.
The point of this passage is that SAS is an easy programming language to learn, compared to other languages like C, C++, Java, and Net. The example given is a simple table with two columns and ten rows, which can be created in SAS with just eight lines of code, while it would require 30 or 40 lines of code in other programming languages. SAS uses simple English words in its syntax, making it easy to read and write.
To obtain the SAS software application on your computer, you can use the free SAS on Demand service. To do this, you will need a computer with a good internet connection and a web browser. Go to a search engine and search for "SAS on Demand" and click on the "Access Now" button on the main page. If this is your first time using SAS on Demand, you will need to create a SAS user profile. Once you have received the email confirming your account, you will be able to login and access the SAS Studio, where you can do all your programming work. The user interface of SAS Studio will be explained in more detail later.
Follow the instructions in this video to see how you can start using SAS Studio with no installation necessary.
Use the link in the resource section, bookmark it on your web browser for logging into SAS every time.
SAS programming software can be obtained in two ways: by purchasing a license or by using SAS On Demand for free. To use SAS On Demand, you need to create a SAS user profile, confirm your account through email, and then log in to SAS On Demand. The SAS Studio is the primary interface for programming in SAS On Demand. It takes a few minutes to load, but once it is initialized you can begin programming.
In this lecture, the various windows in SAS are introduced, including the Editor window where programming code is written, the Log window where SAS produces a log of code execution and error/warning/note messages, and the Explorer window for navigating data and libraries. The Submit button, located in the Editor window, is used to submit code for execution. It is also mentioned that error messages in the Log window appear in red, warning messages appear in green, and notes appear in blue. The Explorer window includes pre-installed libraries such as SASUSER and SASHELP, as well as the temporary Work library. Data sets can be opened by double-clicking them in the Explorer window. It is also mentioned that the Output window displays results from code execution.
The section on preparing data will enable you to import data from common sources like the ubiquitous spreadsheets; create your own datasets within SAS, and work with SAS-supplied datasets. It will enable you to modify the data to make it more meaningful, and lastly perform some basic functions on variables. By the end of this section, you will have fully understood how is data handled in SAS, how it is stored in libraries and datasets, and modified using functions.
In SAS programming, data is organized into tables called datasets that have rows and columns. The columns are called variables and the rows are called observations. There are two types of variables in SAS: character variables, which contain text-based data, and numeric variables, which contain numbers. Character variables are left-aligned and numeric variables are right-aligned. SAS handles missing values in character variables by representing them with a null value, while missing values in numeric variables are represented with a period or dot.
In this lecture, we discuss how data sets are stored in libraries. There are two main types of libraries: temporary and permanent. Temporary libraries are located in a temporary folder in the computer's memory and the data stored there is lost once the session is closed. Permanent libraries are stored on the computer or server and the reference to the data is retained even after the session is closed. SAS provides sample permanent libraries, such as SAS Help and SAS User, which contain pre-made data sets that can be used for the coursework. To view the contents of a data set in a permanent library, it can be opened by double clicking on it. The data set's variables and observations will be displayed in a table, with character variables indicated by an icon and numeric variables indicated by a different icon. If a data set spans multiple pages, it can be accessed by clicking on the arrows at the bottom of the table.
The naming conventions for SAS libraries include having a name that is one to eight characters long, starting with a letter or underscore, and containing any combination of letters, numbers, or underscores after the first character. It is important to follow these conventions when creating your own SAS libraries.
There are three rules for naming conventions in SAS for both libraries and data sets. For libraries, the name must be between 1 and 8 characters in length, must begin with a letter or underscore, and can continue with any combination of numbers, letters, or underscores. For data sets, the name must be between 1 and 32 characters in length, must begin with a letter or underscore, and can continue with any combination of numbers, letters, or underscores. It is not allowed to use special characters like percentages, ampersands, plus signs, minus signs, stars, parentheses, dollars, or exclamation points in the names of libraries or data sets. If a name does not follow these rules, it will not be considered a valid SAS library or data set name.
Get used to the language, grammar and syntax of SAS - it's pretty much 90% english, with some machine-language characters like the semi-colon along the way. SAS is a programming language that uses simple English words to write code. It has a specific syntax and structure, including using specific keywords and ending statements with semicolons. SAS is case insensitive and can be written in multiple lines. It also allows for spaces and line breaks in the code. Keywords are often colored in dark blue to make the code more readable. SAS statements can begin and end anywhere in the programming editor.
Know the two important modules in SAS code - the Data Step and Proc Step, and when they are used and for what purposes. In SAS programming, the source code is divided into two main modules: the data step and the proc step. The data step is a block of code that pertains to modifying a data set, such as its variables and observations, or transferring data from one place to another. The proc step is a block of code that performs an action with the data, such as printing, reporting, or sorting. A data step begins with the keyword "data" and ends with the keyword "run", while a proc step begins with the keyword "proc" and ends with the keyword "run".
Just like finding books in a library through a catalog, data can be called upon from somewhere inside a library in two ways. Learn the single-level and two-level referencing. In SAS, there are two ways to reference data sets in libraries: two-level naming and single-level naming. In two-level naming, the data set name is preceded by the library name and a period, for example: "library.data set." Single-level naming does not include the library name, but it can only be used for data sets in the temporary library (called "work"). To reference a data set in a permanent library, two-level naming must be used.
There are three methods of bringing data into SAS. The first method is using existing data within SAS, such as data in the permanent libraries. The second method is creating data within the SAS programming window. The third method is importing data from external sources, such as Excel spreadsheets or other databases.
The different methods for bringing data into SAS are discussed here.
1.The first method is using existing data in SAS, which is stored in permanent libraries. This can be done through a data step in SAS, which involves specifying the data set name and the library it is coming from.
2.The second method is creating data within the SAS programming window and storing it in either permanent or temporary libraries. This is also done through a data step, using the input statement to specify the variable names and using the datalines statement to input the data.
3.The third method is importing data from external sources, such as Excel sheets or databases. This can be done using the proc import statement, which allows you to specify the file path and file type of the data. There are other methods to import data which can be done using the infile and input statements.
The third method of bringing data into SAS involves importing data from outside sources, such as Excel spreadsheets, using the import functionality or import wizard provided by SAS. The import process can be initiated by clicking on the "upload" feature, followed by the "new import data" option, which will guide the user through a series of steps to import the data. The imported data will be stored in the temporary work folder in SAS, under the name "Import." The first row of the Excel spreadsheet will be used as the variable names for the imported dataset.
Use the filename statement to import non-SAS data like class.dat into a SAS session, referencing it with a file reference and infile to create the class dataset.
In this lecture, different ways to bring data into a SAS program are discussed, including creating data within the program using the cards statement, and reading data from an external file using the filename statement. The use of the infile statement in a data step to read data from a file or from the cards statement is also explained, including he use of the infile statement's delimiter option to specify a character or symbol that is used to separate columns in the data, for example, a comma.
The infile statement in the data step reads data from the cards statement using the delimiter option to specify that the data is separated by commas and the dsd option to tell SAS to treat consecutive delimiters as a single delimiter using the DSD option.
In this lecture, another method is discussed for bringing data into SAS called "column input," in which the data is arranged in fixed-width columns with no separator characters between columns. The position of each column is explicitly specified in the input statement using the starting and ending positions of the column in the data.
Discover how to bring data into SAS using a mixed input approach, combining column input for name and age, list input for gender, and the @ pointer for weight.
Proc import is a SAS procedure that can be used to automate the process of importing data into SAS from external sources. It can be used with various types of data, including Excel files, text documents separated by commas or spaces, and CSV files. The proc import procedure has several options that can be specified, depending on the type of data being imported and the desired output. The proc import procedure is useful for quickly and easily importing data into SAS without having to write code.
The proc import procedure in SAS can be used to import data from text files that are formatted in different ways. For example, data can be separated by commas or by spaces. The proc import syntax remains the same, but the "delimiter" option can be used to specify the character that separates the data points in the text file
To create a new variable in SAS, you can use the data step and define the new variable using the assignment operator "=".
You can use the KEEP statement in SAS to only include certain variables in a dataset. You can also use the DROP statement to exclude certain variables. The RENAME statement can be used to change the name of a variable in a dataset. These statements can be used individually or in combination with each other.
The lecture demonstrates how to create new variables in SAS using mathematical operations and how to use these new variables to create additional new variables. The lecture also introduces the concept of conditional statements in SAS, which allow code to be executed based on a specified criteria. An example was given of using conditional statements to calculate the body mass index (BMI) in a dataset by dividing the weight in kilograms by the square of the height in meters.
Filtering in SAS refers to the process of selecting a subset of observations from a dataset based on a specified criteria. It can be applied to both a data step and a proc step, but the way it works is different in each case. In a data step, filtering reduces the number of observations in the resulting dataset. In a proc step, it reduces the number of observations in the report output, but does not affect the underlying dataset. Filtering is done using the WHERE statement, which specifies the criteria for selecting the observations. The syntax for filtering in a data step or proc step is the same, and involves using the WHERE statement followed by the criteria for selection. For example, the WHERE statement "WHERE sex='F'" would select only observations with a value of 'F' in the sex variable.
Learn how SAS treats dates, and why are they represented as integer numbers. Learn what happened on 01 Jan 1960 ! In SAS, dates are handled differently than in other programming languages. All dates are associated with a numerical value, with 1st January 1960 being given a value of zero and each subsequent day having a value one higher than the previous day.
SAS functions are used to modify variables to take on new values. They can be applied to one variable or a group of variables and can be used to modify character or numeric variables. There are two types of functions in SAS: character functions and numeric functions. Character functions perform modifications on character variables and usually result in a new character variable. Numeric functions perform modifications on numeric variables and usually result in a new numeric variable.
Master the SAS scan function to extract a specific word from a string by its position, demonstrated with a multi-word example and syntax.
Learn how index C and index W SAS functions locate the position of a character or a word within a string, with case sensitivity and first-occurrence rules.
Explore SAS numeric functions by applying the ceiling, floor, and integer functions to numbers like 5.7, 5.2, and 201.23, and observe results in a SAS session.
Explore how SAS numeric functions handle missing values by using minimum and maximum, which ignore missing data like sum to determine the true smallest and largest values.
This lecture discusses two methods of formatting data in SAS: using the format statement and using the put function. The format statement allows you to apply a SAS format to a numeric variable and display it in a certain way, while retaining the original raw values in the final dataset. The put function allows you to convert a numeric variable into a character variable, and apply a SAS format to it in the final dataset. Both methods result in the original raw values being displayed in a formatted way with additional characters, but the difference is in the type of variable that the final values are stored in. The format statement associates a particular format with a specific numeric variable, while the put function converts the numeric variable into a character variable and applies the format. The lecture also mentions specific SAS formats such as dollar and SSN, and describes how they can be applied to variables in a dataset.
This lecture describes the process of using the SAS function PUT to convert a numeric variable to a character variable and apply a format to it. It explains that the PUT function takes as input parameters the name of the variable to be formatted and the name of the format to be applied, and returns a character value that is the formatted version of the original numeric value.
SAS informats are used to convert character values into numeric values by stripping out formatting characters, such as dollar signs or commas. The naming convention for SAS informats is similar to SAS formats, with a name followed by the length of the entire incoming formatted value (X) and the number of decimal places (Y). Informats are often used in combination with SAS formats to convert character values into various formats, such as dates, that are more meaningful and useful in specific industries.
Use proc format to convert BMI values into a formatted status (healthy, overweight, obese) and apply a custom gender format via the put function in SAS.
Explore how the program data vector constructs SAS datasets by copying sashelp.class into work.class and creating weightkg from weight, processing variables left to right.
A do loop is a type of loop that allows you to repeat a set of lines of code a specified number of times. It is useful when you want to iterate over a range of numbers or values. The do loop is started with the "do" keyword, followed by a counter variable that is used to keep track of the number of iterations. The loop is then ended with the "end" keyword. An explicit output statement can be used to create a separate observation for each iteration of the loop, and the loop can be modified by using the "by" keyword to specify the increment value.
Combine four car datasets from Asia, Europe, USA, and mileage; import, structure the data, and write SAS procs to create reports and analytics, including mpg_highway.
This is the section on Structuring Data that will make you leap into transforming data to a new level by teaching you how to stack data together, merging multiple datasets together, turning them upside-down (by sorting), and even side-ways -- why would you do that ! (by transposing)
Learn the simple data SET statement for appending/ stacking data together
Learn to stack data with proc append in SAS by appending A into C, then B into C, preserving order; compare append to data step stacking for flexibility and efficiency.
Learn how interleaving of data rearranges observations by the gender variable, using prox sort and a by statement to stack datasets A and B into a final interleaved dataset C.
Learn about a very powerful procecure called Proc Sort in SAS. You will learn to rearrange data as you wish based on certain criteria.
Done in complex ways in other programming languages, merging of data is done rather simply in SAS. Learn about Data merge method and its use. Remember --> there is no Proc Merge in SAS !
Explore data merging with joins in SAS, using two datasets to illustrate inner and outer joins, common variables, and unified analysis across weight and height data.
Master how to perform a full join in SAS by merging datasets A and B with by name, using the or condition to include all observations and show missing values.
Explore Proc SQL as an extension of data merge and joins, and learn to copy data between datasets using create table as select * from, ending with quit.
Learn to sort data with proc sql using order by, compare it to proc sort, and sort by multiple variables separated by commas with ascending order by default.
This section on Data Visualization will propel you further into the world of analytics and obtaining insightful inferences to see what is inside your data. You will be able to generate beautiful charts, plots and other visual representation of data.
Learn about Proc Chart - a simple and powerful proc in SAS to visualize what is within your data and see it in a horizontal, vertical and pie charts
Learn to generate vertical bar charts in SAS using the discrete option to show true discrete values and correct frequency counts. Distinguish between continuous and discrete numeric variables.
Learn to create vertical bar charts with grouping by major and subgroup by gender in SAS proc chart, then customize the y-axis with sumvar and type=mean to show mean ages.
Obtain insights into your data through the scatter plot for 2 variables. This lecture will teach you about Proc Plot
Probably the least appreciated proc in SAS is the Proc Print. It is simply to show data in report output that can then be used for printing. The proc itself does not send your data to a printer !
Learn to use ods with proc means to generate summary statistics for age, including mean, standard deviation, min, and max, and export the results with ods output to a dataset.
Visualize data by importing, structuring, and summarizing sources to create meaningful reports and visualizations. Build summary statistics for deeper insights and present actionable formats to any audience.
Discover how to optimize code by leveraging SAS macros to do more with less effort. Explore macro variables, SAS macros, and macro functions to understand their role in streamlining programming.
Explore how macro variables bridge the data and macro worlds to create dynamic proc print reports, using double quotes, ampersand retrieval, and filters for gender, age, and course numbers.
Explore macro variable ampersand resolutions with a practical, funny example. Apply the three rules to resolve consecutive ampersands across nested variables like book, story, funny, twist, and climax.
Explore a guided SAS exercise combining STAT, HIST, and STUDHT to prepare data with name, gender, age, weight, and height for pie charts and reports using SAS code.
Order your course completion certificate after you have completed this training (all lectures, quizzes, assignments and practice exams). See instructions on the last page of Resource Guide eBook.
SAS Programming: A Complete Guide to Data Analysis, Automation, and Real-World Projects
A comprehensive, highly visual, and practical guide to learning SAS Programming—from beginner fundamentals to advanced programming techniques used by professionals across Pharma, Healthcare, Finance, Insurance, and other data-driven industries.
Whether you are completely new to programming or an experienced professional looking to strengthen your SAS skills, this course provides a structured and accelerated path to mastering SAS through a unique visual learning methodology.
Unlike traditional programming courses that rely heavily on slides and theory, this course combines professional illustrations, visual explanations, real-world examples, and guided coding exercises to help you understand not only howSAS works, but also why it works.
NEW: AI-Powered Learning Assistant
Learning doesn't stop when the lecture ends.
This course now includes an AI-powered course assistant that understands the course content and provides instant support whenever you need it.
You can:
Ask questions about SAS syntax, functions, procedures, and programming concepts
Request additional examples tailored to your learning needs
Get help debugging your code
Compare different SAS approaches and techniques
Reinforce difficult concepts through follow-up questions
Receive explanations that are aligned with the course curriculum
Instead of spending hours searching through documentation, you can get immediate answers and guidance exactly when you need them.
What You Will Learn
This course simplifies SAS Programming into four essential areas that form the foundation of professional SAS development.
1. Data Preparation
Learn how to:
Import data from multiple sources including Excel files, text files, and SAS datasets
Create and modify variables
Use SAS functions effectively
Clean and prepare data for analysis
Understand the structure and behavior of SAS datasets
2. Data Structuring
Master techniques used daily by professional SAS programmers:
Merge and combine datasets
Perform joins using PROC SQL
Sort and subset data
Transpose data structures
Build reusable and efficient data workflows
3. Data Visualization and Reporting
Transform raw data into meaningful insights by learning:
PROC REPORT
PROC CHART
Summary statistics
Data exploration techniques
Professional reporting methods
Effective data visualization strategies
4. Code Optimization Using SAS Macros
Learn how to write professional, scalable, and reusable code through:
Macro variables
Macro functions
Parameterized macros
Dynamic programming techniques
Automation strategies
SAS programming best practices
Why This Course Is Different
Most programming courses focus on memorization.
This course focuses on understanding.
Every major concept is explained through visual illustrations, diagrams, animations, and practical demonstrations that make complex programming topics easier to understand and retain.
By the end of this course, you will be able to confidently write, read, debug, and optimize SAS programs for real-world applications.
What Is Included
Over 12 hours of comprehensive instruction
More than 100 video lectures
65 quiz questions to reinforce learning
2 full practice exams
Guided coding exercises throughout the course
Multiple hands-on assignments
3 practical Capstone Projects
AI-powered learning support
Downloadable 100+ page SAS Programming Resource Guide
Lifetime access to course updates
Certificate of Completion
Learn SAS Without Installing Software
Getting started is easy.
This course uses the latest version of SAS Studio through SAS OnDemand for Academics, a cloud-based platform that is completely free to use.
There is no software installation required.
All you need is:
A computer
A web browser
An internet connection
You can begin coding immediately.
Certification Preparation
This course serves as an excellent foundation for the following SAS certifications:
SAS Certified Associate: Programming Fundamentals Using SAS 9.4 (A00-215)
SAS Certified Specialist: Base Programming Using SAS 9.4 (A00-231)
SAS Certified Professional: Advanced Programming Using SAS 9.4
SAS Certified Clinical Trials Programmer Using SAS 9
Whether your goal is certification, career advancement, or practical skill development, this course will help build the knowledge required for success.
Hands-On Learning and Real-World Projects
Learning happens through practice.
At the end of each section, you will complete guided coding exercises designed to reinforce the concepts you have learned.
Even if you make mistakes, every assignment is carefully guided with detailed explanations and step-by-step solutions.
The course concludes with three practical Capstone Projects that combine concepts from every section, allowing you to apply your skills in realistic programming scenarios.
You will gain experience working with real datasets, performing analysis, generating reports, and developing reusable SAS programs.
Continue Your SAS Journey
If you want to apply your SAS programming skills in the pharmaceutical and clinical research industries, you can continue with my Clinical SAS Programming course.
In that course, you will work with realistic clinical trial datasets, derive analysis variables, create reports, and generate outputs similar to those used by pharmaceutical companies and CROs.
Who This Course Is For
This course is ideal for:
Complete beginners with no programming experience
Students learning SAS for academic purposes
Data analysts and business analysts
Clinical research professionals
Clinical programmers and biostatisticians
Healthcare analytics professionals
Finance and insurance professionals
Anyone preparing for SAS certification
Anyone looking for a practical and visual approach to learning SAS
What Students Are Saying
"One of the best SAS courses on Udemy."
"The visual explanations make difficult concepts incredibly easy to understand."
"Fantastic course. The illustrations and coding examples helped everything click."
"Clear, practical, concise, and beginner-friendly."
"As someone with very little coding experience, I was surprised by how easy it was to follow."
"The animations and visual explanations make learning enjoyable and memorable."
Start Learning SAS Today
SAS remains one of the most in-demand programming languages in data-intensive industries.
Whether your goal is to become a data analyst, prepare for certification, transition into Clinical SAS Programming, or simply become more confident working with data, this course will provide the skills, knowledge, and confidence you need to succeed.
Join thousands of students who have learned SAS through this unique visual approach and begin your journey toward becoming a skilled SAS programmer today.