knowledge-kitchen

Course Intro - Agile Software Development & DevOps

Agile Software Development & DevOps

  1. Welcome
  2. Who you are
  3. Topics
  4. Structure
  5. Software
  6. What others say
  7. Conclusions

Welcome

Course description

We learn how to build software following contemporary best practices.

This course is as much about process as it is about product.

Students work in teams to produce a software product of their choosing.

Me

Foo Barstein

Who you are

Profile

Who are you, really?

Welcome!

What you know

What you probably don’t know

Topics

Agile development

We will learn agile development’s origins.

Javascript stack

We will dive head-first into the Javascript stack for web app development. In particular, the MERN stack.

You will absorb HTML, CSS, and Javascript through osmosis

unless you’re not paying attention.

We will learn through osmosis?

Yes.

User experience design

You will have to figure out how to determine what makes a good experience versus a mediocre or terrible one.

Skills we will develop

You cannot do contemporary work without some fundamental skills.

Questions we will answer

There are common questions we will aim to answer:

Structure

Overview

This course involves each of the following:

Grading

Grading is broken down as follows:

Attendance is mandatory. Absence, whether full or partial, will result in up to a 10% penalty on your final grade.

Texts

No single textbook is necessary nor sufficient for this course. We will refer to various online resources where relevant.

Software

Install these now

You will need a variety of software tools. Here are a few to set up right now.

Forbidden software

Some software is inappropriate for the objectives of this course and is therefore forbidden:

Email

This course is focused on teaching contemporary software development practices. This includes learning to effectively use team messenger apps for communication.

Do not send emails except in an emergency where no other messaging system is available.

Useful resources

Privacy in Visual Studio Code

By default, Visual Studio Code sends telemetry data to Microsoft servers. This data is used to track you and your usage of the editor. See their documentation on how to turn it off. Some users claim that there is no way to fully disable it.

Use of extensions may further erode your privacy. For example, GitHub Copilot and similar “AI” extensions send all your usage data to Microsoft servers.

A free, open source version of Visual Studio Code called VSCodium is available, although it will not necessarily have improved privacy and may not support some of the extensions that we will use in this course. You are welcome to try it and switch to the regular VS Code if you encounter problems.

Setting Up Bash within Visual Studio Code

WINDOWS USERS - one of our learning objectives is to develop fluency in the UNIX/Linux command line environment. UNIX/Linux commands are the lingua franca of computing. Most Unix/Linux shells are some variation of bash, which itself is a clone of sh.

Do not use Powershell or any other shell in this course. It would behoove you to set up a Unix/Linux shell as your default instead of Powershell.

Setting Up Bash within Visual Studio Code (continued)

WINDOWS USERS - you should use Git Bash or Windows Subsystem for Linux (WSL) rather than Windows’ default Powershell or other command line shell program. To set Git Bash or WSL as the default terminal shell within Visual Studio Code, you can try to follow the instructions in the second answer here by Mahade Walid and edited by Schrodinger’s Porridge (ignore the first answer, which is outdated).

Javascript

React.js

Express.js

MongoDB and Mongoose

What Others Say

The Good

A sample of comments left by former students:

It is really a hands–on experience in developing an app! Really happy to see an idea coming to life.

The structure of this course is so well–organized! This is definitely the number one course I will recommend people take if they want to learn about software development.

The group work we had to do throughout the entire semester helped me learn many things about time management and as well as how real life projects in developing apps and websites work.

I really liked the class! Prof. Bloomberg is eloquent and thorough in his explanations of concepts.

The Bad

A sample of comments left by former students:

There was too much time spent on the unnecessary parts. This led to the situation that there was not much time for the actual project work. I think it will be better if we could directly dive into Sprint 0.

More focus and time spent on the second half of the course

It could improve by not having quizzes, as they don’t help me improve or learn much.

This class had really unclear grading – graders need to be more fair and clear with their rubrics and grading system

While it is the nature of a teamwork class, I would like for there to be more protections in place for students who are doing the bulk of the work.

The Ugly

It made me learn that terrible graders can ruin an otherwise decent class.

The worst. the whole course is a shitshow. My biggest waste of tuition fee.

The worst professor ever. Pissed every single day taking his class. He just never cares much about his classes.

If you have no prior web dev exp with MERN stack, AVOID unless want to self-study for 4 months and work with trolls in group pj. Lecture is absolute joke, only terminology, then expects you to know everything and start coding. 0 support, arrogant & vauge to questions usually. Grade: A tho cuz I wrote tons. But, AVOID, dont try!!!

Time commitment

Time commitment

Openness

Openness

Challenge

Challenge

Knowledge increase

Knowledge increase

Conclusions

Thank you. Bye.