User:Rmezei

(Difference between revisions)
Jump to: navigation, search
(FOSS In Courses Activity 2)
(FOSS In Courses Activity 2)
Line 200: Line 200:
 
:* use http://www.sourceforge.net/ for an overview of different languages used in Software Development. In particular, students should be able to see how different Software Categories will use certain programming languages more often than others.   
 
:* use http://www.sourceforge.net/ for an overview of different languages used in Software Development. In particular, students should be able to see how different Software Categories will use certain programming languages more often than others.   
 
:* use http://www.ohloh.net/ for an overview of particular projects (such as Chromium (Google Chrome), and Mozilla Firefox). There are several interesting metrics to show students, in particular: Lines of Code, Programming Languages used, recent activity on the project
 
:* use http://www.ohloh.net/ for an overview of particular projects (such as Chromium (Google Chrome), and Mozilla Firefox). There are several interesting metrics to show students, in particular: Lines of Code, Programming Languages used, recent activity on the project
::: '''Learning Outcomes''': Students will get some understanding and appreciation for the diversity of applications that are produced in the "Real World". They will learn some basic vocabulary and basic principles used in FOSS. Get an idea about the complexity and size of applications that many of the students may already be familiar with (e.g. Google Chrome, Mozilla Firefox, etc.). Trying to identify the most commonly used programming languages for different categories such as: Games, Web Applications, Science Applications, etc. Many Computer Science and Information Technology terms can be introduced here.  
+
::: - '''Learning Outcomes''': Students will get some understanding and appreciation for the diversity of applications that are produced in the "Real World". They will learn some basic vocabulary and basic principles used in FOSS. Get an idea about the complexity and size of applications that many of the students may already be familiar with (e.g. Google Chrome, Mozilla Firefox, etc.). Trying to identify the most commonly used programming languages for different categories such as: Games, Web Applications, Science Applications, etc. Many Computer Science and Information Technology terms can be introduced here.  
::: '''Prerequisite knowledge''':  None.
+
::: - '''Prerequisite knowledge''':  None.
::: '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
+
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
::: '''Synchronize the activity with the community or can the activity/topic be covered independent of the HFOSS community schedule''': N/A  These topics will be introduced independently from the HFOSS community schedule  
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''': N/A  These topics will be introduced independently from the FOSS community schedule  
::: '''If the result of the activity is contributed back to the HFOSS project, describe the contribution and its usefulness''': N/A
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''': N/A
::: '''Assessment/grading approach''': It can be done as individual tests, individual project, or group project.
+
::: - '''Assessment/grading approach''': It can be done as individual tests, individual project, or group project.
  
  
Line 212: Line 212:
 
::* identify "bad" vs "good" coding style, including code layout styles, variable names, etc.
 
::* identify "bad" vs "good" coding style, including code layout styles, variable names, etc.
 
::* identify the importance of writing good comments
 
::* identify the importance of writing good comments
::* use the available debugging tools to study an unfamiliar code
+
::* use the available debugging tools to study '''and test''' an unfamiliar code
::: '''Learning Outcomes''':  The students should be able to learn about different coding styles, and naming notation. They should gain an appreciation for using comments in coding (especially since they will be exposed to code developed by somebody else). The students should be able to get familiar with debugging tools and other techniques that can be used to test the code. Most of the testing will be unit tests.
+
::: - '''Learning Outcomes''':  The students should be able to learn about different coding styles, and naming notation. They should gain an appreciation for using extensive comments in coding (especially since they will be exposed to code developed by somebody else). The students should be able to get familiar with debugging tools and other techniques that can be used to study and test code. Most of the testing will be unit tests.  
::: '''Prerequisite knowledge''': They should have basic knowledge of a programming language  ...  
+
::: - '''Prerequisite knowledge''': They should be familiar with basic Programming techniques, such as: comments, simple statements, conditional statements, loops and functions.
::: '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
+
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
::: '''Synchronize the activity with the community or can the activity/topic be covered independent of the HFOSS community schedule''': Most of the tasks should be independent from the HFOSS community schedule.  Some tasks, however, can help the community and therefore may need to be synchronized with the HFOSS community.   
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''': Most of the tasks should be independent from the FOSS community schedule.  Some tasks, however, can involve helping the community and therefore may need to be synchronized with the FOSS community.   
::: '''If the result of the activity is contributed back to the HFOSS project, describe the contribution and its usefulness''': The students can start by writing extensive documentation and comments in existing projects. That should be a good starting point for the to get involved with some HFOSS projects. In some cases, the students should be able to provide some basic unit testcases.
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''': The students can start by writing extensive documentation and comments in existing projects. That should be a good starting point for the to get involved with some FOSS projects. In some cases, the students should be able to provide some basic unit testcases. Students will be asked to analyze pieces of code, and in some (rare) occasions that some logical bug is found, it should be reported to the FOSS community.
::: '''Assessment/grading approach''': Can be done as an individual project, or group project.  
+
::: - '''Assessment/grading approach''': Can be done as an individual project (mostly), or group project.  
  
  
Line 225: Line 225:
 
