Skip to content

Commit

Permalink
first draft curriculum outline
Browse files Browse the repository at this point in the history
  • Loading branch information
colevandersWands committed Oct 31, 2023
1 parent a9dc181 commit 112d173
Show file tree
Hide file tree
Showing 8 changed files with 886 additions and 7,794 deletions.
3 changes: 2 additions & 1 deletion pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
"study-lenses": "Study Lenses",
"curriculum-design": "Curriculum Design",
"lesson-materials": { "display": "hidden" },
"web-development-curriculum": "Web Development Curriculum",
"awesome-teaching": "Awesome Teaching",
"De Nepo on GitHub": {
"De Nepo on GitHub": {
"href": "https://github.com/DeNepo",
"newWindow": true
}
Expand Down
2,350 changes: 12 additions & 2,338 deletions pages/curriculum-design/big-picture-assets/ea-wd-1-html.excalidraw.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2,958 changes: 12 additions & 2,946 deletions pages/curriculum-design/big-picture-assets/ea-wd-2-users.excalidraw.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2,519 changes: 12 additions & 2,507 deletions pages/curriculum-design/big-picture-assets/eb-ds-2-analyzing-data.excalidraw.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 0 additions & 2 deletions pages/index.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
Make best practice common practice by connecting CE researchers, educators and developers to build what learners need.

![de-nepo-value-propositions](/de-nepo-value-propositions-white.png)

### Open Education
Expand Down
92 changes: 92 additions & 0 deletions pages/web-development-curriculum.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
## What is Programming?

Programming is communication. It's also a lot of other things, but this
curriculum will focus on the different ways you communicate with your code.

When you write code you are really just writing a text document, exactly like
you might write an email or a note. The biggest difference between an email and
a computer program is _who you are writing for_.

When you write an email you're writing for the person who will be reading it.
When you write a computer program you are writing for 3 very different audiences
at the same time! One single document (your code) needs to be understandable to:

- **Developers**: A developer needs to read your code and understand what you
were trying to do and why.
- **Computers**: Your code needs to have _perfect_ syntax so the computer can
parse it, and you must write instructions that are allowed by the programming
language or the computer will throw an error.
- **Users**: The instructions you give to the computer must create an intuitive
and pleasant experience for the user.

Being a developer means understanding how all these characters interact, then
communicating with everyone involved to deliver quality software within your
project's constraints. This diagram shows the different channels of
communication in a software project:

![rhetorical situation](./web-development-curriculum/assets/rhetorical-situation.svg)

## Layers of Skills

Software Development is a many layered skill. One way to break it down is to think of these layers:

1. **Planning and Collaborating**: _Breaking down large problems into tasks that can be shared_
- > _This is introduced in the **Workflows** and **Agile Develompent** modules, and practiced in every other module_
1. **Source Code**: _The basic literacy of programming_
- Learning the key words \(_vocabulary_\) and syntax \(_grammar_\) for your programming language
- Being able to read your code out loud, tracing it's execution as a computer would
- Understanding what the developer wanted to say with their code
- > **Welcome to JS** will focus on these skills\_
1. **Machine Instructions**: _The basic mechanics of programming_
- Understanding the life-cycle of your program
- Understand how the computer will interpret your source code to create a running program
- Understand what about your code matters to the computer, and what matters to people
- Fixing syntax errors that occur when you try to run your code
- Predicting which lines of code will be executed in which order
- Predicting how each line of code will change what is stored in program memory
- Reading error messages & callstacks to fix fix semantic errors that occur when you run your code
- > **Inside JS** and **Asynchronous Programming** will focus on these skills\_
1. **Problem Solving & Algorithms**: _Breaking down large problems to be solved in small steps_
- Understanding a coding challenge and being able to break it down in different ways
- Determining which solution strategies are correct for which types of problems
- Understanding how test cases are used to describe your solution strategy
- Identifying the best language feature to use with your strategy
- Reading test cases to understand how code is _supposed to_ behave
- Using Test Cases to structure your solution design process \(Test Driven Development\)
- Identifying and isolating mistakes in your code by reading failing test cases
- Demonstrating your code does what you think it does by passing test cases
- > _**Behavior, Strategy, Implementation** Module will focus on these skills_
1. **Software Design**: _Organizing smaller pieces of code into full software solutions_
- > _Every module starting with **Separation of Concerns** will focus on these skills_
1. **Context**: _Who uses a program, what is it's impact, and where did it come from?_
- Real people will use your software, is it accessible to them?
- Your software exists in a society, what it's impact on others?
- Someone planned and build your software, what were their motivations?
- > _**UX/UI Design** and the **Final Project** Module will focus on these skills_
## The Curriculum: a Spider Web

It's helpful to imagine the DeNepo curriculum as a spider web with two types of
thread:

- **Skills**: The lines going out from the center represent the skills you will
practice each and every week.
- **Technologies**: The circles going out from the center represent the
languages and technologies you will learn in each module.

The _Workflows_ modules starts in the center of this spider's web. You will
already be practicing all of the skills but with projects that use only
Markdown. Because Markdown is small and simple you will be free to focus on more
important things like communication and code review.

After you have practiced working on full group projects written in markdown, you
will expand to the second circle with the _Agile Development_ module. This is
when you learn how to collaboratively plan and develop web pages written with
HTML and CSS. You will continue practicing all of the skills you learned in
_Workflows_, only now the programming languages will be more complex.

... and so on, forever! DeNepo is just the beginning. Your web will continue to
grow after you finish studying this curriculum, you practice the skills in your
web and add rings of new languages and technologies.

![curriculum spider web](./web-development-curriculum/assets/curriculum-spider-web.svg)
16 changes: 16 additions & 0 deletions pages/web-development-curriculum/assets/curriculum-spider-web.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
740 changes: 740 additions & 0 deletions pages/web-development-curriculum/assets/rhetorical-situation.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 112d173

Please sign in to comment.