From Foss2Serve
Jump to: navigation, search

Mario Nakazawa

Mario Nakazawa is Associate Professor and Chair of the Computer Science Program at Berea College in Berea, Kentucky. Berea College is an undergraduate only liberal arts college with 1600 students, who all have 4 year tuition scholarships and must demonstrate financial need to be admitted. As a work study college, all students have a primary labour position at the college, ranging from being teaching associates to grounds-keeping. The computer science program has 4 faculty members and more than 100 majors.

Dr. Nakazawa's primary teaching interests are varied, ranging from courses such as parallel and distributed computing, computational intelligence, database systems, theory of computation, and others. He teaches at the introductory and senior level courses.

As Computer Science Chair, he is responsible for administrative duties such as scheduling, assessment, and mentoring fellow faculty members. He also runs the local ACM programming contest qualifiers and arranges for teams of students to attend the ACM programming contest every year.

When not teaching computer science, Dr. Nakazawa enjoys teaching ballroom dance, hiking and spending time with his family.


Part 1

IRC Questions and Answers:

  • How do people interact? They communicate in incomplete phrases to ensure that the participants know that someone is present and in the middle of trying to communicate. The format is relatively freeform, without a specific agenda or anything.
  • What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix? I honestly to not understand the question, but I will try to answer them. The participants are discussing issues and problems, and every now and then specific people who offer ideas and suggestions. The moderator would issue commands to the meetbot whenever s/he sees that some resolution to an issue or suggestion has been made. There are multiple conversations going on at the same time, and they are interleaved, which makes sense due to the asynchronous nature. It kind of reminds of the "write" command on Unix.
  • Are there any terms that seem to have special meaning? Apart from the jargon, all the commands issued to the meetbot serve as "meta commentary".
  • Can you make any other observations? Other than people are moving in and out without any announcement? There are times when the user's name is at the start of a line in the conversation with a colon, but it does not match the nickname. In this case, it was "John:" for "john_", unlike "heidi" and "amber", which are the same as the nickname.
  • Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot? I do not understand the question, the actions "Heidi look into the status ..." and "Darci will find John ..." ARE recorded in the meetbot output.

Summarize the IRC observation for #openmrs

There are lots of comments dealing with errors, but the details are posted in Also, they use a scrumbot, which checks the builds before an official meeting starts. Because it was hacktoberfest, there were not a lot of people involved in the chat. Therefore, the messages were short and informal. After hearing that they use listserves as their main communication platform, I was able to discern that people who log in have specific questions that they hope to have a more experienced person quickly help them.

After looking at how the users worked in the IRC channel, I am not really the impressed because it seems the community is talking mainly about bug fixes. Perhaps that is the purpose of the chat, but that is not what my experience was otherwise.


With regards to the different contributors, I think the most interesting for our students are "Content Writer" and "Developer", which are very different roles. The former would be appealing because it would enforce the importance of writing and documenting the work. The latter would be of utmost interest because in our CS1 and CS2 courses, we cover Python, which is one of the languages supported. Some of the issues posted in the developer wiki section is very old, so I was not sure if there is an active community. The issues on Github, however, is very active. They all require Python, so it may be suitable for our students.

I understand the release cycle as it relates to freezes while releases in beta and final form occur, but I am not sure what string cooling and string freezes are. I find the notion of how to handle further development and/or critical fixes to be overwhelming and those am not sure if I want to be a BD or some other responsible person. I have too much to do as it is.


Wow, what a big project. Designers are responsible for how the website would look, with a section on themes and wireframes. Developers have tickets including issues with both interaction with the database and test fails. This kind of work looks appropriate with a software developing environment that I am trying to create in my database course. However, I did not see any active tickets that are more recent than 2014, so I doubt the community is active.

The testers had a section for developers, so I am unclear where the difference is. I can understand that the same people who are developing components of a system would be the ones who should make the test cases... Mayeb teh testers do the actual testing and additional things that the developers did not consider?

I do like how the bug tracker differs from Sugarlabs... They divide them up by category rather than listing them purely by importance or when they were added.

I am puzzled by the roadmap for Sahana.... Why is Milestone 2.0 98% complete when the ones before it are not done?

PHASE 2: Source Forge and OpenHub

  • I looked up dance, and I found 96 programs on Source Forge. Some because DANCE as an acronym and others as a metaphor. A couple of programs had to do with dance as the content.
  • How many different programming languages are used to write software in this category? Hard to say. I counted at least three.
  • List the top four programming languages used to write programs in this category. Java C, and Python, and also hardware specifications that come with their own programming interface.

Identify the meaning of each of the statuses below:

Note that these responses are based on my guesses rather than actual answers I can find on the pages themselves.

  • Inactive - Software projects that have not been updated or worked on for a period of time?
  • Mature - Software is completed and saturated the market?
  • Production/Stable - After the prototype proof of concept, full scale production
  • Beta - Stage in the development process where there is some functionality but bugs still exist.
  • Alpha - State in development where some functionality exists, but it is complete
  • Pre-Alpha - Functional pieces of the software project exists.
  • Planning - Design phase, where needs and requirements have been gathered and the system specifications are being created

Additional questions

I found SourceForge to not be very helpful at all. Perhaps it is because I am not familiar with the way that they present information, but I will try. I picked to examine "Cospace Dance". It is a complete set of code for the raspberry pi and other hardware to develop a robot. Because the categories are "Education" and "Robotics", I imagine that it will be used by educators in robotics. I can also see dance instructors or maybe roboticists working with choreographer may find this useful. The last person to update the wiki listed Java and C++ as programming languages skills, so I think the programming languages used in this project are the same.


This website is very cool. I particularly like the statistics and how the commits and contributions are shown as changing over time. I also like how it lists the primary language used, because it shows that OpenMRS, for example, is not a good candidate for a CS2 course at Berea because its primary language is Java, and we use Python here. I am increasingly moving towards mousetrap as a possible idea, although OpenHub indicates that the commit activity is VERY low and perhaps it has matured to the point that there is little movement. However, it may still be a good idea to look at it and see what the students can do.

Evaluating OpenMRS =

When I took a little at the size of the codebase for OpenMRS, it stood out to me that out of the 5 main languages being used, only Java seemed to be increasing. CSS and HTML, by their nature, is fairly static because it is about layout of webpages. What did interest me is that as the number of lines of JavaScript decreased, the number of lines of Java increased. I can see value in "porting" code from one language to the other and can see how to incorporate a project that has both C++ and Python with logic moving from one to the other, maybe.

This project seems to be fairly active with a commit about 3 months ago and an interesting distribution of commits. However, given the small number of core developers and a large number of "single commit" developers, I wonder how welcoming this community is. Perhaps the project is more or less mature, so the level of programming prowess may need to be deep for my students to make a meaningful commit to the core. Of course, I am looking at the core only, so perhaps there are other areas that my students can contribute to the project.

Personal tools
Learning Resources
HFOSS Projects