(Difference between revisions)
Jump to: navigation, search
(FOSS in a class)
Line 126: Line 126:
==== FOSS in a class ====
==== FOSS in a class ====
* [ 14 Ways to Contribute to Open Source without Being a Programming Genius or a Rock Star]
* [ How to Contribute to Open Source Without Coding]
* [ 50 Ways to be a FOSSER]
== '''POSSE Stage 2 Activities - Workshop''' ==
== '''POSSE Stage 2 Activities - Workshop''' ==

Revision as of 18:20, 31 October 2016

Krish Narayanan

Krish Narayanan is a professor in the Department of Computer Science at Eastern Michigan University. She also serves as the undergraduate advisor in the department, a faculty fellow in the Honors College, and the faculty advisor for Women in CS club. She teaches both undergraduate and graduate courses, ranging from Intro to Programming to Advanced Database Systems. Her teaching and research interests are in the areas of databases and software engineering, with a focus on design. She has been actively involved in CS education over the past few years.

In her spare time, she teaches computer science to kids, especially middle and high school girls (Girls in Computing). She has been an avid Science Olympiad coach/supervisor for many years. She runs an event called iCompute for an elementary science olympiad. She has coached a few Girls in Computing teams to compete at the EMU High School Programming competition.

Check out Krish's blog


POSSE Stage 1 Activities - Pre-workshop

Link to deliverables

Intro to Wikis

1. How do people interact? Just like other IM interactions.

2. What is the pattern of communication? People in the chat room can communicate with all or with individual users. They can also issue IRC commands like /help.

3. Are there any terms that seem to have special meaning? Any text prefixed with # is a MeetBot command.

4. What advantages might IRC have over other real-time communication methods (like Google Chat or Facebook Messenger?) Are there potential disadvantages? Looks and feels techie! MeetBot and other services are a plus.

5. Can you make any other observations? The MeetBot summarizes the meeting pretty well. I understand that it is more work for the meeting chair but it is worth the trouble.

6. Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot? A username is case-sensitive. The MeetBot looks for usernames in interactions for action assignments.

Sample HFOSS projects


  • computer use in education (K-12)
  • many roles, such as, educator, developer, designer, translator
  • coding in Python, JavaScript
  • base module is called Glucose
  • base activity modules are called Fructose
  • Google Summer of Code
  • last push in March 2014!


  • humanitarian platform for solutions to disaster management, development, environmental management
  • many roles, such as, devloper, tester, translator, designer, GIS specialist
  • coding in Python, JavaScript, SQLite
  • Communication through Google Groups, IRC, mail lists
  • last active ticket in 2015


  • Open Hub project since 2007
  • a platform to store medical records for healthcare
  • initial adoption in Kenya
  • targeted towards non-programmers to help them customize a solution to their needs
  • mostly Java-based with some JavaScript
  • last commit was in August 2016

FOSS project hosting


A search for "Education" on the website and further refining the search to "Puzzle Games" resulted in 227 projects. There are 65 Java, 59 C++, 27 Python projects included and many more. Each project has a status associated with it, such as, stable, alpha, planning, etc. These indicate the stage of the development cycle they are in. For example, FindThatWord is in beta testing while FS.WordFinder is in production. The projects can be sorted using different criteria, such as, last updated, most popular, and rating. Brain workshop seems to be the most popular wheres Ohod Quiz Game seems to be the last updated.

I liked these projects:

  • Brain Workshop
  • IncrediBots
  • Sudokuki
  • Build your own jeopardy
  • Brain speed test

Brain Workshop is a Python project implementing a popular brain exercise. It is obvious from the reviews that anyone interested in mental exercises would like this app. There are 5 committers to the project. The last update was in August 2015. This is not a suitable project for contribution since it is well in production. There doesn't seem to be many maintenance/change requests.


OpenMRS is a moderately active project which was analyzed 26 days ago based on code collected 3 months ago. It is mostly written in Java. It is written in 15 languages, such as, JavaScript, XML, and Perl. It has 3.73 million LOC. The top three committers to the project have been active for the last 3-5 years. The average number of contributors in the last twelve months is around 10. The average number of commits in the past 12 months is around 30.

Mousetrap is another interesting project which provides a simple library for handling keyboard shortcuts in Javascript.

Walkthrough of OpenMRS

Mission-critical criteria : Viability

1. Size/Scale/Complexity: A closer look at OpenMRS's architecture shows that a number of different tools and technologies are in play here. With over 3 million LOC and the use of multiple programming languages, I would rate this project a 3 on a scale of 1 to 3 for its size/scale/complexity. The high rating is warranted considering the small projects that students are usually working on in CS classrooms.

The use of MVC pattern, Spring framework, Hibernate for object-relational mapping, and MySQL is a good blend of different technologies that students in our curriculum have been exposed to in a CS classes. It would be a good learning experience for them to bring them all together in one application.

2. Activity: An average of 30 commits per month seems to be reasonably good for an active project.

3. Community: OpenMRS seems to be an active project with over 950 downloads and releases as late as in August 2016. The community seems to be actively involved in OpenMRSTalk and IRC and constantly pushing updates. This kind of a community would encourage students to be actively involved, contribute, and learn. Here are some resources.

Resources page IRC logs discussion platform Tickets page How-To Submit Code page

4. Domain:

5. Maturity:

6. User support:

7. Roadmap:

Mission-critical criteria : Approachability

1. Project on-ramp: The project has a wealth of documentation on how one could get on-board and start contributing. The developer guide provides a wealth of information regarding how to get started, a database of past issues and how they were solved, current issues one could contribute to, and other useful resources. I would rate the approachability of this project very high.

2. Contributor types:

3. Openness to contributions:

4. Student friendliness:

Mission-critical criteria : Suitability

1. Appropriate artifacts: Browsing the section on introductory issues on the developers guide shows that issues are classified as bug fixes, task, improvement and new feature. There are a total of 71 issues listed. The tickets page list a step-by-step process for creating new issues (new features or bugs). It also lists a similar process to work on issues. These issues seem something students can work on. They have all the necessary information to get started and the issues seem to involve a manageable amount of time and effort to leave the students with a sense of contribution to a big project.

2. Contributor support: In addition to the above resources, the resources page and how to submit code page provide all the necessary support for new comers to the project. Guidelines for code submission, coding standards and commit privileges are also provided. I would rate the contributor support for this project very high.

3. Project description:

4. Platform:

5. Development features:

Overall evaluation of OpenMRS for a course

A careful evaluation of the project shows that it is a good fit for student's capstone experience in a CS curriculum. It provides exposure to a number of technologies, a large-scale project, team work, and a substantial support for students.

FOSS in a class


POSSE Stage 2 Activities - Workshop

POSSE Stage 3 Activities - Post-workshop

--KNarayan 00:05, 27 October 2016 (UTC)

Personal tools
Learning Resources
HFOSS Projects