Coder Social home page Coder Social logo

ada-developers-academy / ada-build Goto Github PK

View Code? Open in Web Editor NEW
727.0 148.0 419.0 3.64 MB

Ada Build is curriculum that is intended for anyone who is interested in beginning their journey into coding.

Jupyter Notebook 96.36% HTML 1.74% SCSS 1.00% JavaScript 0.90%
curriculum cs-education ada-developers-academy

ada-build's Introduction

Ada Build Curriculum

This repository contains the materials for the Build program as part of Ada Developers Academy. This curriculum is designed as an introductory curriculum for people starting their journey into coding.

Learning at Ada

Through these resources you will learn about the languages that Ada teaches and practice the art of problem solving.

Order Lesson
00 Ada programming languages
01 Effective Internet Searching
02 Problem Solving

Introduction to Programming in Python

These lessons will introduce you to the fundamentals of programming including writing your first program, learning programming vocabulary, and learning to store and interact with data.

Intro Video

Order Lesson
01 Hello World
02 Programming Grammar: Comments, Data types, Mathematical operators, Strings
03 Branching: Relational operators, Logical operators, Conditionals
04 Functions
05 Looping and Iteration: For and While Loops
06 Lists
07 Dictionaries
08 Problem Statements
Optional User Input
This lesson is optional and can be completed anytime after Lesson 02 - Programming Grammar

Video Lessons

There are livecode video lessons linked throughout the lessons. An up-to-date catalog of videos can be found here.

Issues

Finally, the folx at Ada are always iterating and improving our curriculum. If you find a bug, typo, or just generally have a suggestion for the Ada Build curriculum, you can give feedback by visiting the Issues page for this project in github and clicking the green button for a New Issue.

ada-build's People

Contributors

anselrognlie avatar beccaelenzil avatar brittanykohler avatar cheezitman avatar clarenceedmonds avatar emanette avatar hamled avatar hellopuck avatar jawarren89 avatar jbieniosek avatar jessschoon avatar jnf avatar kariabancroft avatar karinakozarova avatar kelsk avatar kimberly-fasbender avatar lrtibbetts avatar mikellewade avatar sarah-ada avatar saraspink avatar scoutmcfall avatar shrutivanw avatar sjlee3157 avatar spitsfire avatar sudocrystal avatar susanev avatar tammytdo avatar vertige avatar yangashley avatar yuffster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ada-build's Issues

add in C8's code challenge

find appropriate place and add in C8's code challenge. (Korica, Charles, and Crystal) have the challenge.

02_programming_grammar Indexing/Slicing typo and feedback

In

  • string[I] will provide give a single character

remove give (provide is used in the remaining examples)


The term index first appears under the description of slicing using the two-value syntax, without a previous introduction, even though the section is called Indexing/Slicing. Consider explicitly introducing indexing in a manner similar to how slicing is introduced, perhaps:

Indexing refers to retrieving a single value from a group, in this case a string of characters, by its position in that group. Alternatively, it can refer to the method by which we label those positions.


The passage starting

Finally, note that in Python, indexing starts at the value 0.

Is not the final passage. Consider just

Note that in Python,

or if more emphasis is desired

It is important to note that in Python,

solutions branch

Add a solutions branch to this repo that contains sample answers to all the code assignments (I have at least one of these for each old admissions code challenge, I believe) as well as the answers to the worksheets (instead of wherever they currently live).

02_programming_grammar Exercise: Debugging syntax errors grammar

For the sentence

Colab (and all other programming environments) often help you out by identifying syntax errors.

consider

Like most other programming environments, Colab often helps you out by identifying syntax errors.

which removes the parenthetical, and corrects the verb conjugation to match the subject.

explicit language about "optionals"

I added "optionals" to all the old code challenges to provide insight on how the problems could be extended or thought about. Also to highlight the "above and beyond" that applicants gave in the many answers that we saw.

What I didn't adequately do is explain that there would definitely NOT be an expectation for anyone to complete all of the optionals, if any at all. Need to add verbiage to the effect of "try any of these, or none at all, but probably not a good idea to try all of them because these problems are actually intended to be short practice problems, and ALL problems can always be extended...blah blah..." :)

flesh out hash lesson

maybe add more notes on hashes and better explain the hash assignment (or come up with a totally new one)

Repeating Concatenation Explanation

There is one section named "string concatenation" introducing the + operator and the << operator. Further down there is another section named "concatenation" which introduces + , <<, and .concat .

02_programming_grammar Practice Problems missing code block and suggestion

In

Complete each section by hand, then check your answers by running code in a code block.

consider adding the, that is

Complete each section by hand, then check your answers by running the code in a code block.


