Welcome to your one-stop solution for all the information you need to excel in the SAS Viya Intermediate Programming (A00-420) Certification exam. This page provides an in-depth overview of the SAS A00-420 Exam Summary, Syllabus Topics, and Sample Questions, designed to lay the foundation for your exam preparation. We aim to help you achieve your SAS Certified Associate - Intermediate Programming Using SAS Viya certification goals seamlessly. Our detailed syllabus outlines each topic covered in the exam, ensuring you focus on the areas that matter most. With our sample questions and practice exams, you can gauge your readiness and boost your confidence to take on the SAS Viya Programming Specialist exam.
Why SAS Viya Programming Specialist Certification Matters
The SAS A00-420 exam is globally recognized for validating your knowledge and skills. With the SAS Certified Associate - Intermediate Programming Using SAS Viya credential, you stand out in a competitive job market and demonstrate your expertise to make significant contributions within your organization. The SAS Viya Intermediate Programming Certification exam will test your proficiency in the various syllabus topics.
SAS A00-420 Exam Summary:
Exam Name | SAS Viya Intermediate Programming |
Exam Code | A00-420 |
Exam Duration | 110 minutes |
Exam Questions | 65-70 |
Passing Score | 71% |
Exam Price | $180 (USD) |
Books / Training |
Accelerating SAS Code on the SAS Viya Platform SAS Programming High-Performance Data Processing with CASL in SAS Viya |
Exam Registration | Pearson VUE |
Sample Questions | SAS Viya Programming Specialist Certification Sample Question |
Practice Exam | SAS Viya Programming Specialist Certification Practice Exam |
SAS A00-420 Exam Syllabus Topics:
Objective | Details |
---|---|
Programming in SAS Viya Concepts (5-10%) |
|
Describe the SAS Viya architecture. |
- Compute Server vs. Cloud Analytics Server (CAS) - Serial vs parallel processing - In-memory processing - Open source integration |
Explain when to use the CAS server for programming tasks. |
- Size of data - Type of SAS procedure used |
Managing Data with CAS Enabled Procedures (10-15%) |
|
Explain how to access and use CAS Libraries (caslibs). |
- Establish CAS sessions with the CAS statement. - Caslib attributes (Session, local, active, personal) - Properties of the casuser caslib - Use the CASLIB statement to assign session-scope caslibs - Assign a libref to a caslib with the LIBNAME statement and CAS engine - View the contents of a caslib with PROC CASUTIL |
Describe how to load data into In-Memory Tables. |
- Load data files into memory - Client-side vs server-side files - Loading client-side data (PROC CASUTIL)
- In-memory table scope (Session vs Global, promoting tables)
- Alternate data loading methods (DATA step, PROC SQL, PROC IMPORT) |
Describe how to save and drop In-Memory Tables. |
- SASHDAT files - PROC CASUTIL (SAVE and DROPTABLE statements) |
Describe CAS column data types. |
- Properties of character column variable types
- Properties of numeric column variable types
- Create varchar column variables with the LENGTH statement |
DATA Step and SQL programming in CAS (10-15%) |
|
Explain how SAS determines where code executes. |
- Location of the input/output data - What procedures are being run - What statements/functions are used - SESSREF= option on the DATA statement - SESSREF= option within FedSQL - MSGLEVEL= system option |
Explain threading within the SAS DATA step. |
- Where code executes: CAS, Compute Server
|
Update DATA step code to run in CAS. |
- DESCENDING keyword - WHERE= option - INFILE/INPUT/DATALINES statements - MODIFY/REMOVE/REPLACE statements - DATALIMIT= option - Functions not supported in CAS (Examples: RANBIN, RANUNI, SYMGET, FILEREF, GIT functions) |
Update PROC SQL code to run as PROC FEDSQL code. |
- Data types - Supported statements - Mnemonics vs operators - SESSREF= option - Remerge - Calculated keyword - SET operations - Correlated subqueries - Dictionary tables - Views - LIMIT clause - FORMAT, LABEL vs PROC CASUTIL ALTERTABLE CASDATA statement |
CAS-Enabled Procedures and User Defined Formats (5-10%) |
|
Identify common procedures that run only on the Compute Server. |
- PROC FREQ and UNIVARIATE - SG Graphics procedures |
Use common procedures that run in both the CAS and Compute Server. |
- How SAS determines where the procedure runs
- PROC MEANS & PROC SUMMARY
- PROC TRANSPOSE |
Use Common summary procedures that run only in CAS. |
- PROC FREQTAB
- PROC MDSUMMARY
|
Discuss how user-defined formats are used and stored in CAS. |
- Location where formats are stored within CAS - Saving formats to caslibs with the CASFMTLIB= option - Save formats to and retrieve from permanent SASHDAT files with a CAS statement - Assigning formats to in-memory tables |
CAS Language Basics (15-20%) |
|
Describe the CASL programming language. |
- Action Sets - Actions - Parameters - Statements |
Create and manipulate CASL variables. |
- CASL variables vs. SAS variables - CASL Variable Data Types (int32, int64, double, string) - DESCRIBE statement - PRINT statement - Built-in functions vs common functions |
Use arrays in CASL programs. |
- Define arrays
- Retrieve values from arrays |
Use dictionaries in CASL programs. |
- Define dictionaries - Retrieve values from dictionaries with bracket and dot notation - Retrieve nested dictionary values with dot notation - Use DO-OVER loops to process dictionaries |
Capture the results returned from CAS actions. |
- Capture results from CAS actions as variables/objects/dictionaries
|
Use source blocks in CASL programs. |
- Identify when SOURCE blocks are required for code substitution - use SOURCE blocks for DATA step and FedSQL code substitutions - Use SOURCE blocks for code substitution in the computedVarsProgram= parameter of CAS actions |
Access Data with CAS Actions (5-10%) |
|
Use CAS actions to access and explore data sources. |
- Create caslibs with the table.addCaslib action - View available caslib information with the table.caslibInfo action - View data source files information with the table.fileInfo action - Load server side files into memory with the table.loadTable action
|
Use CAS actions to manage in-memory tables. |
- View in-memory table information with the table.tableInfo action - Load client side files into memory with the table.upload action
- Explain how database files load into memory with data connectors
- Remove tables from memory with the table.dropTable action |
Explore and Validate Data with CAS actions (5-10%) |
|
Investigate in-memory data table properties and contents. |
- Table action set
- Simple action set
- Identify duplicate values within in-memory table variables
- Compare table values with expected values to identify data that does not comply with business rules |
Investigate results table properties and contents. |
- Access results tables property values (nrows, ncols, name, title, attrs) - Create an array from a single results table column - Use functions with results table content (SUM, EXISTS) - Filter results tables with the WHERE operator - Create computed columns with the COMPUTE operator |
Prepare Data with CAS Actions (20-25%) |
|
Update the contents of in-memory tables with the table.update action. |
- table= and set= parameters
- Use arrays of dictionaries as values for the set= parameter |
Create a copy of in-memory tables with the table.copyTable action. |
- table= and casOut= parameters to define input and output data sets - computedVars= parameter to set column attributes - computedVarsProgram= parameter to set column values - Benefits and considerations of the table.copyTable action - Promoting the copied table |
Convert character to numeric columns. |
- Convert character to numeric columns with the inputn function - Use informats - Cast data types and the CAST function |
Use data preparation action sets. |
- dataStep action set
- fedSQL action set
|
Modify table attributes with the table.alterTable action. |
- Update table attributes with rename=, label= parameters - Change included columns with keep=, drop= parameters - Change column attributes with the columns= parameter |
Resolve missing values in tables with the dataPreprocess action set. |
- Use the impute action to impute missing values
|
Transpose tables with the transpose.transpose action |
- table= and casOut= to specify input and output tables
- parameters: transpose, ID=, NAME=, IDLABEL=, PREFIX= |
Analyse and Summarize Data with CAS Actions (5-10%) |
|
Summarize data with CAS actions. |
- Produce summary statistics with the simple.summary action
- Produce summary statistics with the aggregation.aggregate action
- Produce summary statistics with the dataPreprocess.rustats action
- Create one-way and two-way frequency tables
|
Create Visualizations and Reports. |
- Run CAS actions to produce summarized or subsets of results tables - Use visualization procedures to produce graphics from summarized results tables - Use SAS Output Delivery System (ODS)
|
The SAS has created this credential to assess your knowledge and understanding in the specified areas through the A00-420 certification exam. The SAS Certified Associate - Intermediate Programming Using SAS Viya exam holds significant value in the market due to the brand reputation of SAS. We highly recommend thorough study and extensive practice to ensure you pass the SAS Viya Intermediate Programming exam with confidence.