Calendar
========

1: Week of 12 Jan
-----------------
+--------------------+------------+---------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------------------+
| Monday             | Tuesday    | Wednesday                                                                                         | Thursday   | Friday                                                                                                      |
+====================+============+===================================================================================================+============+=============================================================================================================+
|  **Introduction**  |            | `Version Control with Git - Part 1`_                                                              |            | `Version Control with Git - Part 2`_                                                                        |
|                    |            |                                                                                                   |            |                                                                                                             |
| * Syllabus         |            | * Setting up git repository                                                                       |            | * Cloning                                                                                                   |
| * Expectations     |            | * git init, git status                                                                            |            | * Fork, Branch, Tag, Pull/Merge Request                                                                     |
| * Project          |            | * git add, git commit, git push                                                                   |            | * README                                                                                                    |
|                    |            | * git log git checkout                                                                            |            | * Useful Files                                                                                              |
|                    |            |                                                                                                   |            |                                                                                                             |
|                    |            |                                                                                                   |            | **Homework 1 Released**                                                                                     |
+--------------------+------------+---------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------------------+

.. _Version Control with Git - Part 1: https://cs401.readthedocs.io/en/latest/unit02/version_control_1.html
.. _Version Control with Git - Part 2: https://cs401.readthedocs.io/en/latest/unit02/version_control_2.html

2: Week of 19 Jan
-----------------
+--------------------------------------------------------------------------------------------------+------------+-----------------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------------------+
| Monday                                                                                           | Tuesday    | Wednesday                                                                                                 | Thursday   | Friday                                                                                                      |
+==================================================================================================+============+===========================================================================================================+============+=============================================================================================================+
| Dr. Martin Luther King Jr. Day (No class)                                                        |            | `Introduction to Containers`_                                                                             |            | `Introduction to Containers`_                                                                               |
|                                                                                                  |            |                                                                                                           |            |                                                                                                             |
|                                                                                                  |            | * What is a container?                                                                                    |            | * Official Images                                                                                           |
|                                                                                                  |            | * Docker                                                                                                  |            | * Interactive Shell                                                                                         |
|                                                                                                  |            | * Image & Dockerfile                                                                                      |            | * Common Docker Commands                                                                                    |
|                                                                                                  |            | * docker hello-world                                                                                      |            |                                                                                                             |
|                                                                                                  |            |                                                                                                           |            |                                                                                                             |
|                                                                                                  |            | **Quiz 1**                                                                                                |            | **Homework 1 Due**                                                                                          |
+--------------------------------------------------------------------------------------------------+------------+-----------------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------------------+

.. _Introduction to Containers: https://cs401.readthedocs.io/en/latest/unit03/containers_1.html

3: Week of 26 Jan
-----------------
+-----------------------------------+------------+-------------------------------------------------------------------------------------------------------------+------------+----------------------------------------------------------------------------------------------------------+
| Monday                            | Tuesday    | Wednesday                                                                                                   | Thursday   | Friday                                                                                                   |
+===================================+============+=============================================================================================================+============+==========================================================================================================+
| `Advanced Containers`_            |            | `Advanced Containers`_                                                                                      |            | `Docker Compose`_                                                                                        |
|                                   |            |                                                                                                             |            |                                                                                                          |
| * Containerize Code Interactively |            | * Building the Image                                                                                        |            | * Multiple Dockerfiles                                                                                   |
| * Dependencies                    |            | * Testing the Image                                                                                         |            | * Compose File                                                                                           |
| * Dockerfile                      |            | * CMD                                                                                                       |            | * docker compose run                                                                                     |
| * FROM, RUN, COPY                 |            | * Sharing Docker Image                                                                                      |            |                                                                                                          |
|                                   |            |                                                                                                             |            |                                                                                                          |
+-----------------------------------+------------+-------------------------------------------------------------------------------------------------------------+------------+----------------------------------------------------------------------------------------------------------+

.. _Advanced Containers: https://cs401.readthedocs.io/en/latest/unit03/containers_2.html
.. _Docker Compose: https://cs401.readthedocs.io/en/latest/unit03/docker_compose.html

