From Foss2Serve
Jump to: navigation, search

Robert Hochberg teaches at the University of Dallas, and directs the computer science program there.

My research area is computational mathematics --- developing algorithms and theory to solve problems. My latest two papers:

are typical of the type of research that I've been doing lately.

Regarding teaching, what I most want for my students is for them to be able to think and reason logically in order to be excellent problem solvers, assisted by computer technology. Whether it's a computer vision or operating systems class, my focus is on the underlying principles rather than any particular technology. Technologies come and go, but design principles that are good now will be good for a long time.

The University of Dallas is a small, private liberal arts school with about 1300 undergraduate students. Our CS major is in its 5th year. Our school has a large Core Curriculum that all students must take, which leaves not too much room for computer science classes.

This creates an interesting difficulty: We have no room to require all students to take courses such as Software Engineering, Databases or Networking. Instead, we have used projects such as High Performance Computing and Computer Vision as a vehicle to introduce these ideas. HFOSS, in particular the MouseTrap project, will be another way to supplement our students' learning. But more than just being another way, it is probably going to be a better way. Our school tends to attract students who want to make the world a better place.

Guided Tour of Sugar Labs
Roles for My Students Probably developer, since my students are mostly CS students. There might be some designers among them.
Bug Tracking Bugs come in two types: defect and enhancement. They seem to go through a process of being new, assigned and accepted by a developer. They also have normal or high priority. Clicking on the bug text reveals So Much information about the bug.
Last commit March 10, 2014.
Schedule Each release comports with the previous roadmap description, and the new roadmap sets concrete goals for the next release.
Guided Tour of the Sahana Eden Project
Contributors The description here of the ways to contribute is much more developer-centered. At Sugar Labs, they described higher-level categories of participation (educator, evangelist, programmer...) whereas here at Sahana, it seems to be mostly hardcore developers, designers and testers that they want. An exception is Outreach, which could draw on the talents of artists and communicators.
Bug Tracker This projects bug system seems much more sophisticated than Sugar Labs'. There are 37 categories of bugs, the first of which, Active Tickets, seems to correspond to the entirety of Sugar Labs' bug list. I get the impression this project is more widely used.
Roadmap Seems to have stalled. It reflects a disciplined process to set and reach goals, with many closed tickets reflecting many hours of work. The questions presents itself: How do people find the hundreds of hours needed to do this stuff???
SourceForge Field Trip
Computer Vision There were about 610 projects, 15 languages, with C/C++, Jave and PHP the top four.
Comparison I compared OpenCV with AnimeVision. OpenCV has about 68000 weekly downloads, and AnimeVision seems to have died, and to be no longer active. Sorting by Popularity, OpenCV seems to be the most active.
OpenCV Provides libraries in Python, C++ and Java for computer vision. Written in C++, with bindings for the other languages. Developers will use this, since it's just libraries. Last update, September 16, 2016.
OpenMRS on OpenHub
  • Mostly written in Java, with about 3.73 million lines of code.
  • Contributor locations don't seem to load.
  • Written in 15 languages, with Javascript the second most popular.
  • Java has the highest comment ratio, and there were about 10 contributors, on average, over the past year.
  • The top three contributors over the past 12 months have been involved for about 6, 5 and 3 years, resp.
  • There have been an average of 443/12 commits per month, over the past 12 months.
