opusmagnum77 / phase-1A

Foundational skills in Linux, Python, and Cloud Computing with AWS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LMTD - Phase 1A

Intro to Cloud Technology & Foundational Cloud/DevOps Concepts Linux, Python, and Cloud Computing with AWS

Foundations of DevOps

Instructors: Cam Flowers and Shafan Sugarman

Program Dates: July 6th - August 29th

Class Times: TU, TH, FR 6:00-9:00 p.m. & SA 10 a.m.- 5:00 p.m.

TA Office Hours: Wednesdays 4:00-6:00 p.m.

Rationale

Some of the most exciting technological developments are occuring via cloud-based services deployed across the full tech stack. In this first phase of our program we will discuss the fundamentals of cloud-based programming using Linux, Python and deploy essential services utilizing AWS.

Course Aims and Outcomes

Aims

As a result of participating in this course, you will be able to explain the fundamental architecture of a cloud based tech stack, demonstrate proficiency in the fundamental scripting languages (BASH, Python), and create cloud based applications using modern frameworks in preparation for a healthy career in DevOps and related fields.

Specific Learning Outcomes

By the end of this course, you will be well-versed in the fundamentals of cloud-based programming in Python. You will be introduced to the Linux Operating System and learn to write scripts that communicate with the kernel. Building on this foundation, Python scripting frameworks are introduced; you will learn the concepts, syntax, and benefits of contemporary cloud computing (e.g. Virtualization, Cloud Storage, Cloud Monitoring). You will be able to develop interactive applications by the midterm of the course. The course will also introduce back-end web application concepts such as databases, application servers and cloud based hosting. By the completion of the course, you will be able to develop cloud managed applications and discuss the benefits of various architectures, design patterns, and elements of production-readyness. Specific concepts and technologies are highlighted in the course schedule below.

Format and Procedures

This course meets three times a week and once on the weekend to facilitate both lecture and lab components of instruction. This course is intended to reflect industry norms as much as possible; to that end, project delivery and collaboration are emphasized over written homework or assessments. Sessions will not be recorded by default, though some materials may be pre-recorded to facilitate instruction.

Assumptions

This course has no prerequisite courses; however, you are expected to expediently learn new programming languages as they are introduced in this course.

There is a guide of recommended precourse work available here

Course Requirements

Tasks and assignments are intended to align with the learning outcomes specified above.

Class attendance and participation policy

Attendance is a weighed component of this class, students are encouraged to attend all lectures to fully benefit from the delivered material and peer discussion.

Course readings

In adhering to "real-world" industry norms, this class does not have any required texts, as all course material can be obtained through various free online resources. However, various readings will be recommended during the course of this class and will likely be helpful to student learning.

Assignments

Student evaluations in this course will be assigned as follows:

  • Attendance

    • Intents:
      • Reinforce readings/lecture content
      • Practice writing code
      • Practice using GitHub (delivery/submission vehicle)
  • Lab 1 -- Linux Shell Scripting

    • Introduction to Linux OS & Bash
    • Intents:
      • Demonstrate understanding of Operating Systems
      • Demonstrate ability to write Shell scripts in Linux
      • Add to students' public GitHub portfolios
  • Lab 2 -- Python Fundamentals

    • Python Fundamentals
    • Intents:
      • Demonstrate practical knowledge of Python
      • Demonstrate understanding of Object Oriented architecture
      • Add to students' programming knowledge
      • Practice code collaboration
  • Lab 3 -- Intermediate Python

    • Intermediate Python
    • Intents:
      • Demonstrate ability to develop a full Python application
      • Demonstrate ability to import Python modules
      • Demonstrate ability to update and retrieve stored data
      • Practice code collaboration
  • Project 1 -- Cloud-Managed Application

    • Cloud Managed Application
    • Intents:
      • Demonstrate ability to connect to aws-cli in Python
      • Assess student's understanding of AWS Cloud (Storage, Virtualization and Computing)
      • Practice code collaboration and documentation
  • Project 2 -- Final Project

  • Intents: Intermediate Cloud

    • Demonstrate intermediate knowledge of cloud based architecture
    • Develop a fully cloud managed application and basic scripts for monitoring updates
    • Practice design thinking, code collaboration and documentation
    • Practice pitching and presentational aspect of live interviews

Tentative Course Schedule

May change to accommodate guest presenters & student needs.

Week Date Content README Assigned Due
0 6/26 - 7/7 Onboarding -- -- Precourse Work
1 7/9 - 7/11 Linux OS Unit 1 Lab 1 Lab 1
2 7/14 - 7/18 Python Fundamentals Unit 2 Lab 2 Lab 2
3 7/21 - 7/25 Python Fundamentals Unit 2 Lab 3 Lab 3
4 7/28 - 8/1 Networking Essentials Unit 3 Project 1 Lab 3
5 8/4 - 8/8 Intro to AWS Unit 4 Project 1 --
6 8/11 - 8/15 AWS Cloud Computing Unit 4 Project 2 Project 1
7 8/18 - 8/22 AWS Cloud Computing Unit 4 Project 2 --
8 8/25 - 8/29 Final Projects Project Reqs -- Final Project

Due -- | TBA | -- | -- | -- | Final Showcase

Academic Integrity

Each student in this course is expected to abide by a policy of Academic Integrity. Any work submitted by a student in this course for credit will be the student's own work. Collaboration is allowed where assignments are designated as group projects.

You are encouraged to study together and to discuss information and concepts covered in lecture and the sections with other students. You can give "consulting" help to or receive "consulting" help from such students. However, this permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in the form of an e-mail, an e-mail attachment file, a diskette, or a hard copy.

Reasonable Accommodations and Academic Adjustments

Our team is available to discuss appropriate academic accommodations that may be required for student with disabilities or reasonable accommodations.

Inclusivity Statement

We understand that our members represent a rich variety of backgrounds and perspectives. The Instructional Team is committed to providing an atmosphere for learning that respects diversity. While working together to build this community we ask all members to:

  • share their unique experiences, values and beliefs
  • be open to the views of others
  • honor the uniqueness of their colleagues
  • appreciate the opportunity that we have to learn from each other in this community
  • value each other's opinions and communicate in a respectful manner
  • keep confidential discussions that the community has of a personal (or professional) nature
  • use this opportunity together to discuss ways in which we can create an inclusive environment in this course and across the community

About

Foundational skills in Linux, Python, and Cloud Computing with AWS


Languages

Language:Python 100.0%