4: Week of 2 Feb
-----------------
+----------------------------------------------------------------------------------------------------------------------------------+------------+-------------------------------------------------+------------+-----------------------------------+
| Monday                                                                                                                           | Tuesday    | Wednesday                                       | Thursday   | Friday                            |
+==================================================================================================================================+============+=================================================+============+===================================+
| **Working Day**                                                                                                                  |            | `Intro to Software Design`_                     |            | `Python - Code Organization`_     |
|                                                                                                                                  |            | `Diagrams of Software Design`_                  |            |                                   |
|                                                                                                                                  |            |                                                 |            | * import                          |
|                                                                                                                                  |            | * Principles                                    |            | * main                            |
|                                                                                                                                  |            | * Structural Diagrams/Behavioral Diagrams       |            | * groceries.py                    |
|                                                                                                                                  |            | * UML                                           |            | **Quiz 2**                        |
+----------------------------------------------------------------------------------------------------------------------------------+------------+-------------------------------------------------+------------+-----------------------------------+

.. _Intro to Software Design: https://cs401.readthedocs.io/en/latest/unit04/intro_software_design.html
.. _Diagrams of Software Design: https://cs401.readthedocs.io/en/latest/unit04/diagrams.html

5: Week of 9 Feb
-----------------
+----------------------------+----------+-------------------------------+------------+-------------------------------------------------------------------------------------------------------------+
| Monday                     | Tuesday  | Wednesday                     | Thursday   | Friday                                                                                                      |
+============================+==========+===============================+============+=============================================================================================================+
| Extreme Weather (No Class) |          | `Python - Code Organization`_ |            | **Quiz 3**                                                                                                  |
|                            |          |                               |            |                                                                                                             |
|                            |          | * Generalize Functions        |            |                                                                                                             |
|                            |          | * Shebang                     |            |                                                                                                             |
|                            |          | * File Organization           |            |                                                                                                             |
|                            |          |                               |            | **Project Released**                                                                                        |
+----------------------------+----------+-------------------------------+------------+-------------------------------------------------------------------------------------------------------------+

.. _Python - Code Organization: https://cs401.readthedocs.io/en/latest/unit05/organization.html

6: Week of 16 Feb
-----------------
+--------------------------------------------------------------------------------------------------------+------------+--------------------------------------------------------------------------------------------------+------------+---------------------------------------------------------------------------------------------------------+
| Monday                                                                                                 | Tuesday    | Wednesday                                                                                        | Thursday   | Friday                                                                                                  |
+========================================================================================================+============+==================================================================================================+============+=========================================================================================================+
| President's Day (No Class)                                                                             |            | `Documentation`_                                                                                 |            | **Working Day**                                                                                         |
|                                                                                                        |            | `Logging`_                                                                                       |            |                                                                                                         |
|                                                                                                        |            |                                                                                                  |            |                                                                                                         |
|                                                                                                        |            | * Docstrings                                                                                     |            |                                                                                                         |
|                                                                                                        |            | * Type Hints                                                                                     |            |                                                                                                         |
|                                                                                                        |            | * Log Levels                                                                                     |            |                                                                                                         |
|                                                                                                        |            |                                                                                                  |            |                                                                                                         |
+--------------------------------------------------------------------------------------------------------+------------+--------------------------------------------------------------------------------------------------+------------+---------------------------------------------------------------------------------------------------------+

.. _Documentation: https://cs401.readthedocs.io/en/latest/unit05/documentation.html
.. _Logging: https://cs401.readthedocs.io/en/latest/unit05/logging.html

7: Week of 23 Feb
-----------------
+------------------+------------+--------------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------+
| Monday           | Tuesday    | Wednesday                                                                                              | Thursday   | Friday                                                                                          |
+==================+============+========================================================================================================+============+=================================================================================================+
| `Unit Testing`_  |            | **Check-in**                                                                                           |            | `Error Handling`_                                                                               |
|                  |            |                                                                                                        |            |                                                                                                 |
| * pytest         |            |                                                                                                        |            | * Common Errors                                                                                 |
| * assert         |            |                                                                                                        |            | * traceback message                                                                             |
| * exceptions     |            |                                                                                                        |            | * xxxError                                                                                      |
| * standard out   |            |                                                                                                        |            | * try, except                                                                                   |
+------------------+------------+--------------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------+

