REThink 2015 Day 7, Welcome DUCA students, more MATLAB

We spent this morning with the students involved in the Drexel University Computing Academy, which I’ll now refer to as “DUCA.” I provided a link in the first sentence, and this looks like a great programs for students. From the website:

DUCA is a five-week, residential, summer computing program at Drexel University in Philadelphia, PA that promotes interest in information technology, computer science, business and digital arts & media. DUCA students do not focus on one specific area of computing. Rather, the program has a more holistic approach to education, exposing students to a variety of fields in computing through interactive, group projects.

What Students Explore:

  • Information Technology
  • Game Design I Game Development
  • Robotics
  • Computer Networking I Security
  • Social Media I Web Development
What Students Gain:

  • An authentic college experience
  • Critical thinking skills
  • Leadership skills
  • Friendship
  • Confidence

The program is open to current high school sophomores and juniors. Students within the United States and international students can apply.

The Drexel University Computing Academy Scholarship is available to incoming freshmen students who have participated in the summer academy program. Recipients will receive $1,000 for each quarter they are enrolled full-time in classes and provided they maintain a minimum 2.75 cumulative GPA. This award will not be applied in excess of 12 academic quarters and pays towards tuition only.

The Eugene and Meher Garfield DUCA Scholars Endowed Fund, established in June of 2013, provides funding for a full scholarship for one economically underserved high school student per year from Philadelphia, The Delaware Valley, or Southern New Jersey to attend DUCA. Selection of the recipient shall be determined by the Director of DUCA.

Bill posed this question to the group to preface today’s lesson: “How do we obtain a website, and how does it know how to get to us?” It seems like such a simple question, but the technology and protocols behind this concept are complex. It was interesting to listen to the students theories of how it could potentially work.

One of the next activities we completed was simple: Each group received 5 slips of paper. There is a person (Bill) who acted as a router. You had to get the message (one word per slip to make a sentence) to another group. That group would have to be able to successfully read the message. Most of the groups realized that the “packets” had to be numbered, but not many understood that the packets had to be marked to which group of packets they belonged.

Bill then briefly explained Wireshark, and how you can view your own packets, as well as other’s packets. (He left the malicious uses of Wireshark to the imagination…)

We also talked about how random number generators worked. Something I did not realize: The Nintendo random number generator (RNG) is based on the 1/60th of a second that you hit the “start” button. (60hz=60 frames per second). You can actually game the system, and hit it at a more optimal time to make you faster/have more strength.

We then moved on to a bit of cryptography. We talked about ciphers as they relate to SSL of the tcp/ip protocol. Bill mentioned Adi Shamir- the S in the RSA. He said he’d talk more about that later.

On the cryptography front, we looked at an Undirected Graph, with different nodes (vertices), and connected by line segments. We had to pick a number (which we picked 398 as ours), and put the number in unequal quantities into 10 spots. We then added the numbers attached to each node to make a new total. Bill was trying to guess our number without seeing our number. There are 3 nodes you can add together to get our original number, which was a really cool trick. Pictures:


Original Numbers (crossed out)



Picture 2- added notes together

This led to a discussion about the Public Key vs. Private Key, and how everyone has the public key, but only the website has the private key.

We also did a card trick. The card trick is a random matrix of flipped or not flipped cards. It’s essentially an exercise in binary. We set up a 4×4 matrix. The person who would be trying to guess the card comes over, and adds a column or row. They use this column or row to make it even. If there is one card flipped (1), they add a new card heads up (1), for a total of 2 (now even.) If there is an even number of cards in the row, the card is added face down. It’s a bit hard to explain in words, so here’s an image:


(This is with the row added, but before we flipped a card)

The card exercise prompted a discussion about parity, and ECC. One example is when a CD skips, it can use the information around it (oversampling) to fill the audio bits on the fly.

I spent the afternoon today working on more MATLAB tutorials. I also found out about Octave, which is “essentially” a GNU MATLAB.

REThink Day 6, Learning MATLAB



