Archives for July 2015

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:

IMG_4859

Original Numbers (crossed out)

IMG_4858

 

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:

IMG_4860

(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

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];
patient

%%
% 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

patient(3).name = ‘Jason DeFuria’;
patient(3).billing = 5000.00;
patient(3).test = [120, 50, 80; 90, 178, 20; 220, 210, 205];
patient
%%
% 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’;
patient(4)

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

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

bigdata

 

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

Hadoop Distributed Filesystem (HDFS)

An equal amount of work is not necessarily equal

Latency due to processor speed and distances

Parallel Computing

JSMAPREDUCE

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:

http://www.math.utah.edu/~wright/misc/matlab/matlabintro.html

http://www.cs.dartmouth.edu/~mckeeman/references/matlab101/matlab101.html

http://www.yorku.ca/jdc/Matlab/

https://www.cds.caltech.edu/~murray/wiki/images/4/45/Matlab_tutorial.pdf

http://aar.faculty.asu.edu/classes/eee480S12/matlab_primer.pdf

 

 

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)- http://www.gazept.com/

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!

projectproposal

REThink Day 3, Binary, Hex, and Project Proposals

introcs

We spent this morning as a group covering intro to Computer Science. Many of the people here teach computer science, so they completely understand these concepts. For me, it was a day of a lot of learning. We used Dr. Jeffrey Popyack’s website as reference material for the learning.

I learned about binary numbers, hex, and converting binary to hex. We demonstrated our knowledge on a lab. We spent time creating banners from our letters encoded in hex. I made one with my name.

Portrait:

IMG_4833

 

 

Landscape:

IMG_4834

 

We also talked at length about the new AP CS Principles course. This new Advanced Placement course will take place in the 2016-2017 school year. For a lot more resources, look here.

We spent the afternoon working on project proposals. I will be sharing mine tomorrow.