Shrinking World Solutions

Practical Software Training


Our Vision

Practical Software Engineering

At Shrinking World Solutions, we believe that learning about technology should lead to skills that can be immediately applied to real-world projects. Therefore the techniques that are used in the learning process must be updated to match the needs of modern students.

The Key Differences

There are several aspects that define our approach to learning and are a radical departure from other training that is available.

  • Hands-on - All learning is immediately applied. Programming skills come from doing programming. Students must immediately applied the concepts in order for them to be retained.
  • Projects - A realistic project forces students to make choices and overcome errors to produce the desired result. After completing the 14 projects in this course the student is ready to build projects for their job. All grading for this course is done based on the projects rather than exams or quizzes.
  • Running Examples - A simple example is provided for every concept. The most difficult thing about learning to program is getting the first version running. After seeing the simple example run students can quickly make extensions and refinements to it.
  • Reading before Writing - Students must learn how to read and understand code from others before they can be expected to write their own code. Each project start with running code and requires the students to add functionality making modifications to the starting solution. A cookbook can give people a quick win that will allow them to learn additional information as needed.
  • Design Reviews - In commercial software development teams, each person is responsible for their own work. In addition they are required to give feedback and assistance to other members of the team. Design reviews allow each student to critique the work of others and have their own work judged. This often produces very productive interaction between the learners. A teacher can review all of the feedback from the reviews for each project and can work with any issues that the team member have with each other. This also produces valuable learning for the students.
  • Requirements - Each project is authored to look for ten requirements. These objective and measurable criteria are used to set the score for the project. Design review feedback is used to establish the number of requirements that are met for each project.
  • Software Tools - The Sensei Digital Classroom Software provide outstanding automation for the whole learning experience. Sensei support classroom presentation of slides and lessons content for review. Student IDs are used to protect the privacy of each students homework assignments.
    All upcoming reviews, projects, skills, and readings are posted on each students dashboard. The progress of each project for each student is tracked by the software.
  • Design Pattern - Great software is based on Design Patterns. Understanding and using the relevant patterns in any given context is an essential engineering skill. Yet this is sadly neglected in most college classes.