The Developing with Cisco Network Programmability (NPDEV) v4.0 is a 5-day instructor-led course that introduces learners to the automation of network infrastructure, and how to utilize APIs and toolkits to interface with software-defined networking (SDN) controllers and individual devices.
The course develops the foundation skills needed to develop network applications in programmable environments such as Cisco's One Platform Kit (onePK), and Open Daylight Controller (ODL) and Application Policy Infrastructure Controllers (APICs). Unlike SDN courses that focus on network theory, this course adds to learner's practical networking understanding and utilizes Cisco's experience in WAN, data center, and campus environments to provide learners with the skills that they need to become a network developer.

This course is aligned with topics covered by the 600-510 NPDEV exam, leading to the Cisco Network Programmability Developer Specialist designation.


Upon completing this course, the learner will be able to meet these overall objectives:
  • Describe components and concepts of network programmability, networking, IPv4 and IPv6 addressing and subnetting, and functions of infrastructure components in a network
  • Interpret and produce code to deploy configurations to multiple devices using RESTCONF and NETCONF
  • Describe Cisco ACI technology, policy model, application profiles, APIC REST requests, and Cobra SDK
  • Describe Cisco APIC-EM, services, service tickets, and Cisco APIC-EM REST and Python requests
  • Describe ODL SDN Controller architecture, features, APIs, and work with ODL code
  • Describe additional software development tools and techniques and present additional programming reference information


The course contains these components:
  • Networking Fundamentals
    • Describing the Components and Concepts of Network Programmability
    • Describing Networking Concepts and the OSI and TCP/IP Models
    • Describing the Functions of Infrastructure Components in a Network
    • Switching Concepts
    • Describing IPv4 and IPv6 Addressing and Subnetting
    • Routing Concepts
    • Lab: Explore and Configure Devices using CLI
  • Device Programmability
    • Describing NETCONF, YANG, and RESTCONF
    • Lab: Explore YANG Models
    • Lab: Use YANG Tools
    • Programming Cisco IOS XE and XR Software
    • Lab: Use NETCONF Via SSH
    • Lab: Use the pyang Tool for Sample XML
    • Lab: Use the ncclient Python Library
    • Lab: Use YDK
    • Lab: Use RESTCONF with Cisco IOS XE Software
    • Lab: Python, RESTCONF, and Routing
    • Lab: Python, NETCONF, and Interfaces
    • Programming Cisco ASA Software
    • Lab: Use the Documentation Pages
    • Lab: Python, REST, and Network Objects
    • Programming Cisco NX-OS Software
    • Lab: Run Native Python Scripts on Cisco NX-OS
    • Lab: Use Cisco NX-API on Cisco NX-OS
    • Lab: Configure Cisco NX-OS Device Using NETCONF and CLI
    • Lab: Native Python
    • Lab: Cisco NX-API CLI with Python
    • Lab: NETCONF CLI with Python ncclient
  • Cisco ACI
    • Describing Cisco ACI
    • Lab: Use Cisco APIC Web GUI
    • Lab: Explore the ACI Toolkit
    • Using Cisco APIC REST API
    • Lab: Use Postman for Cisco APIC Fabric Discovery
    • Lab: Use Python and Cisco APIC REST API
    • Lab: Cisco APIC REST API with Python
    • Cobra SDK and Arya
    • Lab: Use Cobra with Tenants and Related MOs
    • Lab: Use Arya to Generate Cobra Code
  • Cisco APIC-EM Module
    • Describing the Cisco APIC-EM Platform
    • Lab: Access the Cisco APIC-EM Web User Interface
    • Describing Cisco APIC-EM Services
    • Lab: Configure Network Device Discovery Job
    • Lab: Work with Device Inventory
    • Lab: Use Locations and Tags
    • Lab: Create Cisco APIC-EM Internal Users and Examine User Roles
    • Describing the Cisco APIC-EM Advanced Applications
    • Exploring Cisco APIC-EM REST APIs
    • Lab: Use Browser Developer Tools to Examine REST APIs
    • Lab: Use the Swagger API Pages
    • Using Cisco APIC-EM Developer Resources for Postman and Python
    • Lab: Use Postman for Discovery
    • Lab: Use Python with Cisco APIC-EM
    • Lab: Use the Python uniq Library with Cisco APIC-EM
    • Lab: Python and REST
  • OpenDaylight SDN Controller
    • Introducing the OpenDaylight SDN Controller
    • Lab: Install ODL Distribution and Use Karaf to Manage Features
    • Lab: Examine the Feature Manager Application
    • Lab: Examine the YANG UI Application
    • Lab: Experiment with OpenFlow
    • Lab: Experiment with NETCONF
    • Lab: Use ODL with Cisco IOS XR Software
    • Working with the OpenDaylight Code
    • Lab: Explore Nodes DLUX User Interface Application
    • Lab: Examine Toaster Service Sample Application
    • Lab: Examine ODL Inventory Model
    • Lab: Run Your Own ODL Distribution
  • Network Programming Tools and Techniques
    • Describing Network Programming Tools and Techniques

Prerequisite Knowledge

The knowledge and skills that a learner should possess before attending this course are as follows:
  • Cisco CCNP Routing & Switching career certificate or equivalent experience
  • Complete the Programming for Network Engineers (PRNE) online course or possess equivalent Python programming experience