::* identify data structures used in some source files
 
::* identify data structures used in some source files
 
::* develop UML diagrams for a specific project
 
::* develop UML diagrams for a specific project
::: '''Learning Outcomes''':   
+
::* identify and analyze some of the data structures used in the project.
::: '''Prerequisite knowledge''':   
+
::: - '''Learning Outcomes''':   
::: '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
+
::: - '''Prerequisite knowledge''':   
::: '''Synchronize the activity with the community or can the activity/topic be covered independent of the HFOSS community schedule''':
+
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
::: '''If the result of the activity is contributed back to the HFOSS project, describe the contribution and its usefulness''':
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''':
::: '''Assessment/grading approach''':
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''':
 +
::: - '''Assessment/grading approach''':
  
  
* Ideally, I should get some students involved into 1-year-long projects where students can:
+
* Ideally, I should get some students involved in a 1-year-long projects where students can:
:* study one project
+
:* study one particular project (of student's choice)
 
:* start with including more comments and updating existing test cases
 
:* start with including more comments and updating existing test cases
 
:* get to fix existing bugs
 
:* get to fix existing bugs
 
:* develop new source code/adding new features
 
:* develop new source code/adding new features
:* stay involved with the project even after the end of the 1-semester-long project.
+
:* ideally the student will stay involved with the project even after the end of the 1-semester-long project.
::: '''Learning Outcomes''':   
+
::: - '''Learning Outcomes''':  Work with a large, "Real World", project. Work and colaborate with other developers (most likely accross the World) through the channels used by the project (IRC's, forums, google groups, etc). Provide some support to the FOSS community.
::: '''Prerequisite knowledge''':   
+
::: - '''Prerequisite knowledge''':  At least CS 1-2 (CSC 150 - CSC 250).
::: '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':   
+
::: - '''Estimation for the time required for instructor prep, for student completion and elapsed calendar time''':  2-semester course.
::: '''Synchronize the activity with the community or can the activity/topic be covered independent of the HFOSS community schedule''':
+
::: - '''Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule''': Synchronize the activity with the community.
::: '''If the result of the activity is contributed back to the HFOSS project, describe the contribution and its usefulness''':
+
::: - '''If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness''': Bug fixes, documentation update, and hopefully new features added and/or proposed, that were accepted by the FOSS community.
::: '''Assessment/grading approach''':
+
::: - '''Assessment/grading approach''': Depending on the length of the project, the student should have set a minimum number of commits that were accepted to be included in a future release of the project. Community feed-back, although not required, will be very welcomed and appreciated. The students need to engage, or at least try to engage, in communicating with other members of the project on a regular basis. In extreme cases, where the feedback is very slow, or not received in time, the instructor should be able to provide feedback to the students.

Revision as of 14:20, 28 May 2014

Contents

Razvan Alex Mezei

Razvan Alex Mezei is an Assistant Professor in the Donald & Helen Schort School of Mathematics & Computing Science at Lenoir-Rhyne University. [LRU webpage]

Dr. Mezei holds:

  • a PhD in Mathematics (2011), from the University of Memphis, USA
  • a MS in Statistics (2011), from the University of Memphis, USA
  • a MS in Mathematics (2008), from the University of Memphis, USA
  • a MS in Computer Science (2007), from the University of Oradea, Romania, and
  • a BS in Mathematics and Computer Science (2005), from the University of Oradea, Romania.

His research interests in Mathematics are in the area of Approximation theory, as well as in Numerical Analysis, and in Inequalities. In Computer Science, his interests are related to Programming Languages, Data Structures and Algorithms.

In his spare time, Dr. Mezei enjoys taking pictures, lots of pictures. His personal collection of pictures exceeds 100k.


Introduction to IRC - SAHANA-EDEN

The activities on #sahana-eden were quite limited. The group seems to be more active on https://groups.google.com/forum/#!forum/sahana-eden --Rmezei 23:44, 9 May 2014 (UTC)

SAHANA EDEN Project

As part of POSSE 2014, I would like to work with the SAHANA - EDEN HFOSS project. I will post some of my findings on my blog. [1] --Rmezei 17:07, 9 May 2014 (UTC)

FOSS Field Trip

Please also find this info on my blog [2] --Rmezei 02:34, 5 May 2014 (UTC)


——————– SourceForge.net ——————–

On http://sourceforge.net/ I searched for Mathematics projects and found 749 projects corresponding to the category of Mathematics. There were at least 15 different programming languages used for writing those software projects.


The most common programming languages used were: C++ (206), Java (155), C (111), Python (78), Matlab (31), C# (30), S/R (26), JavaScript (19), Fortran (16), Lazarus (11), VB .Net (11), Delphi/Kylix (10), Basic (9), Perl (9), Tcl (7) .


The most popular project for the Mathematics category was: “gnuplot development” ( http://sourceforge.net/projects/gnuplot/?source=directory ). It had scored 11883 weekly downloads. The software does 2D and 3D plotting, and supports a “huge number of output formats” as well as “interactive input or script-driven”. I believe this project will most likely be used by scientists who want to express their work/ideas using 2D or 3D images. The primary programming language was C and the most recent change was made on February 23rd, 2014 (Gnuplot Version 4.6.5).


According to http://www.ohloh.net/p/gnuplot the project has 4 contributors in the last 30 days. Although I would love to get involved into developing this project, I wouldn’t necessarily use it on a daily basis. The main reason behind this statement is the fact that the user interface is not really updated to today’s standards.

——————– Ohloh.net ——————–

Mifos project was mostly written in Java (33%) and Php (21%). It has 2.677 million (Apr 2014) lines of code. The locations for some of the contributors include:

  • Collegeville, Philadelphia, PA, USA
  • Minneapolis, MN, USA
  • Bangalore, India
  • Lausanne, Switzerland
  • Helsinki, Finland


There are about 19 programming languages used for Mifos, including: Java, XML, PHP, HTML, JavaScript, SQL, CSS, Python,… The language with:

  • the second highest number of lines of code was XML (515,397).
  • the highest comment ratio was Perl (28%)


In the last 12 months, the project had:

  • about 10 contributors (0 since last October)
  • 162 commits


The top three contributors to the project have been involved with Mifos for about 1 year, 1-2 years, and about 1 year respectively.


MIFOS Project Evaluation / Activity

My thanks to <flavour>, on IRC #sahana-eden channel, for his support. He did the work to update the stats found on ohloh.net for SAHANA-EDEN. As of right now, I am still unable to see these updated metrics. --Rmezei 00:31, 19 May 2014 (UTC)

FOSS In Courses Activity

I have several ideas where I could include FOSS.

  • In "CSC 120 - Survey of Computing" course, I plan to:
  • give our students an introduction to FOSS.
  • use http://www.sourceforge.net/ for an overview of different languages used in Software Development. In particular, students should be able to see how different Software Categories will use certain programming languages more often than others.
  • use http://www.ohloh.net/ for an overview of particular projects (such as Chromium (Google Chrome), and Mozilla Firefox). There are several interesting metrics to show students, in particular: Lines of Code, Programming Languages used, recent activity on the project


  • In "CSC 150 - Computer Science I" course, I plan to:
  • Look at several projects' source code to:
  • identify "bad" vs "good" coding style, including code layout styles, variable names, etc.
  • identify the importance of writing good comments
  • use the available debugging tools to study an unfamiliar code


  • In "CSC 250 - Computer Science II" course, I plan to:
  • Look at several projects' source code to:
  • identify data structures used in some source files
  • develop UML diagrams for a specific project


  • Ideally, I should get some students involved into 1-year-long projects where students can:
  • study one project
  • start with including more comments and updating existing test cases
  • get to fix existing bugs
  • develop new source code/adding new features
  • stay involved with the project even after the end of the 1-semester-long project.


Bug Tracker Activity

Part 1 - Bug Reports

  • ID - a unique id
  • Sev - severity. Possible values: blo, cri, maj, nor, min, tri, enh
http://www.bugzilla.org/docs/3.4/en/html/bug_page.html includes more description: " Severity: This indicates how severe the problem is - from
  • blocker ("application unusable") to trivial ("minor cosmetic issue"). You can also use this field to indicate whether a bug is an enhancement request."
  • Pri - priority. Possible values: Urg, Hig, Nor, Low
http://www.bugzilla.org/docs/3.4/en/html/bug_page.html includes more description: "The bug assignee uses this field to prioritize his or her bugs. It's a good idea not to change this on other people's bugs."
  • OS - operating system. Possible values: All, Linu, open, Sola, Mac, Wind, othe
  • Product. Possible values: aisleriot, at-spi, atk, balsa, banshee, baobab, bijiben, caribou, cheese, clutter, clutter-gtk, conduit, conglomerate, devhelp, dia, doxygen, ..., xchat-gnome, Yelp, yelp-xsl.
http://www.bugzilla.org/docs/3.4/en/html/bug_page.html includes more description: "Product and Component: Bugs are divided up by Product and Component, with a Product having one or more Components in it. "
  • Status. Possible values: UNCONFIRMED, NEW, ASSIGNED, REOPENED, NEEDINFO
"Status and Resolution: These define exactly what state the bug is in - from not even being confirmed as a bug, through to being fixed and the fix confirmed by Quality Assurance."
  • Resolution. Please see above ...
  • Summary: " A one-sentence summary of the problem"


  • Describe how you discovered the definitions and How did you find the information from above?

Using "The Bugzilla Guide - 3.4.14 Release", I landed on the following webpage: "The Bugzilla Guide - 3.4.14 Release" (http://www.bugzilla.org/docs/3.4/en/html/bug_page.html)

  • Identify the order in which the bugs are initially displayed?
They are displayed by status.


  • What is the meaning of the shading of some bug reports?
Shows the severity. All enhancements are shaded.
  • What is the meaning of the colors used when describing a bug (red, gray, black)?
Shows the severity. The following are used:
  • bold+red for blo,
  • red for cri,
  • black for maj, nor, min, tri,
  • shaded for enh


  • Select a bug that you think that you might be able to fix and look at it more closely (click on the bug number).
  • "665599 nor Nor All at-spi UNCO Add ATSPI_STATE_READ_ONLY"
  • Identify when the bug was submitted.
2011-12-05 15:55:47 UTC
  • Identify if there has been recent discussion about the bug?
Comments added on: 2012-02-26 10:43:32 UTC, and 2013-08-14 10:06:33 UTC
  • Is the bug current?
  • Is the bug assigned? To whom?
CC List contains 2 users: a9016009, mgorse.
  • Describe what you would need to do to fix the bug.
Add a new state to the enumeration.


  • Repeat the previous step with a different kind of bug.
  • "465103 cri Urg Linu at-spi ASSI Desktop objects sometimes have null children "
  • Identify when the bug was submitted.
2007-08-09 17:13:19 UTC
  • Identify if there has been recent discussion about the bug?
Latest comments (which looks more like an automated message) added on: 2013-08-14 10:06:12 UTC
  • Is the bug current?
Yes.
  • Is the bug assigned? To whom?
Yes. CC List contains 3 users: a9016009, GNOME-a11y-bugs-EXT, steve.
  • Describe what you would need to do to fix the bug.
Not sure yet.


Part 2 - Collective Reports

  • How many bug reports were opened in the last week? How many were closed?
Total Reports: 46439 (368 reports opened and 371 reports closed. Including enhancement requests)
  • What was the general trend last week? Were more bugs opened than closed or vice versa?
There were slightly more closed bugs than opened.
  • Who were the top three bug closers? Why is this important to know?
Matthias Clasen, Jim Nelson, Milan Crha. They may be the most active volunteers to the project. Maybe the dedicated the most time to the project, or they may be the most expert in the project.
  • Who were the top three bug reporters? Are these the same as the top three bug closes? What is the overlap in these two lists?
Jim Nelson, Kat, Egmont Koblinger. There is only one overlap: Jim Nelson.
  • Who are the top three contributors of patches?
Florian Müllner, Egmont Koblinger, Debarshi Ray.
  • Who are the top three reviewers of patches? What is the overlap between these lists and the bug closers and bug reporters? What is the overlap between patch contributors and patch reviewers?
Sebastian Dröge (slomo), Bastien Nocera, Jasper St. Pierre. There is no overlap between these lists and the bug closers and bug reporters. There is no overlap between patch contributors and patch reviewers.
  • Plot the Severity of each Version of the Accessibility features of Empathy.
Please see the attached: Media:Img1.jpg and Media:Img2.jpg for details.
  • What other reports can you generate?

--Rmezei 05:53, 28 May 2014 (UTC)


FOSS In Courses Activity 2

I have several ideas where I could include FOSS.

  • In "CSC 120 - Survey of Computing" course, I plan to:
  • give our students an introduction to FOSS.
  • use http://www.sourceforge.net/ for an overview of different languages used in Software Development. In particular, students should be able to see how different Software Categories will use certain programming languages more often than others.
  • use http://www.ohloh.net/ for an overview of particular projects (such as Chromium (Google Chrome), and Mozilla Firefox). There are several interesting metrics to show students, in particular: Lines of Code, Programming Languages used, recent activity on the project
- Learning Outcomes: Students will get some understanding and appreciation for the diversity of applications that are produced in the "Real World". They will learn some basic vocabulary and basic principles used in FOSS. Get an idea about the complexity and size of applications that many of the students may already be familiar with (e.g. Google Chrome, Mozilla Firefox, etc.). Trying to identify the most commonly used programming languages for different categories such as: Games, Web Applications, Science Applications, etc. Many Computer Science and Information Technology terms can be introduced here.
- Prerequisite knowledge: None.
- Estimation for the time required for instructor prep, for student completion and elapsed calendar time:
- Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule: N/A These topics will be introduced independently from the FOSS community schedule
- If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness: N/A
- Assessment/grading approach: It can be done as individual tests, individual project, or group project.


  • In "CSC 150 - Computer Science I" course, I plan to:
  • Look at several projects' source code to:
  • identify "bad" vs "good" coding style, including code layout styles, variable names, etc.
  • identify the importance of writing good comments
  • use the available debugging tools to study and test an unfamiliar code
- Learning Outcomes: The students should be able to learn about different coding styles, and naming notation. They should gain an appreciation for using extensive comments in coding (especially since they will be exposed to code developed by somebody else). The students should be able to get familiar with debugging tools and other techniques that can be used to study and test code. Most of the testing will be unit tests.
- Prerequisite knowledge: They should be familiar with basic Programming techniques, such as: comments, simple statements, conditional statements, loops and functions.
- Estimation for the time required for instructor prep, for student completion and elapsed calendar time:
- Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule: Most of the tasks should be independent from the FOSS community schedule. Some tasks, however, can involve helping the community and therefore may need to be synchronized with the FOSS community.
- If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness: The students can start by writing extensive documentation and comments in existing projects. That should be a good starting point for the to get involved with some FOSS projects. In some cases, the students should be able to provide some basic unit testcases. Students will be asked to analyze pieces of code, and in some (rare) occasions that some logical bug is found, it should be reported to the FOSS community.
- Assessment/grading approach: Can be done as an individual project (mostly), or group project.


  • In "CSC 250 - Computer Science II" course, I plan to:
  • Look at several projects' source code to:
  • identify data structures used in some source files
  • develop UML diagrams for a specific project
  • identify and analyze some of the data structures used in the project.
- Learning Outcomes:
- Prerequisite knowledge:
- Estimation for the time required for instructor prep, for student completion and elapsed calendar time:
- Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule:
- If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness:
- Assessment/grading approach:


  • Ideally, I should get some students involved in a 1-year-long projects where students can:
  • study one particular project (of student's choice)
  • start with including more comments and updating existing test cases
  • get to fix existing bugs
  • develop new source code/adding new features
  • ideally the student will stay involved with the project even after the end of the 1-semester-long project.
- Learning Outcomes: Work with a large, "Real World", project. Work and colaborate with other developers (most likely accross the World) through the channels used by the project (IRC's, forums, google groups, etc). Provide some support to the FOSS community.
- Prerequisite knowledge: At least CS 1-2 (CSC 150 - CSC 250).
- Estimation for the time required for instructor prep, for student completion and elapsed calendar time: 2-semester course.
- Synchronize the activity with the community or can the activity/topic be covered independent of the FOSS community schedule: Synchronize the activity with the community.
- If the result of the activity is contributed back to the FOSS project, describe the contribution and its usefulness: Bug fixes, documentation update, and hopefully new features added and/or proposed, that were accepted by the FOSS community.
- Assessment/grading approach: Depending on the length of the project, the student should have set a minimum number of commits that were accepted to be included in a future release of the project. Community feed-back, although not required, will be very welcomed and appreciated. The students need to engage, or at least try to engage, in communicating with other members of the project on a regular basis. In extreme cases, where the feedback is very slow, or not received in time, the instructor should be able to provide feedback to the students.
Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox