This project contains curriculum for teaching programming using Ruby with additional emphasize on building strong fundamental aspects, such as: critical thinking, problem solving and object-oriented concept. This course also cover some design and architectural topics and useful tools and libraries.
Ruby is used because of its human-centered nature and gentle learning curve. However, it must be noted by the mentors that they also have to teach the students to become more language-agnostic, instead of depending to one particular language.
Approximate time needed for completing this course is 10-12 weeks.
- Have good understanding of UNIX-based operating system
- Understand and have experience using Ruby in professional setting for at least two years
- Understand one programming language other than Ruby
- Have excellent understanding of Object-oriented Programming
- Fluent in English
- Ensure that mentors have PC with Mac OS or Linux (preferred) as the operating system
- Ensure that Ruby is already installed. We can follow steps here to install Ruby using RVM
- Mentors must do a run through of each courses before delivering the materials
- Deliver the materials according to steps described in the accompanying slides
- Mentors must evaluate students assignment and give 1-on-1 feedback
- Have minimal understanding of UNIX-based operating system
- Understand at least one turing complete programming language: Java, C#, Python or others
- Have basic understanding of Object-oriented Programming
- Fluent in English
- Ensure that students have PC with Mac OS or Linux (preferred) as the operating system
- Ensure that Ruby is already installed. We can follow steps here to install Ruby using RVM
- Students must do a review every day and allocate time for practicing the new skills
- Onsite
- Online group discussion
Hard-skills:
- Students understand syntaxes of Ruby and can write a program using it
- Students can build web application using Ruby on Rails framework
- Students can consume and build web API using Ruby on Rails framework
- Students understand some important design patterns and can utilize it as necessary
- Students can understand advanced Ruby concept, such as metaprogramming
- Students can implement multiple services that communciate with each others
Soft-skills:
- Students are able to express their critical thinking and solve problems with structured approach
- Students can communicate their ideas and problem clearly in class or using the online platform
- Students can pair with other students to work on a problem together
- Students can collaborate in group to achieve common objective
- Students can formulate and deliver solution by utilizing technical knowledge gained from this course
Outline.md
document that describes the outline of this courseSyllabus.md
document that contains detailed day-by-day syllabus, including necessary materials and link to the slides. The slides contain detailed run-through that mentor must deliver to the students.