Week Two
Monday, May 24th:
Presented our overview of the project and reflections on the first week
Created the project website and started posting initial materials online
Tuesday, May 25th:
Had initial online meeting with Blake, Shelnesha, and Dr. Ming
Set up LaTeX on my computer as well as on overleaf.com
Created initial project on overleaf to get through the basics of the website
Read and reviewed the first chapter of “language implementation patterns”
Wednesday, May 26th:
Read the second chapter of the ANTLR4 reference book
Got more familiar with some aspects and ideas of ANTLR
Looked over IEEE LaTeX guide
Had meeting with team
Thursday, May 27th:
Had weekly Thursday meeting where we introduced initial slides of declarative and functional programming. Discussed the ways that different programming languages work on a lower level. Investigated the differences between declarative and imperative paradigms.
Re-read the chapters from the ANTLR reference book and “language implementation patterns” book
Got started working on assigned readings from the earlier meeting.
Friday, May 28th:
Read over “Can Programming be Liberated from the von Neumann style”
Looked up and researched supplementary documents and references to get a better understanding of this reading and its contents
Answered questions for first homework on assigned reading
Created weekly presentation to share on Tuesday
Week Three
Tuesday, June 1st:
Had weekly group meeting where we presented our work and learned more about what the other groups are doing and what pace they are moving at.
Looked back over the first homework and reading in order to clean up the homework and add more where I may have missed details
Had Tuesday group meeting where we went over a few key ideas and were introduced to a new reading
Wednesday, June 2nd:
Read the first three chapters of the new reading, “the little schemer”. This program introduced practical, hands-on work with the scheme language
Downloaded and installed the Racket language onto my computer
Got started working the language and got hands-on experience
Went over the exercises in the book and worked through them on my own computer with my own installation of the racket language (which is very similar to the scheme language covered in the book)
Thursday, June 3rd:
Had weekly Thursday meeting with Dr. Ming where we discussed topics that we read in “the little schemer” book
Discussed core ideas of functional languages, emphasizing that functional programming seeks to be stateless
Connected functional paradigm to big data. We began to look at how functional programming works for DVf as a special purpose language focused on big data
Got more hands-on experience working with the Racket language. Implemented ideas that were discussed in the previous meeting.
Friday, June 4th:
Read over the new paper introduced this week, “MapReduce: Simplified Data Processing on Large Clusters”. While reading, I payed particular attention on the key benefits functional programming can have on simplifying complex problems, which connects to DVf.
I read over and answered the questions related to the paper reading. Where necessary, I went back through the text to gain a deeper understanding of the reading.
I reviewed my work for the week and created the presentation for Monday. This specifically included synthesizing the ideas in MapReduce so they could be presented on Monday.
Week Four
Monday, June 7th:
Had the weekly group meeting where we presented the work we did over the past week. Also learned more about what the other groups are working on and how their research is proceeding.
Went over the past homework assignment to get one final look at the ideas covered over the past week.
Looked ahead at the functional programming concepts to be covered throughout the week. This includes looking at how functional languages handle loops while remaining stateless through recursion.
Investigated the advantages/disadvantages of recursion
Tuesday, June 8th:
Had weekly Tuesday meeting with Dr. Ming where we formally looked at looping in functional languages, looking at both advantages and disadvantages
Used hands-on experience in order to reinforce the ideas covered during the meeting
Investigated how recursion can take up stack memory and could lead to a stack overflow error
Researched alternative ways of looping, specifically looking into tail recursion and the improvements that tail recursion brings with it
Wednesday, June 9th:
Continued looking into functional programming design/ recursion
Continued with hands-on experience
Thursday, June 10th:
Had weekly Thursday meeting with Dr. Ming where we formally looked into tail recursion and its advantages.
We furthermore looked at the “reduce” function in Scheme/Racket, which is implemented as the “foldl” and “foldr” functions.
Went into the racket language and got hands-on experience with the “foldl” and “foldr” functions. Specifically, I looked at how the function works and in what order it will evaluate a list of elements.
From this hands-on work I was able to see the recursive nature of the reduce function.
Friday, June 11th:
Had another meeting with Dr. Ming where we looked at memory management in functional languages.
Furthermore looked more in-depth on the “foldl” and “foldr” functions. Here I was able to formalize what I had been looking at with my hands on work the day before.
Looked at anonymous (lambda) functions in Scheme, and how they are used in practical examples.
Began to look into compiler construction and implementing one’s own language.
Looked at some basic code to set up a parser for a very simple language.
Received and began to look at the next paper to read "A Security Framework for Scientific Workflow Provenance Access Control Policies."
Saturday, June 12th:
Fully read over the paper that I began to look at the day before.
Did some research in order to get a better understanding of the paper. This specifically includes looking into provenance as it pertains to data. Furthermore, this includes getting some background knowledge on access control and how it can relate to provenance.
Read over and responded to the homework questions posted along with the reading. Here, I used the questions to clarify parts of the reading that I was still unsure about.
Created the weekly presentation for Monday, specifically focusing on once again synthesizing this paper into a few slides that could be succinctly presented to the group.
Week Five:
Monday, June 14th:
Had weekly group meeting where we presented our work and learned more about what the other groups are doing and how their research is developing.
Read over and formally submitted the homework assignment, once again revisiting some key topics from the research paper.
Looked more into how the topics of the research paper specifically connects to the DVf project, and the importance of data provenance in this research.
Reviewed and answered some problems posed by Dr. Ming during the last group meeting
Looked over some ideas related to compiler construction that I had already read in preparation for the next meeting, where we will discuss compiler construction using ANTLR in more detail.
Tuesday, June 15th:
Had weekly Tuesday meeting with Blake and Dr. Ming
We covered functional programming ideas such as utilizing lambda functions to make more flexible functions
Looked more into ideas covered within the presentation such as a stack overflow security attack
We looked at some basic compiler implementations, and I looked back over them to reinforce my understanding of these ideas
Wednesday, June 16th:
Looked back over ideas covered from the previous day
Worked on the project abstract for the mid-sure program
received feedback from Blake and Dr. Ming on the current abstract
Made revisions based on that feedback
Thursday, June 17th:
Had a meeting with Blake where we covered ANTLR and he gave us some practical examples of using ANTLR
Downloaded ANTLR onto my machine
Did some research after the meeting to get more familiar with ANTLR and compiler construction
Finalized the abstract for the mid-sure presentation, which was later submitted, making sure it got the point of our research across while staying within the requirements outlined on the website
Friday, June 18th:
Briefly looked more into ANTLR and how to use it
Looked into some basic ANTLR programming in order to get more familiar with it
Received a new paper from Dr. Ming titled "Role Based Access Control"
Read over the paper looking to connect it to the previous paper on provenance access control
Saturday, June 19th:
Read back over the RBAC paper with the homework questions given by Dr. Ming in mind
Answered the questions posted, researching ideas/concepts I was unsure about or needed more information on
Worked on the midterm presentation for the next week
Looked back over work from past weeks in order to put together the presentation
Week Six:
Monday, June 21st:
Had midterm presentation where we presented our work on the project so far.
Also learned more about what the other groups are working on and how their research is proceeding.
Finalized the homework before submitting it
Did some research on the concept of hierarchies in RBAC to get a better understanding
Tuesday, June 22nd:
Looked back over ideas from RBAC in order to get a better idea of where we are so far in the project
Looked more into the management model presented in the RBAC paper, as I felt there were still some parts I did not understand
Wednesday, June 23rd:
Received a new paper from Dr. Ming to read regarding a decentralized label model for system security
Did an initial read over the paper, trying to identify main ideas that can be pulled from the paper
Did some outside research on the ideas discussed within the paper, specifically the idea of declassification
Tried to connect some of the ideas to past readings
Thursday, June 24th:
Had weekly meeting with Dr. Ming where we discussed the paper and were given some key points covered in the paper (noninterference, decentralization)
Read back over the paper with these key points in mind
Looked more into noninterference and looked at how a few papers define noninterference
Answered the initial questions Dr. Ming posed to us during the presentation
Friday, June 25th:
Had another meeting with Dr. Ming where we discussed more about the paper and the conclusions drawn in the paper
After the meeting, I went back through the example posed in the paper and worked through the example on my own in order to make sure that I understood how the decentralized label model should work
I also looked at the JIF language examples to see a practical implementation of the model
Got started on the homework five questions associated with this reading
Saturday, June 26th:
Answered more of the homework five questions, specifically these questions involved some research into how RBAC and the decentralized label model compare to each other, and how they are different
Looked into other possible implementations of the decentralized label model, looking at other papers that reference the paper we read this week
Created the presentation for Monday, recapping the work we have done throughout the week
Week Seven:
Monday, June 28th:
Had weekly meeting with the entire group, where we presented our findings and work from the past week.
Also learned more about what the other groups are working on and how their research is proceeding.
Looked more into how a decentralized model could work with RBAC, as DVf will seek to make use of both of these
Looked into a cryptographic implementation of the decentralized label model
Tuesday, June 29th:
Reviewed some ideas on how provenance control works with RBAC, specifically continuing to relate the decentralized model to RBAC
Looked into the java information flow language, looking to see technical aspects of that language's static analysis of programs
Wednesday, June 30th:
Began to look into machine learning models in preparation for our investigation into machine learning
Reviewed some machine learning topics I was already familiar with, specifically looking at types of models
Read about the basics of neural network design and implementation
Thursday, July 1st:
Had meeting with Blake where we covered machine learning, and looked at what types of models DVf makes use of
Covered key machine learning topics, such as distinction between supervised and unsupervised learning
Looked more into tools and libraries mentioned in the meeting: such as R, MATLAB, and Python packages (TensorFlow,SKLearn, etc.)
Looked at related educational resources for machine learning shared by Blake
Friday, July 2nd:
Had meeting with Dr. Ming where we went over the machine learning as it is used in DVf
Introduced to our next paper, which covers security concerns within machine learning
Looked into some outside resources regarding ML security, specifically looking at some of the more well known attacks on ML models
Saturday, July 3rd:
Read the paper on machine learning security shared by Dr. Ming
The paper specifically highlighted key security concerns, and different security solutions depending upon the machine learning model
Looked more into the Intel SGX platform, and competing platforms which seek to secure cloud data
Answered questions associated with the machine learning paper, which highlighted the security implementations
Began work on presentation for next week
Week 8:
Tuesday, July 6th:
Worked more on finalizing the presentation for Thursday
Looked at the Deliverables folder shared by Dr. Fu, and compared the contents of those to what we have done so far
Looked more into hardware level security solutions that could be used by DVf, and more specifically looked into how these might be implemented on a cloud platform like AWS or Google Cloud
Wednesday, July 7th:
Looked into how some of the security concerns raised in the past paper could be addressed by DVf
Specifically, considered how DVf might be able to work on sanitizing inputs or work on the sensitivity of a given model
Thursday, July 8th:
Had finally weekly presentation where we presented the work we had been doing the past week, and saw the work other groups have done over the past week
Took a step back and looked at DVf as a system, thinking specifically about the topic of "design-for security"
Considered how, from a design standpoint, DVf could implement the security topics covered
This includes both at the language level as well as at the cloud-based infrastructure level
Friday, July 9th:
Had a meeting with Blake and Dr. Ming where we covered more technical details of DVf's design and implementation
With these details in mind, I was able to apply some of my ideas from yesterday with more granularity because I gained a better understanding about the details regarding DVf's implementation
Worked on the given assignment, which is to design a series of questions regarding DVf's implementation
These questions helped me think through the fine details of the system's implementation
Also helped me see what areas I am still unsure about, and where I need more explanation
Week 9:
Monday, July 12th:
Reviewed key ideas of DVf
Did more research into topics related to my questions
Signed up for presentation on the 21st
Identified more areas of uncertainty
Tuesday, July 13th:
Had meeting with Blake and Dr. Ming where we went over the previously asked questions
Began to draft the research paper that will be one of our deliverables
This includes creating and writing the introduction, background, and related work sections
Went to invited talk on cloud security
Wednesday, July 14th:
Had research meeting with the DVf team where we covered how DVf works in more detail
This includes how DVf will use Docker and services like AWS for cloud computing
This overview helped make some aspects of the project more clear to me
Revised the first three sections of the drafted paper
Looked more into features of DVf's implementation like Amazon ECS
Thursday, July 15th:
Began looking at initial topics for the approach section of the research paper
Looked at some of the research literature regarding Intel SGX and Docker in terms of cloud security
Considered how DVf could work around these potential vulnerabilities of Docker using TEE's like SGX
Went to the invited talk about "rubber duck" USBs
Friday, July 16th:
Had meeting with Blake and Dr. Ming where we talked more about the approach for the research paper
Discussed specifically the use of labels/ administrator control in DVf's system
Worked on writing the approach section of the paper, considering ideas talked about over the past few meetings
Went to invited talk on industrial security
Saturday, July 17th:
Continued to work on approach section of the paper
Created an example to guide the arguments made in this section
Week 10:
Monday, July 19th:
Finalized the research paper, specifically the approach and conclusion sections
Met with Blake and Dr. Ming to discuss the paper and plan for this week
Worked on the poster for our research, ensuring that it presented key ideas from our research
Tuesday, July 20th:
Created presentation that we would use for presenting our research on Wednesday
Met with Blake and Dr. Ming to rehearse our presentation for Wednesday
Revised slides and presentation with the feedback we recieved
Finalized our poster presentation
Wednesday, July 21st:
Went to REU conference for Oakland University
Presented our final presentation and poster to the rest of the group
Saw the work that other group did over their REU experiences
Looked over requirements for final deliverables
Thursday, July 22nd:
Went over final requirements for deliverables
Placed the presentations/ posters/ writings into the shared drive for deliverables
Wrote up required information sheets
Looked over requirements for mid-sure material that will need to be uploaded
Friday, July 23rd:
Ensured that all final deliverables have been submitted to the shared drive
Began exit surveys
Ensured all necessary materials for mid-sure were prepared to be submitted