Skip to main content

Programming for networks and information security (5 cr)

Code: TT00BO26-3002

General information


Enrollment

03.06.2020 - 09.09.2020

Timing

31.08.2020 - 18.12.2020

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

Engineering and Business

Campus

Kupittaa Campus

Teaching languages

  • English

Degree programmes

  • Degree Programme in Information and Communication Technology

Teachers

  • Petri Hyvärinen
  • Tommi Tuomola

Groups

  • PTIVIS19T
    Data Networks and Cybersecurity

Objective

The goal of this workshop is to introduce the students to the concepts and techniques for programming a network device. Upon completion of the workshop, students will be able to:
- Understand the value, set-up and use of software concepts and tools relevant to network programmability (Python scripting, Git, JSON, Postman, APIs).
- Describe a different approach to software-defined networking (SDN), including central application policy control.
- Create simple applications in Python with REST APIs.
- Use the Cisco DevNet Sandbox to interact with programmable devices using real-world APIs on Cisco APIC-EM programmable controllers.
- Create a variety of programs to interact with the Cisco APIC-EM APIs.

Content

Introduction to Python and Programming Basics
- Code and Communities of Practice
- Python Basics: Use Python to create programs that accept user input and read and write to external files
- APIs and Parsing JSON: Create a Python application that accesses an API based on user input and processes and displays the JSON data that is returned.
- Programming the APIC-EM 2.1
- Network Programmability: Explain how the Cisco APIC-EM enhances network management and performance
- Programming the APIC-EM REST API: Explain features of the APIC-EM API and documentation
- Create Python software tools for working with the APIC-EM API

Materials

Cisco NetAcademy course: Network Programmability with Cisco APIC-EM

Teaching methods

Contact teaching:
- programming exercises in a workshop-style, where teachers assist when necessary
- supporting lectures, on a need basis

Exam schedules

Online exam, date to be announced later.

Student workload

Contact hours 42 h
Inpendent studying 93h, including:
- Reading Cisco Netacademy material
- Completing exercises
- Preparation for the exam

Content scheduling

The goal of this course is to introduce the students to the concepts and techniques for programming a network device.

Upon completion of the workshop, students will be able to:
- Understand the value, set-up and use of software concepts and tools relevant to network programmability (Python scripting, Git, JSON, Postman, APIs).
- Describe a different approach to software-defined networking (SDN), including central application policy control.
- Create simple applications in Python with REST APIs.
- Use the Cisco DevNet Sandbox to interact with programmable devices using real-world APIs on Cisco APIC-EM programmable controllers.
- Create a variety of programs to interact with the Cisco APIC-EM APIs.


The contents of the course:

Introduction to Python and Programming Basics
- Code and Communities of Practice
- Python Basics: Use Python to create programs that accept user input and read and write to external files
- APIs and Parsing JSON: Create a Python application that accesses an API based on user input and processes and displays the JSON data that is returned.
Programming the APIC-EM 2.1
- Network Programmability: Explain how the Cisco APIC-EM enhances network management and performance
- Programming the APIC-EM REST API: Explain features of the APIC-EM API and documentation
- Create Python software tools for working with the APIC-EM API

Evaluation scale

H-5

Assessment methods and criteria

Final exam grade
Completion of 5 coding exercises

Assessment criteria, fail (0)

Final exam not passed
Missing coding exercise

Assessment criteria, satisfactory (1-2)

Passed final exam results to 2
Missing coding exercise results -1 in final result

Assessment criteria, good (3-4)

Passed final exam results to 2
Predefined coding exercises done results to +1 in final result
Self-selected coding exercise done results to +1 in final result

Assessment criteria, excellent (5)

Passed final exam results to 2
Predefined coding exercises done results to +1 in final result
Self-selected coding exercise done results to +2 in final result when student selects higher difficulty level.

Qualifications

Introduction to Programming or equivalent competence in Python.