Coder Social home page Coder Social logo

bitprj / curriculum Goto Github PK

View Code? Open in Web Editor NEW
54.0 4.0 20.0 76.02 MB

Democratizing Technical Education 🐮

Home Page: https://bitproject.org/curriculum

License: MIT License

Shell 0.71% Python 13.57% HTML 0.21% JavaScript 1.06% CSS 0.01% Jupyter Notebook 84.45%
curriculum computer-science

curriculum's Introduction

IMAGE ALT TEXT HERE

Bit Project's Software Engineering Curriculum

We use powerful, human powered curriculum written by students for students. We strive to create a community of passionate developers to be leaders in their own communities to inspire the next generation of technologists.

About Us

We make software engineering and computer science education accessible to students from nontraditional learning environments. Using our curriculum, we take students with minimal experience in computer science to a full-fledged software developer with a diverse coding portfolio using our curriculum. We collaborate with leading companies and developers to create interactive, fun technical content that use industry standard technologies and developer tools.

Our Core Curriculum

Our curriculum covers core computer science concepts and specialized developer skills.

1. Introduction to Python

  • Data Types and Variables
  • Numerical Operators, Boolean Operators, If Statements
  • Data structures, For/While Loops, User Input, F-Strings
  • File Parsing

Interactive Labs: ATM, Hangman, Wheel of Fortune, Word Translation

2. Computational Social Science with Twitter

  • Introduction to Twitter API
  • Streaming Live Tweets
  • Cursor and Pagination
  • Analyzing Tweet Data
  • Graphing with Matplotlib
  • Sentiment Analysis
  • High-Level Natural Language Processing
  • Visualizing Twitter Trends

Interactive Labs: Visualizing Celebrities' Tweets, Topical Hashtag Frequency, Sentiment Behind the 7th Democratic Debate

3. API Development and Testing with Postman

  • Introduction to APIs: Using Postman to Test API Endpoints
  • Creating and Testing Your Own API: BitBloxs
  • Creating Postman Collections
  • Running Sets of Requests Based on Data: Collection Runners
  • Mock Servers
  • APIs for Front-End Developers
  • Documenting APIs in Postman

Interactive Labs: URL Shortener, Documenting a Full-Stack API

4. Frontend Engineering with MongoDB Stitch

  • Tech Stacks and Full-Stack Development
  • NoSQL vs SQL
  • What are APIs?
  • CRUD Operations in MongoDB
  • NoSQL Querying with MongoDB Atlas
  • Intro to GraphQL
  • Using React to Make Web Apps Dynamic
  • Using MongoDB Stitch to Make a Serverless Back-End
  • Communicating from Stitch to React using GraphQL
  • Intro to Gatsby.js
  • Netlify and Website Deployment

Interactive Labs: Searchable Tweet Database, MongoDB Atlas Scavenger Hunt

Current in the Works

1. Introduction to Cryptography

  • Talking to remote servers
  • RCEs, reverse shells, and privilege escalation
  • Local file inclusion
  • SSH keys and tunnels
  • Basic log analysis
  • Side channel attacks
  • Bash and Linux basics
  • SQL injection
  • Assembly/GDB refresher
  • Stack Buffer Overflows
  • Return Oriented Programming

Interactive Labs: Scavenger Hunt, SQL Injection, Remote Code Execution

2. Introduction to JAM Stack

  • Introduction to Gatsby.js
  • Styled Components and React
  • GraphQL and Markdown
  • Headless CMS (Contentful) Integration
  • Headless Wordpress CMS
  • SEO Optimization
  • Optimizing Site Load Speeds with Lighthouse
  • Progressive Web Apps

Interactive Labs: Inspirational Quote Viewer, Markdown Previewer, Personal Blog

🐛 Reporting Bugs and Issues

If you think you've found a bug, first read the how to report a bug article and follow its instructions.

If you're confident it's a new bug and have confirmed that someone else is facing the same issue, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug.

How To Contribute

For Bit members, external contributors and company partners, please check out our guides at our wiki.

Join Bit Project

Please join at bitproject.org/join

License

curriculum's People

Contributors

alliebailey avatar bitterb3rry avatar bkpham avatar brindapuri avatar dadao-xiaoguaishou avatar emily-gui avatar etang01 avatar jasonl24 avatar jeffchhen avatar jefftheaggie avatar jhvoong avatar kathyliu20 avatar kavuong avatar lazyplatypus avatar linda413 avatar marcobrian avatar mxthu313 avatar nskong avatar ojgao avatar poroia avatar quantumoverture avatar raynaney avatar ryansxl avatar sarahg500 avatar sihuacai avatar sohammkar avatar taimurkashif avatar tkashif avatar vkxu657 avatar wshhwang 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

Watchers

 avatar  avatar  avatar  avatar

curriculum's Issues

Activity 2.2.2 Creating A Menu Styling, Create, Visuals

1.md

- First card should be completely introductory 
- move code portion to another card 

4.md

- Make diagram about flow of this program (for loops, while loops, if statements)

6.md

- This card will have to be split up

9.md

- Minor syntax errors

Activity 6 Detecting_Bots_on_Twitter Visuals Context Content

3.md

  • Grammatical mistakes.
  • Please explain the code line-by-line.There lots of python tricks and advanced concepts --> could be dumbed down a little.
  • An example of output/input would be terrific here.

4.md

  • Some minor typos.
  • Please explain the code line-by-line. There is a decent amount of connection to the previous card so, please refresh the reader on what everything means.
  • An example of output/input would be terrific here.

Activity 6 Detecting_Bots_on_Twitter Visuals Context Content

1.md

Some minor typos.
Please explain the code snippet line by line.
Please give a tangible example of a bot.
Please refresh the reader on what a data frame is.

2.md

The explanation of the the line of code is difficult to understand. Please explain things like "pandas" and the final sentence further.
Please give a tangible example of what you are trying to do with the code.
Some minor typos.

Activity 6 Detecting_Bots_on_Twitter Visuals Context Content

5.md

  • Please explain the code line-by-line.There lots of python tricks and advanced concepts
  • Image doesn't render here. --> Please make a new example.

6.md

  • Images don't render here. --> Please make a new examples.
  • Please explain what Botometer does before giving a link to the reader.
  • Please make a more solid connection to 5.md

MongoDB Activity 7 Content, Styling

Cards do not follow the correct scheme (uses tile of the cards instead of 1, 2, etc)

Installing Postman.md:

  • Be a little more specific on what Postman helps developers accomplish
  • Explain why sending requests through the terminal is not preferred
  • Grammar, spelling, spacing

Rest APIs.md:

  • Can be made so that it is easier to follow
  • Spelling

Activity 4.3.1 Search: Content, Context, Visuals, Styling

3.md

  • Wording. If we say that DFS is the opposite of BFS, and then immediately state that "it is an algorithm for traversing a tree", doesn't that imply that BFS isn't?
  • Same feedback as Card 3.

4.md

  • Tone and language noticeably different here than in other cards Not as overtly encouraging or friendly. Again, inconsistent writing style.

MongoDb Activity 4 Ordering, Visuals, Styling

  • Some of the images located in the cards are in the original creators local computer and did not transfer over. More images also need to be added to the cards.

  • Need to order the cards. Currently only have card names, but not the numbers so students don't know where to start.

  • Use code boxes for code.

Activity 8 Visualizing_Twitter_Trends Visuals Context Content

1.md

Please explain what visualizations are exactly. Explain what we are about to get ourselves into and why we want to do so.
Please refresh the reader on some of the core elements of the code(maybe break it down a little).
A tangible example is necessary here(one of the graph we are trying to make and one a useful application of what we are trying to make).

2.md

Explain briefly what each library does.
Break down and further explain the code examples more.
Explain how exactly we are preparing our data.

Activity 2.2.2 Creating a Menu Context

3.md

- Introduce concept of while loop

4.md

- Introduce user input (input())

6.md

- Explain flaws of current program - present box analogy makes sense but should be explained a lot more
    - Then explain in detail what changes on a macro scale have to be made
- What does isdigit() do and where does it come from? Needs explanation

Activity 8 Visualizing_Twitter_Trends Visuals Context Content

3.md

  • Please give a brief intro to what JSON is (just in case for new programmers). Also make an attempt to further explain its function in the code examples.
  • Please refresh the user of what a Panda dataframe is and where all the data is being funneled to(and why).

4.md

  • Further explain why are we converting JSON data into Pandas Dataframe.
  • Please go line by line(or by groups of data-columns).

5.md

  • It is very jarring and confusing on what we are trying to do hear. Please summarize everything in the beginning and don't let the reader lose track of what we are trying to do and why.