Reflection I've used GitHub and SourceForge on occasion. It's great to learn about OpenHub, a sort of overseer that will help me evaluate the activity and breadth of projects at a glance.
Project Evaluation Activity --- OpenMRS
Complexity I would rate this a three. It seems to have an enormous codebase and very sophisticated architecture.
Activity The project seems very active. SourceForge is down right now, but the GitHub repository reflects 8 pull requests (developer thing) the past month.
Community The community is fantastically active.
On-ramp There is ample help for folks who want to get involved. The list of "beginner" tickets is impressive, and the book for new developers is very thorough.
Suitability The project is so huge, that I bet it would have appropriate activities, as far as knowledge and talent are concerned. I would really need to assess whether the students are 'interested' before bringing it into the classroom, though.
FOSS in Courses
Thoughts After reading through the various links on this activity's page, I begin to wonder if perhaps a stand-alone course might be appropriate. I have thought that the answer was simply "no," since we do not have much room for electives in our program. However, seeing the trove of learning activities and teaching materials that are already available makes me think of something like a software engineering course, which we currently do not offer at all. The FOSS aspect will appeal to the students, and would provide a great vehicle for teaching professional software design concepts. And the already-prepared activities help make this just quite possible.
Specific Course We have been doing some work with computer vision, and it would be nice to continue developing that theme. In particular, the OpenCV project has a great C/C++ core, and a nice community around the Python libraries that have been built. But the Java portion of the project is criminally under-documented, and much of the OpenCV secondary functionality has not been ported to Java. I think this would be a great place for us to start.
Bug Tracking
Columns ID is an accession key, Product is the Gnome product affected, one of {Orca, Gok, Dasher, gnome-mag, at-poke, accerciser, gnome-speech}. Comp is the component of the product, one of {.General, Accessibility, api, application, at-spi2-atk, at-spi2-core, atk, Backend:X11, etc...}, Assignee is the ticket stream to which the but was assigned, one of {yelp-maint, xchat-gnome-maint, website-maint, vte-maint, unknown, tracker-general, totem-general-maint, etc...}, Status is an indication of where the ticket is in its lifecycle from UNCONFIRMED to NEW to ASSIGNED to CLOSED (when it's not a ticket anymore), and possibly including REOPENED and/or NEEDINFO. The Resolution column seems to be uninformative, and the Summary field contains a pithy description of the ticket. I found these by scrolling up and down. A complete list can be found at this location. They are sorted by Status by default, and shading of (sort of) every other row improves readability.
Bug Target Bug 534046 looks like it might be something we could solve. Based on the comments, it looks like the real issue is deciding what people want, and garnering consensus. The bug is old. First reported in 2008, last modified in 2013. We'd have to test it against the latest software version to see if it's still an issue. Currently unassigned.
Different Bug Bug 535924 concerns implementing ctrl-left and ctrl-right to navigate through songs. First reported 2008, least commented on 2011. Same process required to discover how to proceed.
7-day Bug Summary
Severity by component for orca.
Severity by component for orca.
420 reports opened. 311 closed. Top 3 bug closers were Muller, Franke and Waters. These would be good people to contact if we wanted to start working on a part of the Gnome project. No overlap with the top 3 closers, Droge, Drag and vrishab. Top three contributors of patches: Chimento, Drag and Neto. Top three reviewers of patches: Droge, Cecchi, Muller. No overlap between patch contributors/reviewers. There is one person each in common between the patch reviewers and the bug reporters/closers.
FOSS in Courses, Part 2
OpenCV and Java
  • Coding outcome: Students will gain an understanding of the process of wrapping C/C++ object code with Java wrappers.
  • Domain outcome: Students will gain familiarity with the use of artificial neural networks.
  • FOSS outcome: Students will engage in the entire sequence of steps required to contribute to a FOSS.
  • Prerequisites: Students should be experienced Java programmers with an understanding of compiled object files.
  • Instructor prep time: 20 hours if they don't themselves know how this process works yet, perhaps shorter if they do.
  • Student completion time: 18 hours, depending on quality of instruction. I really don't know how difficult this is yet.
  • Calendar time: I am estimating three weeks, plus the time for the FOSS community to react to the enhancements. We can move on while we wait for the community to 'get back to us.'
  • The grade will be 50% whether it worked locally (that is, we can make use of it in our own research) and 50% on how well it is received by the OpenCV team. It doesn't have to be incorporated into the very next version, but it does have to generate serious discussion and be free of 'you knuckleheads' comments.
  • I would encourage group work.
  • One possible stumbling block is that this is an obvious gap in what was ported to Java. It makes me wonder if perhaps there is some fundamental difficulty.
Second idea We have written a 'workbench' for training neural networks from image sets, that ties together all the standard tools with a convenient GUI. It has some rough spots, and nearly no documentation. It would be nice to FOSSify this project. The student authors are all in favor of it.
Personal tools
Learning Resources
HFOSS Projects