Skip to content

Commit

Permalink
feat: initialize readme, devcontainer, and syllabus.
Browse files Browse the repository at this point in the history
  • Loading branch information
anthonydmays committed Sep 23, 2024
1 parent adea376 commit 6448550
Show file tree
Hide file tree
Showing 4 changed files with 281 additions and 2 deletions.
41 changes: 41 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"name": "Debian",
"image": "mcr.microsoft.com/devcontainers/base:bullseye",
"features": {
"ghcr.io/devcontainers/features/dotnet:2": {},
"ghcr.io/devcontainers/features/java:1": {
"installGradle": true,
"installMaven": true,
"version": "17",
"jdkDistro": "ms",
"gradleVersion": "latest",
"mavenVersion": "latest"
},
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers/features/python:1": {},
"ghcr.io/devcontainers-contrib/features/ts-node:1": {},
"ghcr.io/devcontainers/features/sshd:1": {},
"ghcr.io/warrenbuckley/codespace-features/sqlite:1": {}
},
"portsAttributes": {
"80": {
"requireLocalPort": true,
"elevateIfNeeded": true
}
},
"customizations": {
"vscode": {
"extensions": [
"vscjava.vscode-gradle",
"Oracle.oracle-java",
"esbenp.prettier-vscode",
"donjayamanne.python-extension-pack",
"ms-vscode.vscode-typescript-next",
"ms-dotnettools.csdevkit",
"ritwickdey.LiveServer",
"mechatroner.rainbow-csv",
"alexcvzz.vscode-sqlite"
]
}
}
}
14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"java.configuration.updateBuildConfiguration": "automatic",
"java.compile.nullAnalysis.mode": "automatic",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"prettier.requireConfig": true,
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
}
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
# code-differently-24-q4
Main repo for Code Differently Cohort 2024 Q4
# Code Differently 2024 Q4 Cohort