Today I spent the day learning as much as I could in MATLAB. I went through the built-in tutorials, and ended up figuring a lot of the commands out. Take a look at the above image- it’s for 3 different fake patients. The first two are from sample data, while the third is the data I made up for myself. Here’s the Strucdem.m file that I edited:

%% Create a Structure Array
% This example shows how to create a structure array. A structure is a data
% type that groups related data using data containers called fields. Each
% field can contain data of any type or size.
% Copyright 1984-2011 The MathWorks, Inc.
% Store a patient record in a scalar structure with fields |name|,
% |billing|, and |test|.
% <<strucdem_img01.png>>

patient(1).name = ‘John Doe’;
patient(1).billing = 127.00;
patient(1).test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];

% Add records for other patients to the array by including subscripts after
% the array name.
% <<strucdem_img02.png>>

patient(2).name = ‘Ann Lane’;
patient(2).billing = 28.50;
patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];

patient(3).name = ‘Jason DeFuria’;
patient(3).billing = 5000.00;
patient(3).test = [120, 50, 80; 90, 178, 20; 220, 210, 205];
% Each patient record in the array is a structure of class |struct|. An
% array of structures is often referred to as a struct array. Like other
% MATLAB arrays, a struct array can have any dimensions.
% A struct array has the following properties:
% * All structs in the array have the same number of fields.
% * All structs have the same field names.
% * Fields of the same name in different structs can contain different
% types or sizes of data.
% Any unspecified fields for new structs in the array contain empty
% arrays.

patient(4).name = ‘New Name’;

% Access data in the structure array to find how much the first patient
% owes, and to create a bar graph of his test results.
amount_due = patient(1).billing
title([‘Test Results for ‘, patient(1).name])
amount_due = patient(2).billing
title([‘Test Results for ‘, patient(2).name])
amount_due = patient(3).billing
title([‘Test Results for ‘, patient(3).name])

I did a lot of learning in the program itself, but this is a short post because it’s hard to translate that learning into words here.



REThink 2015 Day 5, Big Data



What is Big Data? From below powerpoint by Jeffrey Popyack and William Mongan

We spent this morning talking about Big Data. Big Data is such an integral part of computing, and will essentially revolutionize how we live as a species. Never before have we stored so much information, and we’re now figuring out ways to process this data. It’s super interesting, as it will completely change the way that we do science. Here’s some notes I took (I’ll post the .ppt below):

1 byte is needed to store a single letter, digit, or number “Big Data”= 8 bytes (ASCII)

 The text of Dr. Seuss’ “Green Eggs & Ham” is 3.3 kilobytes in size.


Hadoop Distributed Filesystem (HDFS)

An equal amount of work is not necessarily equal

Latency due to processor speed and distances

Parallel Computing


Big Data Powerpoint- William Mongan and Jeff Popyack

We then used JSMapReduce to try and sort how many states contain what the most common city/town name is. Here’s the site (well, webarchive) of JSMapReduce. The code we ended up using is:

function Mapper(jsmr_context, data)
// separate a line of data into separate entries …
var words_list = data.split(‘\t’);

// extract the city and state name and output as a pair
jsmr_context.Emit(words_list[2], words_list[5]);
function Reducer(jsmr_context, city)
states_map = {}
// (key,value-list) is (city,[state1,state2,state3,…])
var number_of_states = 0;
while (jsmr_context.HaveMoreValues())
var state = jsmr_context.GetNextValue();
// count how many times a new state appears
if( !(state in states_map) )
states_map[state] = 1 ;
number_of_states ++ ;
jsmr_context.Emit(city + ‘:’ + number_of_states) ;

After lunch (at the Shake Shack), I spent some time reading about MATLAB on the internet. Here’s some of the sites I used to learn the basics of MATLAB:



REThink 2015 Day 4, Meeting at Hahnemann, Finishing up Project Proposals

Kathy and I went over to the Drexel Medical School in Center City (Hahnemann) to talk about our projects and meet with our laboratory. It was a pretty full house, and everyone in the lab was really knowledgeable.

Kathy will be using Gazepoint Eye Tracker to obtain (X,Y) coordinates of eye movement and saccades. Here’s more about the eye tracker (from the manufacturer)-

