Course outline


Programming for Network Engineers (PRNE) v1.0

Course Code: PRNE Topics: ,

US$499.00 US$410.00

5 Learning Credits

This Cisco self-paced course is designed with interactivity in mind — through hands-on labs, review questions, and summary challenges. This renders the learning experience more real-world and helps increase retention. Additionally, gamification features such as badges and leaderboard provide social visibility and motivation to perform better.

Share it:

FacebookTwitterGoogle PlusLinkedinEmail

Access Duration: 365 Days

Grace Period: 30 Days

Share it:

FacebookTwitterGoogle PlusLinkedinEmail


Programming for Network Engineers (PRNE) Version 1.0 is a Cisco® Training on Demand course. It provides you with an understanding of programming in Python. You also gain knowledge that helps you automate repetitive networking tasks and provides you with useful programming tools to use in your day-to-day job.

This course teaches you how to manage a network more efficiently with network programmability as you develop
Python programming fundamental skills. In addition, it provides you with the foundation required before attending
the Cisco Network Programmability Engineer course.


The PRNE Training on Demand course is a self-paced course based on the 1-day instructor-led training version. It
consists of 16 sections of instructor video and text, totaling more than 7 hours of instruction along with interactive
activities, 27 hands-on lab exercises, content review questions, and challenge questions.

Target Audience

This course is designed for network engineers looking to use network programming and those preparing for the
Cisco Network Programmability Engineer course.


Upon completing this course, students will be able to:

  • Describe use cases and examples of the value of network programmability
  • Acquire a full complement of Python programming skills — basics, data structures, control structures, comparison operators, input and output, structured programming, object-oriented programming, etc.
  • Use Python to communicate to individual network devices, using examples of real networking communication and operations
  • Use Python to communicate to multiple devices
  • Use Object-Oriented Programming within Python to abstract network devices
  • Use databases within a network-based application to store information about the network
  • Use test methodologies to create quality applications
  • Leverage software available via open source and existing libraries e.g. Cisco GitHub, Cisco DevNet, Python general-purpose and Cisco-specific libraries, NX-API


The knowledge and skills that a learner must have before attending this course are as follows:

  • Experience with network management (CCNA-level recommended)
  • Section 1: Network Programmability
  • Section 2: Your First Network Program
  • Section 3: Python Overview
  • Section 4: Creating Your First Python Program
  • Section 5: Reading and Writing Network Device Information
  • Section 6: Communicating with Network Devices
  • Section 7: Python Data Structures
  • Section 8: Comparing Network Information
  • Section 9: Conditional Code
  • Section 10: Looping with for and while
  • Section 11: Functions
  • Section 12: Object-Oriented Programming
  • Section 13: Object-Oriented Programming: Classes
  • Section 14: Modules and Packages
  • Section 15: Python and Data Storage
  • Section 16: Debugging, Testing, and Logging

This course contains 27 hands-on lab exercises.

Figure 1. Topology for All Labs in Programming for Network Engineers

Lab Outline Image

The labs included in this course are:

  • Lab 2.5: Running Your First Program
  • Lab 4.2: “Hello Device” Application
  • Lab 4.7: Create a Reusable Application
  • Lab 5.4: Read Information from a File
  • Lab 5.7: Write Information to a File
  • Lab 6.4: Telnet to a Network Device
  • Lab 6.6: Establish an SSH Connection
  • Lab 7.10: Using Lists and Dictionaries
  • Lab 7.15: Using Tuples and Sets
  • Lab 8.5: Creating Comparisons
  • Lab 9.5: Using Conditionals with Network Devices
  • Lab 10.6: Using Loops
  • Lab 10.1: Using break and continue
  • Lab 10.11: Tabulate and Print Routes per Interface
  • Lab 11.6: Creating Functions
  • Lab 11.8: Creating Functions That Return Values
  • Lab 12.6: Creating Classes and Objects
  • Lab 13.4: Defining Classes
  • Lab 13.6: Defining Child Classes
  • Lab 14.5: Using Modules
  • Lab 14.8: Using Packages
  • Lab 15.5: Reading and Writing Structured Files
  • Lab 15.7: Reading and Writing Database Files
  • Lab 15.8: Storing Traffic Data
  • Lab 16.3: Debugging a Network Application
  • Lab 16.5: Unit Testing a Network Application
  • Lab 16.7: Logging Communication with Network Devices
Privacy and Cookies

This website stores cookies on your computer which help us make the website work better for you.

Learn moreAccept and Close
Social media & sharing icons powered by UltimatelySocial