Developing with Cisco Network Programmability v4.0 (NPDEV)


Duration: 5 days

Developing with Cisco Network Programmability v4.0 (NPDEV) is a 5 Day course for software developers looking to automate network infrastructure and/or utilize APIs and toolkits to interface with SDN controllers and individual devices. This course is aligned with the topics covered by the 300-560 NPDEV exam, leading to the Cisco Network Programmability Developer Specialist Certification


Upon completion of this course, you will be able to:

  • Learn the basics of networking, IPv4 and IPv6 addressing and subnetting, functions of infrastructure components in a network, and the need for network programmability.
  • Review data handling and formats.
  • Learn about Cisco ACI, APIC-EM and Open SDN Controller technologies and conceptual frameworks, as well as how to make REST and Python requests.
  • Learn about Cisco NSO framework and how to make REST, YANG, and Python requests.
  • Interpret and produce code to deploy configurations to multiple devices using RESTConf and NETConf.
  • Identify available network programmability developer tools and Cisco virtual platforms


Course Outline

Module 1: Networking Fundamentals

  • Lesson 1-1: Describing the Components and Concepts of Network Programmability
  • Lesson 1-2: Describing Networking Concepts and the OSI and TCP/IP Models
  • Lesson 1-3: Describing the Functions of Infrastructure Components in a Network
  • Lesson 1-4: Switching Concepts
  • Lesson 1-5: Describing IPv4 and IPv6 Addressing and Subnetting
  • Lesson 1-6: Routing Concepts

Module 2: Device Programmability

  • Lesson 2-1: Describing NETCONF, YANG, and RESTCONF
  • Lesson 2-2: Programming Cisco IOS XE and XR Software
  • Lesson 2-3: Programming Cisco ASA Software
  • Lesson 2-4: Programming Cisco NX-OS Software

Module 3: Cisco ACI

  • Lesson 3-1: Describing Cisco ACI
  • Lesson 3-2: Using Cisco APIC REST API
  • Lesson 3-3: Cobra SDK and Arya

Module 4: Cisco APIC-EM Module

  • Lesson 4-1: Describing the Cisco APIC-EM Platform
  • Lesson 4-2: Describing Cisco APIC-EM Services
  • Lesson 4-3: Describing the Cisco APIC-EM Advanced Applications
  • Lesson 4-4: Exploring Cisco APIC-EM REST APIs
  • Lesson 4-5: Using Cisco APIC-EM Developer Resources for Postman and Python

Module 5: OpenDaylight SDN Controller

  • Lesson 5-1: Introducing the OpenDaylight SDN Controller

  • Lesson 5-2: Working with the OpenDaylight Code

Module 6: Network Programming Tools and Techniques

  • Lesson 6-1: Describing Network Programming Tools and Techniques

Lab Details:

  • Discovery 1: Explore and Configure Device using CLI
  • Discovery 2: Explore YANG Models
  • Discovery 3: Use YANG Tools
  • Discovery 4: Use NETCONF Via SSH
  • Discovery 5: Use the pyang Tool for Sample XML
  • Discovery 6: Use the ncclient Python Library
  • Discovery 7: Use YDK
  • Discovery 8: Use RESTCONF with Cisco IOS XE Software

                 - FASTLab 1: Python, RESTCONF, and Routing

                 - FASTLab 2: Python, NETCONF, and Interfaces

  • Discovery 9: Use the Documentation Pages

                 - FASTLab 3: Python, REST, and Network Objects

  • Discovery 10: Run Native Python Scripts on Cisco NX-OS
  • Discovery 11: Use Cisco NX-API on Cisco NX-OS
  • Discovery 12: Configure Cisco NX-OS Device Using NETCONF and CLI

               - FASTLab 4: Native Python

               - FASTLab 5: Cisco NX-API CLI with Python

               - FASTLab 6: NETCONF CLI with Python ncclient

  • Discovery 13: Use Cisco APIC Web GUI
  • Discovery 14: Explore the ACI Toolkit
  • Discovery 15: Use Postman for Cisco APIC Fabric Discovery
  • Discovery 16: Use Python and Cisco APIC REST API

               - FASTLab 7: Cisco APIC REST API with Python

  • Discovery 17: Use Cobra with Tenants and Related MOs
  • Discovery 18: Use Arya to Generate Cobra Code
  • Discovery 19: Access the Cisco APIC-EM Web User Interface
  • Discovery 20: Configuring and working with Network Device Discovery, Locations and Tags
  • Discovery 21: Create Cisco APIC-EM Internal Users and Examine User Roles
  • Discovery 22: Use Browser Developer Tools to Examine REST APIs
  • Discovery 23: Use the Swagger API Pages
  • Discovery 24: Use Postman for Discovery
  • Discovery 25: Use Python with Cisco APIC-EM
  • Discovery 26: Use the Python uniq Library with Cisco APIC-EM

                - FASTLab 8: Python and REST

  • Discovery 27: Install ODL Distribution and Use Karaf to Manage Features
  • Discovery 28: Examine the Feature Manager Application
  • Discovery 29: Examine the YANG UI Application
  • Discovery 30: Experiment with OpenFlow
  • Discovery 31: Experiment with NETCONF
  • Discovery 32: Use ODL with Cisco IOS XR Software
  • Discovery 33: Explore Nodes DLUX User Interface Application
  • Discovery 34: Examine Toaster Service Sample Application
  • Discovery 35: Examine ODL Inventory Model
  • Discovery 36: Run Your Own ODL Distribution


  • Network Engineer, Field Engineer, System Engineer, Network Designer, Network Operations
  • Network Automation Engineer, Network Programmer, Network Developer, Software Engineer, application Developer


The knowledge, skills, and attitudes that a learner is expected to have before attending this course are as follows:


  • Ability to program in Java, Python, C, or other languages


  • Complete the Programming for Network Engineers (PRNE) ELT or equivalent Python programming experience
  • Any CCNA, CCNP or CCIE Certification


NPDEV 300-550


Course ID:

Show Schedule for: