Time to learn different things, this time i will learn SDN concepts and re-learn how to programming but in Python… Yes, i did a lot of programming while i was taking my degree at University using Java,C,C++, PHP and other technologies.
I heard really good things from my friends who took courses on Coursera, so i decided to try it.
Software Defined Networking by Georgia Institute of Technology
About the Course
This course introduces software defined networking, an emerging paradigm in computer networking that allows a logically centralized software program to control the behavior of an entire network.
Separating a network’s control logic from the underlying physical routers and switches that forward traffic allows network operators to write high-level control programs that specify the behavior of an entire network, in contrast to conventional networks, whereby network operators must codify functionality in terms of low-level device configuration.
Logically centralized network control makes it possible for operators to specify more complex tasks that involve integrating many disjoint network functions (e.g., security, resource control, prioritization) into a single control framework, allowing network operators to create more sophisticated policies, and making network configurations easier to configure, manage, troubleshoot, and debug.
Course Syllabus
This course will cover 8 modules (one per week).
Module 1: History and evolution of SDN
Module 2: Control and data plane separation
Module 3: Control Plane
Module 4: Network Virtualization
Module 5: Data Plane
Module 6: Programming SDNs
Modules 7: Verification and Debugging
Module 8: Use Cases and Looking Forward
Recommended Background
Students should have taken at least an undergraduate-level networking course and have programming experience in Python. Experience with virtual machines and other virtual networking environments may also be useful.
Suggested Readings
There are some useful videos available online; these might be a good starting point for many people:
- Prof. Nick McKeown, Stanford
“How SDN will Shape Networking”
- Prof. Scott Shenker, Berkeley:
“An attempt to motivate and clarify Software-Defined Networking (SDN)”
(watch the first 35 minutes or so)
You may find the additional reading useful for introductory material:
- OpenFlow: Basic description of OpenFlow
- Open Networking Foundation: For recent OpenFlow specifications, etc.
- Mininet: Environment that allows you to emulate OpenFlow networks on a laptop.
Course Format
The course will consist of a series of video lectures, each about 10 minutes in length.
Assignments for the course are lab-based programming assignments, many of which build off of the Mininet software developed at Stanford University, which can run SDNs in emulated environments on networks of virtual machines.
Programming for Everybody (Python) by University of Michigan
About the Course
This course is specifically designed to be a first programming course using the popular Python programming language. The pace of the course is designed to lead to mastery of each of the topics in the class. We will use simple data analysis as the programming exercises through the course. Understanding how to process data is valuable for everyone regardless of your career. This course might kindle an interest in more advanced programming courses or courses in web design and development or just provide skills when you are faced with a bunch of data that you need to analyze. You can do the programming assignments for the class using a web browser or using your personal computer. All required software for the course is free.
Course Syllabus
Week One: Introduction – Why we program?
Week Two: Variables and Expressions
Week Three: Conditional code
Week Four: Functions
Week Five: Loops and Iteration
Week Six: Strings
Week Seven: Files
Week Eight: Lists
Week Nine: Dictionaries
Week Ten: Tuples
Optional Topic: Regular Expressions
Recommended Background
There are no pre-requisites for this course. We avoid any advanced mathematics. You can do the entire class using a web browser. If you are going to do the programming exercises on your own computer (optional), you should know how to download and install software and be able to make folders and organize files on your computer. We will have detailed instructional videos for both Windows and Macintosh computers for all software installation and file management tasks for those who want to do software development on their computers. All required software for this class is free.
Suggested Readings
The textbook is titled Python for Informatics: Exploring Information. The book is free to download in all major electronic formats including: PDF, EPUB, MOBI, HTML, and Apple’s iBooks. The free iBooks version of the book contains enhanced video materials and exercises built into the book. You can purchase a printed copy of the book from Amazon for $8.99. It is not necessary to purchase the printed book. All of the book materials are available under a Creative Commons Attribution-NonCommercial 3.0 Unported License.