Skip to content

Latest commit

 

History

History
104 lines (85 loc) · 3.03 KB

CONTRIBUTING.md

File metadata and controls

104 lines (85 loc) · 3.03 KB

Contributing to cs101

This assumes no computer science background

Keep content contributions at an appropriate level for students.

The main learning objectives of this course are:

  • Variables
  • Types
  • I/O
  • Functions
  • Conditionals
  • Loops
  • Strings
  • Arrays/Lists (linear collection)
  • Objects
  • A little searching and sorting
  • A little complexity analysis
  • Very little recursion

Topics out of scope include:

  • Linked Structures
  • Linear Data Structures
    • Stacks
    • Queues
    • Lists
  • Nonlinear Data Structures
    • Some Trees
  • Interfaces
  • Inheritance
  • Iterators
  • Algorithm Analysis
  • Recursion
  • Searching and Sorting Algorithms

Although no programming language is a learning objective, Python-isms are presented where necessary. Additional Python design ideas are welcome, but keep them simple enough to be accessible for the level of student.

Content Categories

Also keep in mind that there are categories of content

  • Topics
    • Asides
  • Code
    • Tests
  • Assignments
  • Labs
  • Extras
    • Course main page
    • Course Config
    • Outline
    • Getting Started
    • .md files
    • IDE setup
    • Gradle stuff

How to Contribute

Issues

  • Use issues to point out bugs/issues
  • Use issues to suggest enhancements
  • Use issues to suggest content
  • Use issues to suggest changes

Pull Requests

  • Fork and submit PRs to contribute to the repo

Submitting a Good Issue/Pull Request

  • Complete the provided template by leaving the headers filling in the sections
  • Communicate effectively
    • If we cannot understand, it will not be addressed
  • Use the style guide below
  • Link to any relevant issues
  • Not all headers make sense in all cases, remove header where appropriate
    • If you feel it necessary to include the header still, write N/A or Self-Explanatory where appropriate

Style Guidelines

  • Use present tense
    • Good: "Add", "Change", "Update", "Remove"
    • Bad: "Added", "Changing", "Updated", "Removing"
  • Keep messages brief, but descriptive
  • Reference issues and pull requests liberally
  • If appropriate, include Topic# in titles
    • e.g., Topic4 Add details on ...
  • Feel free to use the following emojis (multiple where applicable):
    • 🆕 :new: New feature, content, files, or request
    • 💣 :bomb: Remove feature, content, or files
    • 🎓 :mortar_board: Related to course content (topics, code, assignments, etc.)
    • 📝 :memo: Documentation related (repo stuff)
    • 🤖 :robot: Related to deploying the website
    • 💄 :lipstick: Improving the format/structure/layout of content/files
    • 🐛 :bug: Bug in Code or Typo
    • 🔭 :telescope: Using different words/code for the same ideas
    • 🎨 :art: Relating to figures/images
    • 👯 :dancers: This issue or pull request already exists
    • 🏅 :medal_sports: Good for newcomers
    • 👀 :eyes: Extra attention is needed
    • :question: Further information is requested