Activity 5 Sentiment_Analysis_w/_Twitter_API Visuals Context Content

1.md

Please add a visual here(a tweet) that introduces the user to a negative or positive reaction they might want to analyze.

2.md

Please add more explanation here! To be more specific, please explain what a module has to do with out current task and what an analyzer actually does(why exactly do we need Textblob).

4.md

An input/output example showing how it cleans things would be nice here.

6.md

Please add a visual here(a tweet) that gives the reader a tangible,step-by-step example they can easily understand.

7.md

Please explain what "data frame" means.
The code needs to be broken down more and a lot of (step-by-step) explanation is needed to make this card more understandable.

8.md

Explain whats going on in the image with in a step-by-step way.
Maybe get a friendlier image?(It seems to intense for a beginner)

MongoDB Activity 8 Content, Styling, Visuals

1.md:

  • Note: a certain library will not be needed in mongoose.js anymore <-- specify this "certain library"?

3.md:

  • JSON snippet in the card doesn't work because the values aren't strings

4.md:

  • use the word "print" instead of "dump"?

all cards:

  • do not repeat the titles outside the HTML title comment
  • add pictures

Activity 2.2.3 CipheringMessages Ordering and Visuals

1.md

  • main() should be moved to last card

2.md

  • Like 1.md, section on main() needs to be moved to end

3.md

  • Make own ASCII table graphic (can’t use others)

4.md

  • Symmetric cipher should be explained with graphics and with examples - in examples there should be actual ASCII values corresponding to the characters

Lab4_Shipping-Box-Lab Card 4 is giving the answer away

Card 4 of Lab4_Shipping-Box-Lab is literally giving the answer on how to solve the problem. Since it's the 4th hard card of this lab, it's supposed to challenge experienced students on how to write the function itself. This can be solved by writing only skeleton code to create the actual iterations of each box.

Activity 1.1.1 Intro to Command Line: Styling

1.md

  • Introductory sentence has a few typos: "instruction" and "system" should be plural.
  • For consistency, bold the text for the two instructions under "Mac User" ("Open the terminal" and "Type xcode-select --install").
  • Delete the space before "Utilities" on the third line under the "Mac User" instructions ("/Application/ Utilities").
  • The image must be a local image.

Lab 4.5 nColorable: Content,Visuals

2.md

  • Explanation of the sample CSV file just repeats the same info as the visual. Give a more detailed, qualitative explanation of what's going on.

21.md

  • Provide a sample of this process. Give a visual + explanation.

3.md

  • Image is too big.
  • Provide a sample 2D list and the expected output of initColors() on that list.

31.md

  • Little too short. Provide more explanation. Again, using a sample list and output.

311.md

  • Add a sample list and output here as well.

Activity 7 Making_Own_Twitter_Bot Create

*Please make this an empty folder for now.

*Make an empty git.keep file inside this folder.

*Make a solid connection between this activity and the bot detection activity

Activity 1.1.2 Intro to Command Line 2: Styling

1.md

  • The image must be a local image.
  • Add a space after the closing parantheses in the third paragraph ("...uppercase)to...")

5.md

  • The image must be a local image.

9.md

  • Add periods at the end of each sentence, or bulletpoint, under "Usage 1" for consistentency.

MongoDB Activity 11 Ordering, Context

1.md

  • there is only one card
  • can better explain how the promise is transformed into the async/await function
  • can better explain proper use of the await keyword

Module2.1_Python_Basics/activities/Act2_NumericalOperators/4.md Content/Context

In line 22, the code "number = int(input("Enter an integer"))" may seem trivial, but someone who's new to coding may not necessarily know what the function "int" means or why it's there. The card doesn't explain it and someone new to programming might think that since the user inputed an integer, then the variable will also be an integer without the int function.

Intermediate Data Structures Activity 1 Linked Lists

1 md
"In practice, some insertions cost more. If the list initially allocates enough space for six nodes, inserting a seventh means the list has to double its space (up to 12)." - I think this line needs more context in regarding the situation on what is happening. Additional information and example about how this happens in specific language could give a better understanding. I also think that placing this information at the beginning of a linked list introduction also might be confusing for someone new.

3 md
I think it will be great if we mention that the insert function belongs to the LinkedList class. It wasnt mentioned which class this function belongs to, but it will make it less ambiguous for beginners that the insert function should belong to the LinkedList class and not the Node class. It might be good to mention it in the beginning, although it might be obvious in the upcoming lessons.

Also for this activity, the images are not displayed correctly

Activity 4.3.1 Search: Context, Content, Styling, Visuals

2.md

  • There are quite a few typos present throughout the card.
  • Transitions between cards need to be smoother. Not just for this card, but in general throughout the activity.
  • Explanations of base BFS concepts need to be fleshed out more. Where does the queue come from, and why is it used specifically in this situation?

Lab 4.5 nColorable: Content, Context, Styling, Visuals

1.md

  • Better explanation of the output needed. It says the algorithm should return "1 2 2 1", but this isn't fully explained in the introductory text.

11.md

  • Explanations need to be clearer.
  • Explanation for Backtracking Search is too short in comparison to DFS.

111.md

  • It's odd that the Easy card has the shortest amount of content. Expand a little more, and add visuals.
  • A few run-on sentences in the explanation. Makes it hard to read and follow at times.

Activity 3.1.1 Methods and Variables: Styling

1.md

  • use of a local image

2.md

  • start with smaller parts and build up to the final "Dog" class (because it looks really intimidating now with the huge block of code)
  • closing summary could be condensed and more generalized
  • uses local image
  • text should be broken down to smaller bits

Activity 2.2.3 CipheringMessages Context and Content

1.md

- Explain context of ASCII much more clearly 

   - How are letters actually represented in code (ASCII)? 

   - How does a computer know that ‘c’ is two letters from ‘a’, for example? 

- An explanation of ASCII is needed with examples

2.md

- Explain syntax of f strings

3.md

- Actual examples using ord() and chr()

- Explain the “first letter of the alphabet at 0th position” bit clearer with a couple examples with visuals

    - Same for explaining how “wrapping” works

    - Generally speaking, a lot more explanation needed - should be crystal clear to high schoolers of any level

4.md

- Don’t forget to *introduce functions conceptually - has not been introduced up to this point*

Module2: Lab 8: Content to Module2: Lab 8: Content, Context

Uneven pace of cards, some very very long, others are simply one line. The code itself appears to be broken, and so the pasted output is incorrect. I also believe that the rules may be followed incorrectly, and not all code is explained adequately.

Lab1 Forking and Committing on GitHub Lab: Content, Styling

  • For the introductory sentence, the "repo" segment seems unnecessary, considering how "repository" is used mostly throughout the lab.
  • Under "Cloning an Existing Repository", replace "-" in the first sentence with actual em or en dashes.
  • Replace each "repo" with "repository" for consistency and clarity.

Activity 1.1.4 Setting Up PyCharm: Styling

3.md

  • Under "Add Files to the Local Repository", write out repository instead of "repo" for consistency and clarity.
  • Delete space after the line that starts with "To fetch changes..." as it is unnecessary.

Activity 2.2.2 Creating A Menu Content

Code inconsistent between cards

-variables, syntax, general content-

5.md

- provide example of error input checking in the example

6.md

- Change code: for option in options should use the enumerate() function
- Explain that it is more Python-like to do it this way (provides ID in a tuple without having to manually manipulate a variable)

Lab 4.3 File System: Context, Content

11.md

  • Provide more examples of subfolders numbers as this is a medium card

111.md

  • Provide explanation of the edge case example given in end

121.md

  • Typo in second to last line ("indented" is misspelled)

411.md

  • Have a reminder (description) of how DFS works so that student can recall the DFS algorithm

423.md

  • Provide the final function in one code block on this final card. It's a little hard to follow when every line of code is broken down one by one (student might forget the lines that came previously). Ask the reader to refer back (if they are confused) to the in depth explanations of each line after presenting the whole code together

Activity 3.1.1 Methods and Variables: Context

1.md

  • 3rd paragraph is kind of confusing because it sounds like an instance of dog is being created under an Animal class, when the example is about creating a Dog class

2.md

  • Summary could be more generalized and concise, it sounds more like an explanation of Dog class that would go someplace in the middle

3.md

  • For encapsulation and abstraction, you could have a quick definition of what the two are instead of just pushing it to later

MongoDB Activity 9 Ordering, Styling, Visuals

1.md:

  • minor typos

3.md

  • why should we return the proper status code (404 in this case)
  • Postman screenshots of results would be nice

4.md & 5.md:

  • combine cards since card 5 should have more explanations
  • better explain the code presented on card 5

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.