.. _Unit Testing: https://cs401.readthedocs.io/en/latest/unit05/unittest.html
.. _Error Handling: https://cs401.readthedocs.io/en/latest/unit05/errorhandling.html

8: Week of 2 Mar
-----------------
+----------------+----------------------------------+----------------------------------------------------------------------------------------------------------+------------+----------------------------------------------------------------------------------------------------------+
| Monday         | Tuesday                          | Wednesday                                                                                                | Thursday   | Friday                                                                                                   |
+================+==================================+==========================================================================================================+============+==========================================================================================================+
| **Check-in**   |                                  | `Intro to APIs`_                                                                                         |            | **Quiz 4**                                                                                               |
|                |                                  |                                                                                                          |            |                                                                                                          |
|                |                                  | * HTTP Verbs                                                                                             |            |                                                                                                          |
|                |                                  | * Response Codes                                                                                         |            |                                                                                                          |
|                |                                  | * REST APIs                                                                                              |            |                                                                                                          |
|                |                                  | * requests                                                                                               |            |                                                                                                          |
|                |                                  |                                                                                                          |            |                                                                                                          |
|                | **Homework3 Released**           |                                                                                                          |            |                                                                                                          |
+----------------+----------------------------------+----------------------------------------------------------------------------------------------------------+------------+----------------------------------------------------------------------------------------------------------+

.. _Intro to APIs: https://cs401.readthedocs.io/en/latest/unit06/intro_to_apis.html

9: Week of 9 Mar
-----------------
+-------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------+------------+--------------------------------------------------------------------------------------------------------------+
| Monday                                                                                          | Tuesday                       | Wednesday                                                                                                | Thursday   | Friday                                                                                                       |
+=================================================================================================+===============================+==========================================================================================================+============+==============================================================================================================+
| `Advanced Flask`_                                                                               |                               | `Advanced Flask`_                                                                                        |            |                                                                                                              |
|                                                                                                 |                               |                                                                                                          |            |                                                                                                              |
| * Typed URL Parameters                                                                          |                               | * HTTP Headers                                                                                           |            |                                                                                                              |
| * Valid Flask Responses                                                                         |                               | * Media Types                                                                                            |            |                                                                                                              |
| * JSON                                                                                          |                               | * Query Parameters                                                                                       |            |                                                                                                              |
|                                                                                                 |                               | * Error Handling                                                                                         |            |                                                                                                              |
|                                                                                                 |                               |                                                                                                          |            |                                                                                                              |
|                                                                                                 |                               |                                                                                                          |            |                                                                                                              |
|                                                                                                 | **Homework 3 Due**            |                                                                                                          |            |                                                                                                              |
+-------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------+------------+--------------------------------------------------------------------------------------------------------------+

10: Week of 16 Mar
------------------
+---------------+---------------+---------------+---------------+---------------+
|  Monday       | Tuesday       | Wednesday     | Thursday      | Friday        |
+===============+===============+===============+===============+===============+
| Spring Break  | Spring Break  | Spring Break  | Spring Break  | Spring Break  |
| No class      | No class      | No class      | No class      | No class      |
+---------------+---------------+---------------+---------------+---------------+