Also, consider adding an empty code block directly below the Variables and Assignment section, as the other two coding practice problems have.

In that case, modify the line to

Complete each section by hand, then check your answers by running the code in the code block below.

Broken Google Colab link

The Google Colab hyperlink under the Google Colab section currently results in a 404 not found error.

Hyperlink broken in 'Programming Expressions' section of JumpStart.

One of the hyperlinks at the top of the page under the 'Activities' header in the Programming Expressions section is broken:
https://github.com/Ada-Developers-Academy/jump-start/tree/master/learning-to-code/programming-expressions#numbers-problem-assignment

It should be linking to:
https://github.com/Ada-Developers-Academy/jump-start/tree/master/learning-to-code/programming-expressions#numbers-problem-assignment-v2

Or, alternately, the file header itself could be modified to map to (https://github.com/Ada-Developers-Academy/jump-start/tree/master/learning-to-code/programming-expressions#numbers-problem-assignment). Either way, the link defaults to the top of the page.

02_programming_grammar Assignment Statement text feedback

The description block mentions the need to save values. Consider store or remember, which may not carry the same terminological weight that save has from File > Save.

Another motivator for storing a value is to give a complex calculation a name for clarity, or to communicate intent.

In the discussion of how to read x = 5, another useful left to right reading is "x gets 5".

atom never got installed but asked to use

On the Activity from 3rd bullet point the instruction to open atom doesn't valid since it wasn't installed. So I was stuck for a while. Then I asked my computer engineer friend to help me and turns out to use code . from VS Code instead of atom . .

02_programming_grammar Strings Interpolation and Methods grammar, typo, and suggestions

The comma in

You can create a string by surrounding the sequence of characters with double or single quotes, both "hello" and 'hello' are strings.

should be a semicolon, as the two clauses are independent, but closely-related.

You can create a string by surrounding the sequence of characters with double or single quotes; both "hello" and 'hello' are strings.


In

Methods are functions that can be called on instances of a class

This is the first mention of the term instances. Consider calling out an explanation for instances as they relate to classes.


There is a typo in

They are a more specific name for a function and are called using parenthese ().

It should be parentheses.


The sentence

String interpolation is a process substituting values of variables into placeholders in a string.

might flow a little better as

String interpolation is the process of substituting values of variables into placeholders in a string.

The original version has an uncomfortable stop between process and substituting where it's not clear that the clause is continuing.

Inconsistent use of print() in 02_programming_grammar under Determining the type

The first example print(type(1)) explicitly uses print, even though the description text mentions that the results are output even without calling print.

If the results were equivalent, this would be an interesting point of comparison, but by explicitly calling print on the result of type the output is noisier <class 'int'> than if the type is just evaluated for output int, and that difference is not addressed in the description.

Either the samples should all omit print, resulting in equivalent output, or the difference in output when using or not using print should be addressed, which is possibly too advanced a topic at this point in the introduction.

Instructions for Jumpstart

Add in instructions on how to approach jumpstart... something like:

You should read the learning goals and then click through the resources one by one, sequentially. Some will be notes and some will be assignments.

The things in the folders (assignments, notes) are all linked in the resources, so you don’t need to click on those folders after as it will only contain things you already went through in “resources”.

instructions for ruby install on PC

Applicants without a mac aren't able to do a lot of installation pieces. Go through lessons 5+ and see if there's an opportunity to add Windows-based instructions for those materials.

Adding more Diagrams

Add flow-chart style diagrams to illustrate if-else conditions.

Maybe an animated Gif for loops.

L08 Hello World

Hello World (ba dum tiss, okay please keep reading lol),

I'm stuck on the "Edit the Ruby File" step, I'm not quite sure how to open my text editor? I attached what my terminal looks like right now. Do I need to create a file in atom? I feel as though I am missing a step...

Thank you!
screen shot 2017-01-27 at 9 16 47 am

Remove Vimeo Link

Remove vimeo link from main README and instead put link in appropriate place in resources on Lesson 8

Missing link

"Guido van Rossum in 2019" (Ada programming languages, end of python section) links to a nonexistent page

Learning Styles Theory Countered by Current Research

Current research has shown that the theory of learning styles hasn't been supported in the literature. People tend to use all styles of learning, and there's no correlation between successful learning and using a learning style that you believe fits you best.

Here are some references:

  1. https://www.psychologicalscience.org/news/releases/learning-styles-debunked-there-is-no-evidence-supporting-auditory-and-visual-learning-psychologists-say.html
  2. https://www.scientificamerican.com/article/the-problem-with-learning-styles/
  3. https://journals.sagepub.com/doi/abs/10.1177/1477878515606621

The second reference contains studying/learning method suggestions that have been shown to be effective.

sample puts output doesn't match reality

In JumpStart: Lesson 12, all examples of printing arrays by using puts command don't show as in the lesson note. When using puts command, it prints an item per line.

This is an example on the lesson note.

puts animals # => ["parrot", "horse", "cat", "monkey"]

When I run it, it comes out as below.

puts animals
parrot
horse
cat
monkey

When I tried print instead, it came out in an array.

print animals
["parrot", "horse", "cat", "monkey"]

Programming Grammar Exercise Issue

Programming Grammar; "Exercise: Compound Assignment Statements"
The expression "x -= y – 5" uses a longer subtraction symbol ("–") that doesn't work in the code. Works when replaced with ("-")

03_branching Conditionals elif suggestion

Consider explicitly calling out that elif is derived from a contraction of else if and consider providing a reading (ipa: ɛl ɪf, or even just el-if). Also, consider explicitly stating that the : following a conditional is for if and elif. For example:

To create conditional statements use if, elif, and else to control the flow of a program.

  • It is important to properly indent conditional statements. In Python, indentation is required for a program to execute.
  • elif comes from the contraction of else if. You can just read it as else if, but many people just say el-if.
  • A colon : must follow the boolean expression of an if or elif statement and must directly follow an else.

Homebrew link under Required Software section is not working

When I click on the Homebrew link under Required Software, the link does not take me to the section with the details lower on the page. When I open the link in a new tab it takes me to the top of the page. I can see there it could be anchored in the details for installing Homebrew, but they do not appear to be connected at the moment.

Learning at Ada - Lesson 0

The last sentence in the first paragraph needs to be edited.

Currently, it says, "Are some languages are better at certain things than others."

Perhaps, "Some languages are better at certain things than others."

Jumpstart #9 example needs edit

Lesson 9, String Interpolation example reads:

 num = 9
 puts "My lucky number is #{9}." # prints My lucky number is 9.

Example should say:

 num = 9
 puts "My lucky number is #{num}." # prints My lucky number is 9.

Possibly ambiguous Comment section at the end of 01_hello_world example shown in video

Commenting only seems to be available if a user makes a local copy of of the Colab notebook (am I missing something?). If a user is following along with the video, they might reach the bottom and want to record their thought, but the icon and Comment display do nothing (they're just an image), and there is no other obvious Comment functionality.

The environment setup text does mention that a notebook can be copied to make it your own, but perhaps something should be explicitly added with reference to adding comments?

Activities are confusing to follow

On the activities from session 8 at JumpStart, the instruction is not consistent.
Some lines asked to press enter with [enter], some lines doesn't. Later on, you can assume to press enter it but for a learner who is following the guide to the letter, it's confusing.

03_branching Conditional Syntax diagram is not Python

The diagram shown under conditional syntax does not look like Python

  • no : after the expression
  • end keyword denoting the end of a block

A diagram reflecting Python syntax should be used. If it is difficult to show where a block ends, consider following the conditional block with a simple print, such as

if 1 < 2:
    print("inside the block")

print("outside the block")

The various parts of the conditional and block could then be labelled easily per the current diagram.

Alternatively, consider removing the diagram entirely, as there are many other examples in the lesson as it is.

02_programming_grammar Exercise: Assignment Statement includes use of multi-argument print with no discussion

The examples in this section perform output concatenation by passing multiple values to print(). This is understandable since the use of a format string isn't introduced until later in the lesson. It also seems fine not to mention that usage before the code examples as the reader is encouraged to predict the result.

However, it would be useful to call out the usage of the comma to pass multiple values to print after the examples so that students who did notice receive positive confirmation, and those who did not have the opportunity to review the examples again.

Consider something like:

Printing multiple values

Did you notice that the print statements in the previous examples output string labels and variable values in a single line by providing them to the print function as a list, separated with a comma? The print function can accept multiple values in a single use, and in fact has many other advanced ways that it can be called. For now, just notice that sometimes functions can be used in multiple ways, and you may need to refer to language documentation to become familiar with them all.

In just a moment, we will also introduce another method of combining strings and variable values called string interpolation, so stay tuned!

Markdown question

I apologize if this is not an appropriate place to ask, but I am working on writing my resume in markdown and am wondering if there is a way to make a bullet point for design, to go in between text without creating a list? I currently just replaced the bullets with | to compensate.

Any advice or guidance is appreciated!

Thank you!

Broken Link

Link to truth table.png broken in Safari, Chrome, and FireFox.

Ruby install instructions don't mention Homebrew

It turns out that in order for RVM to install a new version of Ruby, it needs to be able to download and install dependencies with Homebrew.

Our instructions do not currently mention installing Homebrew, and this discrepancy may be confusing for some students.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.