I will be looking at Hematoxylin and Eosin tissue samples (Breast and Colon) to train the computer to recognize different cell parts (Lumen, Nucleus, Cytoplasm, Stroma).

Both of us will be using MATLAB to create/edit the programs for analysis.

In the lab, a lot of the focus is resolution of the slides. We had a lab discussion about all of the

See below for my project proposal. This one’s a short update as it’s now the 4th of July Weekend!


REThink Day 2, ISTE 2015 Conference in Philadelphia



Day 2 of the Drexel University REThink program was spent as ISTE 2015, which was in Philadelphia at the Convention Center. This was a great opportunity, as I had always wanted to attend this conference, and I was glad to have it paid for by Drexel.

I arrived earlier than usual, so that I could take full advantage of everything. The convention center was packed with things to do and see. I started out by wandering around the posters, which changed every few hours. I was interested in the morning, as many of the posters were about gamification. I had seen how powerful gamification was in my classroom in Massachusetts, when I had started to award microscope tokens for different class tasks.

I also attended a session about the power of a hackathon. I hadn’t thought about this before, but a hackathon (especially with what I want to do- environmental based sensors) could definitely have students focus intensely on this project. I was wondering if I could even run it as an in-school fieldtrip for those students interested.

I then wandered around the Playgrounds. There was a great playground that dealt with arduinos and raspberry pi’s. Another playground had a large focus on robotics. And the Google Apps Playground was pretty neat- I’m hoping I can get Google Classroom for my classroom (New school from before, so I had to revert to using Edmodo)

I went with Steve (who teaches in Delran) to Reading Terminal Market. It was my first experience, and was truly delicious with a ton of options.

I spent time in the expo hall, seeing as much as I could see. One of the most interesting booths I saw was “Storyboard That.” I also entered the “Microsoft Passport Adventure,” and ended up winning a Microsoft Surface 3, which is neat. Hopefully, I’ll be hearing soon about how to claim that.

I went to the “Debate” about coding with Hadi Partovi- which wasn’t much of a debate at all. Some good ideas were shared, but the stakeholders clearly wanted to code. The takehome message that I had was:

1. Where do we get money for computers in schools?

2. How do we train teachers who do not know how to code to learn code themselves to be able to teach it?

3. Does computer coding replacing the arts? Or can coding enhance the arts?

Another great day with lots to process.

Drexel REThink Program 2015, Day 1


Today was my first day of the Drexel REThink Program, offered by the Computer Science department of Drexel University. This program focuses on putting teachers in computer science laboratories to complete summer research, and infusing that summer research into our practice as a teacher in the classroom. The project I will be working on is based on Histology Project, which was my first choice. The description was:

Histology Image Analysis for Diagnosing Breast Cancer:
During this project, you’ll contribute to the development of diagnosing breast cancer through automated methods. Researchers have already created algorithms that analyze images to assess the stage and severity of the breast tumors. You will develop and apply software that extracts new geometric features from high resolution histology images and utilizes these features to predict medical attributes of a breast tumor.

We spent the first half of the day doing the typical introductory things, getting to know people. We then had an encoding puzzle (pictured above), to send an encoded message to another group and decipher their message. It was based on the .gif encoding scheme of pixels.

We then had a delicious lunch (pizza/salad/AMAZING wraps)…and I have no idea where they are from. I met Kathy, who is the partner I will be working with on the projects for the summer.

Kathy and I met with Dr. Mark Zarella, and heard more about our projects. Kathy was a part of this program last year, so she has experience with this laboratory and MATLAB, the program we will be using. Kathy will be working on coding the use of an eye tracker to follow pathologists eyes. The pathologists will be of varying types (1st year med, 2nd year med, junior pathologists and senior pathologists). This will allow better training of pathologists, because there may be a pattern that more senior pathologists use to determine whether someone has cancer. Ultimately, this pattern can be transcribed into machine learning to allow a machine to make this determination.

We then debriefed with the other groups at the end of the day to hear about everyone else’s projects. They are very interesting, and I’ll try to link you to their blogs as soon as I see them.

Tomorrow is the ISTE 2015 Conference!