11: Week of 23 Mar
------------------
+--------------------------------------------------------------------------------------------------+------------+--------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------+
| Monday                                                                                           | Tuesday    | Wednesday                                                                                        | Thursday   | Friday                                                                                          |
+==================================================================================================+============+==================================================================================================+============+=================================================================================================+
| * `Advanced Flask`_                                                                              |            | `Flask Special Topics`_                                                                          |            | **Project Check-in**                                                                            |
| * `Containerizing Flask`_                                                                        |            |                                                                                                  |            |                                                                                                 |
|                                                                                                  |            |                                                                                                  |            |                                                                                                 |
| * CRUD Operations                                                                                |            |                                                                                                  |            |                                                                                                 |
| * Dockerfile requirements                                                                        |            |                                                                                                  |            |                                                                                                 |
| * port mapping                                                                                   |            |                                                                                                  |            |                                                                                                 |
|                                                                                                  |            |                                                                                                  |            |                                                                                                 |
+--------------------------------------------------------------------------------------------------+------------+--------------------------------------------------------------------------------------------------+------------+-------------------------------------------------------------------------------------------------+

.. _Advanced Flask: https://cs401.readthedocs.io/en/latest/unit06/advanced_flask.html
.. _Containerizing Flask: https://cs401.readthedocs.io/en/latest/unit06/flask_docker.html
.. _Flask Special Topics: https://cs401.readthedocs.io/en/latest/unit06/flask_special_topics.html
12: Week of 30 Mar
------------------
+------------------------------------------------------------------------------------------------+------------+-------------------------+------------+--------------------------------------------------------------------------------------------------------------+
| Monday                                                                                         | Tuesday    | Wednesday               | Thursday   | Friday                                                                                                       |
+================================================================================================+============+=========================+============+==============================================================================================================+
| **Project check-in**                                                                           |            | `Intro to HTML`_        |            | Good Friday (No Class)                                                                                       |
|                                                                                                |            |                         |            |                                                                                                              |
|                                                                                                |            | * HTML elements         |            |                                                                                                              |
|                                                                                                |            | * HTML anatomy          |            |                                                                                                              |
|                                                                                                |            | * Markup                |            |                                                                                                              |
|                                                                                                |            | * non-semantic wrappers |            |                                                                                                              |
+------------------------------------------------------------------------------------------------+------------+-------------------------+------------+--------------------------------------------------------------------------------------------------------------+
.. _Intro to HTML: https://cs401.readthedocs.io/en/latest/unit07/intro_html.html

13: Week of 6 Apr
------------------
+----------------------+------------+------------------------------------------------------------------------------------------------------------------------+------------+-----------------------------+
| Monday               | Tuesday    | Wednesday                                                                                                              | Thursday   | Friday                      |
+======================+============+========================================================================================================================+============+=============================+
| **Project Check-in** |            | **Working Day**                                                                                                        |            | No Class (Weather)          |
|                      |            |                                                                                                                        |            |                             |
|                      |            |                                                                                                                        |            |                             |
|                      |            |                                                                                                                        |            |                             |
|                      |            |                                                                                                                        |            |                             |
+----------------------+------------+------------------------------------------------------------------------------------------------------------------------+------------+-----------------------------+

14: Week of 13 Apr
------------------
+------------+------------+------------+------------+------------+
| Monday     | Tuesday    | Wednesday  | Thursday   | Friday     |
+============+============+============+============+============+
|            |            |            |            |            |
+------------+------------+------------+------------+------------+

15: Week of 20 Apr
------------------
+------------+------------+------------+------------+------------------+
| Monday     | Tuesday    | Wednesday  | Thursday   | Friday           |
+============+============+============+============+==================+
|            |            |            |            |                  |
+------------+------------+------------+------------+------------------+

16: Week of 27 Apr
------------------
+-------------------+------------+--------------------------------------+------------+----------------------------+
| Monday            | Tuesday    | Wednesday                            | Thursday   | Friday                     |
+===================+============+======================================+============+============================+
|                   |            |                                      |            |                            |
|                   |            |                                      |            |                            |
|                   |            |                                      |            |                            |
|                   |            |                                      |            |                            |
|                   |            |                                      |            |Last day of class           |
+-------------------+------------+--------------------------------------+------------+----------------------------+

17: Week of 4 May
------------------
+------------+------------+------------+------------+------------+
| Monday     | Tuesday    | Wednesday  | Thursday   | Friday     |
+============+============+============+============+============+
|Finals Week |Finals Week |Finals Week |Finals Week |Finals Week |
+------------+------------+------------+------------+------------+
