Allen Hurlbert
Biology
hurlbert@bio.unc.edu
(will present 9:05 slot)
Caterpillars Count! Data Visualization
Caterpillars Count! is a citizen science project that facilitates the collection of data
on caterpillars and other arthropods throughout North America. These data are the foundation
for basic research into the impacts of climate change on natural ecosystems. However,
exploration of these data is also of great use for science education and outreach. This
project involves developing interactive web-based data visualization tools (probably using
the D3.js library) for exploring these data in geographical (i.e. map-based) and graphical
formats, specifying data filters, or digging down to different levels of complexity.
Ultimately, this project will allow middle and high school students to ask and answer
scientific questions about arthropod density and distribution, and will improve their
ability to interpret scientific data.
Susan Helms
Michael Levy
UNC Center for Health Innovation
(will present, 9ish)
My Healthy Heart is one of the teams that placed in the Digital Health Innovation
Sprint that just concluded. They have the clinical expertise, access to patients for
rapid feedback, and we intend to run a pilot with their solution once we have a
Minimum Viable Product in hand. However, they are lacking software development support
to move their product along.
We are planning for them to participate in the Groundworks Lab accelerator cohort that
starts in mid May, so a semester long class project would be perfect.
presentation
Suzanne Cadwell
(will present 9:20 )
Please find attached our proposal to develop attendance tracking application for
large-lecture classes. Its scope is large, but I expect that we could narrow it
for the purposes of the course. It involves using bluetooth communications with
mobile devices, and interfaces with the UNC ONYEN single sign-on system.
Word doc
Brian Moynihan
Health Sciences Library, leading their Digital Health efforts.
(will present, 9:30)
Amazon Alexa pilot at UNC Health Care
UNC's Center for Health Innovation would like to pilot the use of Amazon's Alexa,
using the Alexa Skills Kit to develop an application that would be useful for
settings like the operating room, patient's home, or other real-world healthcare
setting. This initiative will be supported by a team at the UNC Health Care system
and would be an excellent way for students to both explore use of the Alexa
development environment, and have an impressive addition to their professional
portfolio.
Thus this project will use the Amazon Echo/Dot as a voice control device and you will
develop systems to use the voice commands to manipulate various computing functions.
Thomas Freeman
UNC Chemistry
(will present)
We teach students a technique in Chem 101 called Photoelectron Spectroscopy, which
generates a unique spectral pattern based on the electron configuration of a given
element. This technique essentially provides a set of peaks to represent the different
energy levels of electrons around an atom. The tool would use published energy values,
which I would be happy to provide the students (or we can use a calculation to
approximate energy values, which might be more interesting) to determine the peak
positions, and information about each element to determine the relative peak heights.
A similar tool exists online (http://cbc.arizona.edu/chemt/Flash/photoelectron.html),
but is lacking many features that really help expand a student's understanding (e.g.,
it only covers the first 21 elements even though there are 118). Another feature of the
tool would also show the electron configuration of the neutral element so that students
can explore how the PES is tied to the electron configuration notation that we use.
A final feature that would make this tool even more powerful is if a student could see
how the spectrum changes as you remove electrons to make a cation of a given element
(this would also have to be adjusted using theoretical calculations, but we could keep
the math relatively simple).
Ideally this tool would be a web app so that it is platform-independent. An informational
page about the technique and how it works would also be helpful if time allows for it.
Kelly Hogan
Mara Evans
UNC Biology
(will present, before 9:45)
We have an instructional need. In our large science classes, we'd like to be using
more formal groups, but in a class of 450 students-- this poses a real administrative
challenge. We're thinking of a program that does some kind of intake from students
to learn about where they want to sit in the room and maybe other parameters we
might want to group students by. We'd then want the program to deliver information
to students when we're ready about who they've been matched with and the seats
assigned to that group. Ideally, we'll have a place to also give guidelines about
effective group work and a place to contact the instructor if there are issues that
need to be discussed. We're open to other ideas that could make a program like this
even more useful such as a way for students to provide feedback to their partners
and to the instructor about the group dynamics.
Ming Lin
(will present 10ish)
I have the idea of expanding and revising of an existing website that used
Github. The source code already exists, but I'd like to significantly modify
and expand it. It's found at
csrankings.org
It's nothing terribly complicated, but the students need to know python and
web programming, and possibly a bit of GUI.
For example, we might add user-driven mechanisms to add more areas (e.g. multimedia),
more publication venues, adding journals, etc. Different criteria of weighing the
publications, adding new criteria for ranking dept, better looking Graphical UI
than its current plain, boring look, etc.
In addition, more objective measures to automatically include publications, say
based on H-5, google citations, etc. Automatic incorporation of other data, such
as graduation rates, average salary per tuition, etc. The wish list can go on and on.
If the team does a good job, there is even potentially a publication here. :-)
description
Kris Jordan
The project that I could use help with can be described as follows:
(will present 10ish)
COMP110 Scheduling Application
This semester COMP 110 has 52 LAs who hold between 5 and 10 hours of open hours, each
with their own heterogeneous schedule constraints and experience levels. Through the
week we are collectively open for 55 hours of availability and need to build schedules
for the team and satisfy a number of constraints. This is an NP-hard problem that has
been well researched and is called the "Scheduling Nurses Problem." Over the summer,
a few team members developed a "good enough" text-based backend solution to the
scheduling problem. We would like to build upon this backend with a GUI or web-based
editor that makes it easier for a human to manually iterate upon a generated schedule,
simplifies the rescheduling of conflicts, and makes it easier to visualize potential
problems in a schedule. We would also like to improve upon the scheduling algorithm
in a number of quantifiable ways. This project combines a variety of user experience
and data visualization challenges along side some good, hard computer science
algorithmic problems.
Prasun Dewan
Computer Science
(will present 10ish)
Distributed Semi-Automatic Style and Correctness Grader of
Exam and Assignment Solutions
Given a student programming submission (assignment or exam solution), a grading
program evaluates the submission for style and correctness. This problem, in general,
is intractable as it is more difficult than the program equivalence program.
There are two popular solutions to combat this intractability:
(a) support fully automatic checking with rigid rules (e.g. Udacity);
(b) define an interactive distributed grading assistant that automates bookkeeping
tasks but requires fully manual checking (e.g. Gradescope).
At UNC we have developed a hybrid that automates some but not all checking. However,
it is not distributed, and does not support grading of exam solutions. The goal of
this project is to remove one or both of these limitations.
Reasons for undertaking it:
(a) You get to improve in a major way the state of the art in an area that is attracting
great attention given the large CS class sizes.
(b) You build something that will actually be used at UNC and perhaps elsewhere.
(c) You learn to create a distributed secure architecture.
(d) You develop a complex UI by designing certain elements from scratch and integrating
others from existing graders such as GradeScope.
(e) You learn to use new APIs such as the distributed Google Windowing Toolkit.
Nicole Robinson-Ezekwe MA, MPH
UNC Center for Health Equity Research
nic7@live.unc.edu
(will present)
I need to develop a data collection app for a project that I am implementing. As
stated below, I work for the UNC Center for Health Equity Research and I am developing
a project called SEARCH (Social and Environmental Assessment to Rate Community Health).
The project is aimed at measuring neighborhood-level determinants of health that
influence individual stress levels and other cardiovascular disease related health
outcomes. We would like to develop an app that data collectors can use to collect
the neighborhood/environmental information. I have attached a copy of the original
internship job call that I sent to your department.
Word doc
Anna L. Krome-Lukens, PhD
Lecturer and Director of Experiential Education, Public Policy
(will present, 9:30 to 10:00)
As Director of Experiential Ed for PP, I oversee our students' work with
community partners in a few courses, including our Capstone (PLCY 698),
Clinic (PLCY 393), and Internship (PLCY 293) courses. As I'm sure you know
from running COMP 523, there's a lot of administrative work involved.
Two places your students might be able to help:
1. A database. Since I took over this position 18 months ago, I've tried to do a
better job of keeping tabs on the many partners and projects we work with, but am
currently using an excel spreadsheet. I'd love to have a true relational database
to track clients and other contacts (and logs of interactions with them), projects,
students, etc. If I had time and money, I'd do it in Filemaker, but I have neither.
I'd also really like for the primary interface to be via web browser, with
password-protected access, so that other staff and faculty in the department
can access it.
2. Some sort of algorithm that would allow me to do a preliminary sort of students'
project preferences in Capstone. (Or your secrets for how you do it in your course??)
Each semester I have 50-60 students to assign to 12-16 potential projects, and I'm
trying to balance multiple factors in addition to their expressed preferences,
including gender, background/experience, and skills particular to the project.
Right now I use a Qualtrics survey to gather their preferences, then export it to
a massive spreadsheet, which I stare at for hours trying to get the right combination.
There's got to be a better way, right?
Jennifer M. Hazen, PhD
Public Policy & Peace, War, and Defense
jmhazen@email.unc.edu
(not presenting)
I would love to have an option for students to use an app that allows them to put
forward answers that would generate a word cloud (of sorts) on the screen. For
example, if I ask "what does global policy mean" or "give me an example of a global
policy issue" etc. students could type in their answers and these would generate into
a word cloud or some graphic that would be visually appealing (not just text on a
power point slide), and which I could then manipulate to pull certain words or phrases
out (or make them larger or highlight them somehow), and also put aside (or maybe
even shrink or delete) answers that aren't factually accurate, or maybe even group
some ideas together with others.
It's a sort of visual brainstorming for the class. And allows students to see
their answers on the screen, and allows me to manipulate them in some fashion.
I'm envisioning a word cloud - of sorts - that I can then manipulate. Move words
around, group them together, highlight the one I'm talking about, delete words
that may not fit (or I expect some will simply put up cheeky answers). Perhaps
I watch too many TV shows/movies, but being able to easily play with the answers
students put forward to teach from them would be great.
Even better if there is someway to highlight an answer and then click to a popup
window with a video clip/photo/or even boring text that explains the concept in
more detail. And then be able to close that window and go back to the word cloud,
and on to talking about the next answer.
If you know of a program that already does this, I would love to know what it is.
I am teaching a class of 160 in the fall and would love to find ways to make that
at least somewhat interactive.
------------------
The main idea is to have the ability to generate answers from students,
and then to manipulate those answers.
For example, if I ask students to name a global policy issue, they could
submit their answers, which would populate the screen as a word cloud of
sorts. Then what I'd like to be able to do is manipulate that data:
-- by grouping certain ideas together in a corner of the screen, maybe
drawing a circle around them or writing an overarching label across
the top of the group
-- making similar ideas the same color text
-- swiping ideas to delete anything incorrect or inappropriate.
-- tapping a certain idea (text word) to enlarge it on the screen,
to highlight it as I discuss it
-- tapping a certain word/idea to enlarge it but also to bring a box up to
the right of that text that would allow me to link to images, video, etc.
Obviously I'd have some idea of what the students would answer in order
to have files ready at hand. But having an easy way to pull up those
images on the screen without having to switch multiple screens would be helpful
I'm open to other suggestions your students might have for manipulating
information on the screen
Steve Aylward
David Thompson
Kitware
(Moday presenting, 9:05)
Kitware has begun a new open-source visualization library called VTK.js.
It is, as it sounds, VTK for javascript:
LINK
Perhaps teams from your class would be interested in adding one or more cutting-edge
visualization methods to VTK.js. The list of possible methods to be added includes
the following:
+ Silhouette rendering.
Gooch, Gooch, Shirley, Cohen. A Non-Photorealistic Lighting Model For
Automatic Technical Illustration.
paper link
and also paper link
for implementation details.
In order to work with depth peeling, it would be better to use a geometry shader to
insert quads for each edge and point which qualifies as a silhouette. This would be
really useful for displaying selected surfaces/bodies in ModelBuilder.
+ Sketch recognition/beautification.
Wolin, Eoff, Hammond. ShortStraw: A Simple and Effective Corner Finder for Polylines
http://faculty.cse.tamu.edu/hammond/publications/pdf/2008WolinSBIM.pdf
which could use browser multitouch events to accept sketches and then offer to beautify.
It would be a nice way to accept not just sketches, but gestures for picking, transforms,
and camera controls. Also, see http://www.olivierbau.com/octopocus.php for gestures.
We want support for this in ModelBuilder as an alternative to polygon drawing via
mouse clicks.
+ Inspecting volumetric data without volume rendering.
McGuffin, Tancau, Balakrishnan. Using Deformations for Browsing Volumetric Data
http://profs.etsmtl.ca/mmcguffin/research/volumetricBrowsing/
Which could be adapted to apply textures to spline surfaces instead of deforming
individual voxels, and would be useful for medical projects.
+ Displacement mapping.
Wang, Tong, Lin, Hu, Guo, Shum. Generalized Displacement Maps.
http://cg.cs.tsinghua.edu.cn/papers/esr_wx.pdf
This may not be possible without WebGL2 support in your browser.
We could really use this in ModelBuilder for displaying bathymetry data.
Dr. David Thompson (http://www.kitware.com/company/team/thompson.html) would serve as
the "customer" on these tasks.
Slides PDF
Jeannie Loeb
Teaching Professor and Director of Instructional Development,
Department of Psychology & Neuroscience
Clinical Associate Professor, School of Education
(Monday presenting, 9:05)
Developed a web-based system for the UNC admin that helps faculty members create
course syllabi according to a framework containing all the sections, goals, and
topics requested. It would be great if portions of a syllabus (as a Word document)
could be generated based on some information put in by the user. (If this were
generated as a Word document, then the user could add whatever else they want.)
The program should not only generate the components listed by UNC as being important
to have in a syllabus (that document is attached) but it would also be very helpful
if it could automatically generate a table of times that course would be meeting.
For example, if a course is to meet on MWFs (or Tues/Thurs or just MWs or MTWRF -
so flexibility in indicating how frequently the course meets would be good), then
having the specific days and dates generated automatically (as a table, see below)
would be great. The program should do this based on the first day of class (which
the user could enter - unless this information could be retrieved automatically
from a UNC resource, e.g. Academic Calendar?) and the last day of class (which the
user could enter, or again, be automatically retrieved from a UNC site).
Automatically noting which days are UNC holidays would also be useful. The table
could be something like below.
The dates would be generated and the topic and assignment columns would be blank so
that the user can fill them in with whatever they want. It would also be good if
all generated information (not so much the format which I'm guessing must be fairly
fixed) could be overwritten in case the user would like to change something.
DATES TOPIC ASSIGNMENT
Wed 1/11/2017
Fri 1/12/2017
Mon 1/16/2017 NO CLASSES ****?
Slides
Ram Neta
Philosophy
neta@email.unc.edu
(not presenting)
(1) This one is for students interested in user experience (UX), which is a hot field.
I've designed a video game to help students practice their deductive reasoning skills.
The video game is on the web at puzzle.sonjara.com. My hope is that students start
playing this video game regularly -- even habitually -- and thereby improve their
deductive reasoning abilities. But this isn't likely to happen just yet, because
visual effects are very plain, and there are no auditory effects at all.
I should mention that this video game may eventually become widely used in assessment,
since performance on this game has been shown to correlate highly with college GPA and
with math SAT score. I'll be doing more valid tests on it later this month.
Ram Neta
Philosophy
neta@email.unc.edu
(not presenting)
(2) This second project is for students who are interested in the role of logic in
reasoning. Consider the following argument:
If Joan is at the park, then either Jim or Mary is too.
Jim can't be at the park if Joan is not.
Mary will only be at the park if Jim and Joan are not both there.
--------------------------------------------------------
Therefore, if either Jim or Mary is at the park, then both of them are there.
Now, does the conclusion have to be true if the premises are? Answering that question
takes some thought, and some people will not be able to do it without help. But the
method of truth-tables provide a procedure that is guaranteed to answer that question
in a finite number of steps. This project is to build a video game that allows students
to use the method of truth-tables to figure out whether complicated arguments like the
one above are logically valid.
Ram Neta
Philosophy
neta@email.unc.edu
(not presenting)
(3) The third project is for students who are interested in ontology, or the logic of
categories. If all lions are mammals, and no lions are ungulates, then what, if anything,
does this tell us about the relation between mammals and ungulates? Ontologists can
answer such questions by using Venn Diagrams. This project is to build a tool that
allows students to build Venn Diagrams to help them understand how relationships among
some categories tell us about relationships among other categories.
D. Stotts
Computer Science
(I present)
COMP 523 Admin tools
lots of stuff to collect and generate
I need a web-based system that will collect, maintain, and present several forms
of information that are needed to create and manage the COMP 523 class.
a) Client and project information. We need to collect client information and information
about project ideas. This segment should gnerate a web page with a summary of all
project proposals with all relevant links embedded (word docs, PPTs, web sites, etc.).
Clients will be indentified by name, organization/department, email address.
This section will also provide clients with an explanation of the process of proposing,
as well as an explanation of client obgligations once a project is selected.
We want clients to fill out this information themselves via the web interface.
b) Team scheduling. Students will be able to select prefereces from the web description of
project ideas. Teams will be formed to maximize (as much as practical) student matches.
Unselected projects will remain in the database for use in following semesters.
c) Team management. This section allows the instructor to enter grades and evals for each
milestone a team must reach. It will be viewable by individual team (protected somehow).
Pozefsky, Diane
Computer Science
(not presenting)
CODIAD Plugin
Codiad is an open-source web-based minimalistic IDE framework.
My particular interest in it is for COMP 101. In COMP 101, we teach HTML, CSS, and
JavaScript. Students use Komodo Edit to build the pages and then use Filezilla to
transfer the files to server space that we provide. Komodo Edit has a very nice
interface, giving lots of help as to what commands and values are possible.
However, file transfer does not work as well. Students have an incredibly hard time
with the file transfer, regularly forgetting to upload files or moving them to the wrong
place (e.g., moving a whole folder instead of the contents of the folder).
We can run Codiad on the system where we provide the server space and avoid the file
transfer problem. Unfortunately, the "smart" auto-complete is not so smart. I would
like a plugin that matches the autocomplete capabilities of Komodo Edit.
-
Pozefsky, Diane
Computer Science
(not presenting)
Virtual Machine Management
COMP 523 teams have a lot of challenges in working as a team to build software.
We are looking at a lot of tools and techniques to streamline the process: use of
CloudApps for development, us of Github for a code repository, Jenkins or Travis for
continual integration and test.
One of the continuing problems is that the team members want to be able to develop on
their own machines. To make this work well, it is best if everyone is running in the
same environment. There are lots of tools that can be used: Vagrant, Docker, Virtual Box.
While it would be nice to support multiple technologies, the specific technology is less
important than creating an infrastructure to let people re-use configurations, change
them, save them , and share them.
The vision that I have is that one of the team members looks at the current inventory,
identifies a virtual machine that is close to what they need, downloads it, adds the
capabilities needed, uploads it, and then lets his (or her) teammates download the same
code. Bottom line is that this is a management system.
Marsha R Penner, PhD
Lecturer and Director for Undergraduate Research in Psychology and Neuroscience
Department of Psychology and Neuroscience
(not presenting)
1. I have some devices from a company called backyard brains (www.backyardbrains.com).
I use these devices in their simplest, basic form for science outreach. We take the
devices out to schools, science fairs, etc. However, I would like to use them to
collect data with my students, and with middle-school students to run a 'real'
experiment. This requires programming that is completely out of my grasp. Here is
one example (there are many, and I would be happy with anything):
LINK
I have other devices like the one in the example above. For example:
LINK
I would like to be able to download the data we collect in a simple format so that we
can look at it together in a simple format. I'd like for the output to be kind of
'canned' so no one feels overwhelmed. A simple set of figures and number to use.
I would also like to have the devices interface with objects. For example, use EEG
to play a video game, or make a drum beat. I currently use the mindwave device (above)
to fly a helicopter, but would like other options (e.g., make a drum beat):
LINK
2. I do canine cognitive work, and I would like to automate our experimental equipment.
We are attempting to build a version of an operant chamber for dogs (this is the rat
version):
LINK
In it, we have an automated feeder and some blinking lights. Currently, we are using
this automated feeder:
LINK
And we are using these lights (only because it has a remote control, we are not married
to them):
LINK
We have to manually activate the lights and the feeder at specific time points. This
makes it likely that our timing will sometimes be off. We have dreamed of having a
program that could:
1) activate the feeder at a specific time (e.g., every 8 seconds),
2) activate the lights at a specific time,
3) turn these things off at a specific times.
We would love to incorporate a button to push that would also be automated. And we wish
for a program that is flexible so that we could easily modify the timing for each device
being controlled by the program.