[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/code-differently/code-differently-24-q1)
[![Check Push](https://github.com/code-differently/code-differently-24-q1/actions/workflows/check_push.yml/badge.svg)](https://github.com/code-differently/code-differently-24-q1/actions/workflows/check_push.yml)

### Purpose
Main project repo for the Code Differently 2024 Q1 cohort. Read the [syllabus](/syllabus/) for more information about the class. Use the lesson folders to find and submit homework assignments.

### Preview
1. Install VS Code and Docker. You can references the [instructions here][dev-container-instructions], if needed.
1. Click the `Dev Containers` button above to automatically clone and open the project in a new dev container.

[dev-container-instructions]: https://aka.ms/vscode-remote/containers/getting-started
213 changes: 213 additions & 0 deletions syllabus/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
# Code Differently Cohort 2024 Q4

## Instructor

### Anthony D. Mays (@anthonydmays)

Anthony is a software engineer with over 23 years of experience across finance, e-commerce, enterprise consulting, and data visualization & analysis. Before becoming a full-time entrepreneur via his firm Morgan Latimer Consulting, he spent 8 years at Google where he became a Senior Software Engineer.

[![Website][website-badge]][instructor-website]
[![Github][github-badge]][instructor-github]
[![LinkedIn][linkedin-badge]][instructor-li]
[![Twitter][twitter-badge]][instructor-twitter]
[![YouTube][youtube-badge]][instructor-youtube]

[website-badge]: https://img.shields.io/badge/website-000000?style=for-the-badge&logo=About.me&logoColor=white
[github-badge]: https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white
[linkedin-badge]: https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white
[twitter-badge]: https://img.shields.io/badge/X-000000?style=for-the-badge&logo=x&logoColor=white
[youtube-badge]: https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white

[instructor-website]: https://anthonydmays.com
[instructor-github]: https://github.com/anthonydmays
[instructor-li]: https://linkedin.com/in/anthonydmays
[instructor-twitter]: https://twitter.com/anthonydmays
[instructor-youtube]: https://youtube.com/@anthonydmays

## Course Description

Software engineering continues to be one of the hottest careers in tech. Even with advances in machine learning and AI, the need for skilled engineers continues to grow. In this course, you will learn the foundations of digital computing and programming to understand how to build complex software systems at scale. You will also learn how modern collaborative software development takes place within organizations and teams through practical application.

## Objectives

* Learn how to write software using multiple programming languages
* Understand the principles of good code design
* Understand the basic principles of system design
* Develop competency in working across all layers of a distributed software system
* Learn the essential elements of the software development lifecycle (SDLC)
* Become familiar with software development tools
* Develop analytical and problem solving skills
* Grow competency in reading documentation and conducting research
* Engage in collaborative software development practices

## Books

The course will feature required reading from the following selection of books. Note the edition for each.

| Abbreviation | Title |
| ------------ | ---------------------------------------------------------------------------------- |
| HFJ | Head First Java: A Brain-Friendly Guide 3rd Edition |
| PIE | Programming Interviews Exposed (4th Edition, Wrox) |
| LWD | Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics |

## Slides

You can find the full lecture presentation slides at [ml.tips/24q3-slides][slides-link].

[slides-link]: https://ml.tips/24q3-slides

## Tools

Throughout the course, we will use the following tools for most assignments unless otherwise directed. Please familiarize yourself with these tools in advance to make for smoother adoption.

* VS Code (https://code.visualstudio.com/)
* Docker (https://www.docker.com/)
* Github CLI (https://cli.github.com/)

## Activities

Regular course work and homework assignments will be provided throughout lessons. Though varied, the assignments will generally consist of:

1. Completing one or more coding exercises to be submitted on Github or by email to instructor.
2. Watching assigned videos and reading.
3. Completing pop quizzes and tests.

## Course schedule

<table>
<thead>
<tr>
<th align="center">Week</th>
<th>Topics</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center" style="vertical-align: top">01</td>
<td>
<b>Course introduction and tools tutorial</b><br>
<b>Developer Workflow</b>
<ul>
<li>Git Fundamentals</li>
<li>IDE Fundamentals</li>
<li>Navigating the Terminal</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">02</td>
<td>
<b>Software Engineering Foundations</b>
<ul>
<li>How Computers Work</li>
<li>How To Be A Great Software Engineer</li>
<li>Software Development Lifecycle</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">03</td>
<td>
<b>Programming Languages, Week 1</b>
<ul>
<li>Statements and Variables</li>
<li>Control Flow</li>
<li>Functions</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">04</td>
<td>
<b>Programming Languages, Week 2</b>
<ul>
<li>Data Types</li>
<li>Libraries and APIs</li>
<li>Data Structures: Strings & Arrays</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">05</td>
<td>
<b>Programming Languages, Week 3</b>
<ul>
<li>Data Structures: Stacks, Queues, Linked Lists</li>
<li>Data Structures: Maps & Sets</li>
<li>Exceptions and Error Handling</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">06</td>
<td>
<b>Software Design</b>
<ul>
<li>Test Driven Development</li>
<li>OOP Principles, Part I</li>
<li>OOP Principles, Part II</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">07</td>
<td>
<b>Software Design - Project Week</b>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">08</td>
<td>
<b>Frontend Programming, Week 1</b>
<ul>
<li>Computer Languages</li>
<li>Web FE: Intro to HTML, CSS, & JS</li>
<li>Web FE: JavaScript Deep Dive</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">09</td>
<td>
<b>Frontend Programming, Week 2</b>
<ul>
<li>Introduction to React</li>
<li>Web APIs Using Rest</li>
<li>Web FE: Integrating with the Backend</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">10</td>
<td>
<b>Capstone Project, Week 1</b>
<ul>
<li>Introduction to Databases</li>
<li>Capstone Project</li>
</ul>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">11</td>
<td>
<b>Capstone Project, Week 2</b>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: top">12</td>
<td>
<b>Capstone Project, Week 3</b>
</td>
</tr>
</tbody>
</table>

## Academic Integrity

Students are absolutely encouraged to leverage learning resources outside of official course materials to enhance understanding and complete assignments. This includes use of tools like forums, search engines, or Large Language Models (LLM) such as Open AI ChatGPT, Google Gemini, and GitHub Copilot for example.

Generally speaking and unless otherwise stated by the instructor, students are also allowed to work together to collaboratively problem solve and come up with solutions.

That said, all students must credit provide credit for anything they did not generate themselves. This includes code, documentation, quotes, multimedia items used for presentations, and etc.

Any use of materials without providing proper credit will be considered cheating and will result in disciplinary action.

0 comments on commit 6448550

Please sign in to comment.