[[Category:OPS435]][[Category:rchan]]
{| class="wikitable" cellspacing="0" width="100%" cellpadding="5" border="1" style="text-align: left; vertical-align: top; border-spacing: 2px; border: 1px solid darkgray"
|+ OPS435 Weekly Task Update
|-
! week
! Topics
! Reading/Reference
! Tasks/Labs
|- style="vertical-align: top; background: none"
| 1: Jan 17-23
| <b>Course Overview</b>
<ul>
<li>Introduction</li>
<li>Why Python?</li>
<li>Languate: natural & formal</li>
</ul>
<b>Python Environment</b>
<ul>
<li>Concepts:
<ol><li>keywords</li>
<li>builtins</li>
</ol>
</li>
<li>Python Shell:
<ol><li>help()</li>
<li>dir()</li>
<li>type()</li>
<li>import</li>
</ol>
</li>
</ul>
| <ul>
<li>Think Python: Chapter 1
<ul>
<li>What is a program?</li>
<li>Input, process (sequence, looping, repetition), output</li>
<li>complier, interpreter</li>
<li>Debugging</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_1 |Lab 1:<br>Setup & Using Python]]</li>
</li>
|- style="vertical-align: top; background: #f9f9f9"
| 2:Jan 24-30
| <b>Python Basics:</b>
<ul>
<li>Objects</li>
<li>Variables</li>
<li>Operations</li>
<li>Built-in Functions</li>
</ul>
| <ul>
<li>Think Python: Chapter 2
<ul>
<li>Variable, expressions and statements</li>
<li>Script mode and interactive mode</li>
<li>Python math operators and order of operations</li>
<li>String operation '+' and '*'</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_2 |Lab 2:<br>Understanding Python Code]]</li>
</li>
|- style="vertical-align: top; background: none"
| 3:Jan 31-Feb 6
| <b>Reusing Python Code:</b>
<ul>
<li>Functions</li>
<li>Lists</li>
</ul>
| <ul>
<li>Think Python: Chapter 3 Functions
<ul>
<li>Function calls</li>
<li>Adding new functionse</li>
<li>Definitions and usess</li>
<li>Flow of execution</li>
<li>Parameters and arguments</li>
<li>Variables and parameters</li>
<li>Fruitful functions and void functions</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_3 |Lab 3:<br>Reusing Python Code]]</li>
</li>
|- style="vertical-align: top; background: #f9f9f9"
| 4:Feb 7-13
| <b>Basic Data Structures and String Manipulation:</b>
<ul>
<li>Tuples</li>
<li>Lists</li>
<li>Sets</li>
<li>Dictionaries</li>
<li>Strings</li>
</ul>
| <ul>
<li>Think Python: Chapter 5 Conditionals and recursion
<ul>
<li>Boolean expression</li>
<li>Logical operators</li>
<li>Conditional execution</li>
<li>Alternative execution</li>
<li>Chained conditionals</li>
<li>Nested conditionals</li>
<li>Recursion</li>
<li>Infinite recursion</li>
<li>Keyboard Input</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_4 |Lab 4:<br>Basic Data Structure & String Manipulation]]</li>
</li>
|- style="vertical-align: top; background: none"
| 5:Feb 14-20
|
|
| <ul>
<li>[[OPS435_Python_Lab_5 |Lab 5:<br>Files & Error Handling]]</li>
</li>
|- style="vertical-align: top; background: #f9f9f9"
| 6:Feb 21-Mar 6
| <b>Mid-Term Test</b>
<ul>
<li>Date: March 6, 2018</li>
<li>Topics: Lab 1 to Lab 5 and All topics covered from week 1 to week 5</li>
</ul>
|
| <ul>
<li>[[OPS435 Assignment 1 A| Assignment 1]]</li>
<li>Due Date: February 28, 2018</li>
</li>
|- style="vertical-align: top; background: none"
| -----
|
|
|
|- style="vertical-align: top; background: #f9f9f9"
| Break:Feb 26-Mar 4
|
|
|
|- style="vertical-align: top; background: none"
| 7:Mar 7-13
| <b>Files, Exceptions:</b>
<ul>
<li>File Handling</li>
<li>Error Handling</li>
</ul>
| <ul>
<li>Think Python: Chapter 14 - Files
<ul>
<li>Reading and writing</li>
<li>Format operator</li>
<li>Filenames and paths</li>
<li>Catching exception</li>
<li>Databasess</li>
<li>Picking</li>
<li>Pipes</li>
<li>Writing modules</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_5 |Lab 5:<br>Files & Error Handling]]</li>
</li>
|- style="vertical-align: top; background: #f9f9f9"
| 8:Mar 14-20
| <b>Classes:</b>
<ul>
<li>Components of a class</li>
<li>Classes and objects</li>
</ul>
| <ul>
<li>Think Python: Chapter 15 - Classes and objects
<ul>
<li>Programmer-defined types</li>
<li>Attributes</li>
<li>Instances and return values</li>
<li>Objects are mutable</li>
<li>Copying</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_6 |Lab 6:<br>Writing Python Classes]]</li>
</li>
|- style="vertical-align: top; background: none"
| 9:Mar 21-27
| <b>Classes:</b>
<ul>
<li>Designing classes</li>
<li>Understanding scope</li>
</ul>
| <ul>
<li>Think Python: Chapter 16 - Classes and functions
<ul>
<li>Pure functions</li>
<li>Modifiers</li>
<li>Prototyping versus planning</li>
</ul>
</li>
<li>Think Python: Chapter 17 - Classes and methods
<ul>
<li>The init method</li>
<li>The __str__methond</li>
<li>Operator overloading</li>
<li>Type-based dispatch</li>
<li>Polymorphism</li>
</ul>
</li>
</ul>
| <ul>
<li>[[OPS435_Python_Lab_7 |Lab 7:<br>Classes, Objects & scope]]</li>
</li>
|- style="vertical-align: top; background: #f9f9f9"
| 10:Mar 28-Apr 3
|
|
| <ul>
<li>[[OPS435 Python Assignment 2 | Assignment 2]]</li>
<li>Due Date: April 11, 2018</li>
</li>
|- style="vertical-align: top; background: none"
| 11:Apr 4-10
| <b>Configuration management:</b>
<ul>
<li>Fabric</li>
<li>Ansible</li>
</ul>
|
| <ul>
<li>[[OPS435_Python_Lab_8 |Lab 8:<br>Configuration management]]</li>
</li>
|- style="vertical-align: top; background: #f9f9f9"
| 12:Apr 11-17
| <b>Python Networking</b>
<ul>
<li>Network Client</li>
<li>Network Server</li>
Asynchronous Python Networking</li>
</ul>
|
|
|- style="vertical-align: top; background: none"
| 13:Apr 18-24
|
|
|
|}
{| class="wikitable" cellspacing="0" width="100%" cellpadding="5" border="1" style="text-align: left; vertical-align: top; border-spacing: 2px; border: 1px solid darkgray"