Reflection

Following the fall semester of my junior year, I realized that I only had a few classes left to complete my Computer Science major. I also noticed that many of the electives I had been looking at to fill my last three semester fell within the ISS department. At first, I began looking at the ISS Certificate as a way to pick up an extra degree from the classes I was already planning to take. But, as I read more about the Capstone, I became more excited about the program for this additional learning opportunity it provided. It seemed like an open-ended environment in which I could explore some new technologies and end up with an interesting product as a result.

Ultimately, I was pretty disappointed in my Capstone experience. I worked primarily in technologies that I had worked in before and never felt wholly engaged in the project. Additionally, we didn’t end up creating much in the way of a functioning end product. While we ran into many obstacles along the way that continuously slowed us down with pivots and delays in progress, I place the majority of the blame on myself for this disappointment. While I had some general ideas of what technology I wanted to work in, such as AR/VR, I did not put enough time into thinking of a more concrete project in the first couple weeks. When I did at least come up with a concept that I was interested in, I was unable to convince my classmates that it was a worthwhile project. After all this, I was too worried about my ability to create an interesting project on my own, instead opting to go with the idea that the rest of the group had generally agreed upon. Were I to take this Capstone again, I would invest more time in the beginning to ensure that I was working on a project that I found exciting, even if that meant separating from the rest of the group.

Despite my experience in the Capstone class, I thoroughly enjoyed the classes that I took in my pursuit of the certificate. The one exception to this was ISS 110, as it almost entirely overlapped the material from ISS 255, which I had already taken. Overall, these classes provided an excellent means of pursuing the intersection of technology and creative expression, an interest of mine that is not present in the standard Computer Science curriculum. I only wish that I had discovered the department earlier. In terms of my future, my pursuit of this certificate hasn’t effected my immediate plans. However, it has certainly confirmed my passion for creative applications of technology and coding. I will at least continue to play with some of the skills I have picked up in these classes as a hobby. Perhaps this will turn into a career one day.

Capstone Experience

For the Capstone, we wanted to do a project the included everybody, but did not build off of an existing project. However, while many of us had a general idea of the goal we would like to achieve or the technology we would like to work with, nobody had a concrete idea for the first couple weeks. As a result, we got off to a slow and somewhat disorganized start before finally deciding to create an improved tool for academic planning. This would include a more intuitive and functional “What If?” report, a visually appealing class search with more abstract filters, and data visualizations that explored some of the nuances of Duke’s course offerings. What we found were dozens of roadblocks.

My primary job was the creation and population of a database, but just acquiring the necessary course and class data was incredibly difficult. After deciding manually inserting each course into the database using the Undergraduate Bulletin would be far too tedious, we sought the registrar’s help. While they were able to provide some class data, the response time was far too slow and data too limited to be feasible. Finally, we were able to discover an API that we could query to obtain all the data we needed.

Now that the data was on hand, however, I had to decide where we would hold the data and how it would be organized. After looking into MongoDB and MySQL, I finally settled on Airtable, as it is highly dynamic, has a beautiful and highly functional online user interface, and makes the creation of a relational database easy. It also automatically generates an API to pull, add, and modify data, which would make future integration into a website simple.

With the hosting platform settled, I still had to design the database to best organize the data. Above is an early UML Diagram showing an object-oriented approach to the data. The final implementation is slightly different, as a “Class” is now a specific instance of a “Course” and function calls were moved to the javascript behind the website.

In addition to creating the database, I was in charge of researching and organizing the logic for the new “What If?” report. This required looking through the websites of each department to determine all possible tracks for completion of each major, minor, and certificate that Duke had to offer. After deciding that the exceptions and differences between departments were too great to realistic implement every possible degree, we settled on only implementing the Computer Science, Visual Media Studies, Public Policy, and Information Science & Studies departments. I then wrote pseudocode for the logic that would determine whether each requirement was satisfied or not.

Thematically-Related Electives

For my electives I took ISS 255: Humanities Text Mining and Meaning, ISS 248S: Editing for Film and Video, and ISS 294L: Interactive Graphics.

Humanities Text Mining and Meaning

This course was my introduction to the ISS department, as I took it in the spring of my junior year. For the first half of this course we were introduced to a great deal of theory behind information science, computational media, and human language. While we were completing reading and reflecting on them with short essays, we were also given lab assignments to learn Python and shell scripting. After learning the basics of these languages, we started working within Natural Language Processing (NLP) packages. In the second half of the semester, we worked entirely on a final project, the purpose of which was to investigate any societal issue using text mining and NLP techniques. For our project, my group scraped UFO reporting websites, such as the National UFO Reporting Center (NUFORC) After a significant amount of cleaning, we were left with a database containing thousands of user-generated UFO reports from all over the country, dating back to the 1600s. We then used NLP tools and data visualization tools to analyze these reports, searching for patterns that could help reveal who made these reports and why the narrative of UFO sightings had captivated American society.

Editing for Film and Video

This course, taken in the fall of my senior year, provided an interesting intersection of creative and quantitative thought. After being exposed to the theory and techniques of film editing, we began watching films that were landmarks in the history of editing. Amongst these films were Man With a Movie CameraThe Birth of a Nation, and Seeking Asian Female. We discussed a wide array of film genres including silent films, narrative films, and documentaries. Throughout the semester we also did a significant amount of editing ourselves. For the first few assignments, we edited film and manipulated audio that was given to us, both in narrative and documentary styles. For the final project, I decided to create a hype video for the Duke University Drumline. After researching hype video techniques and watching examples online, I was able to figure out what works and what doesn’t. I then spent several weeks acquiring footage of rehearsals and performances, both finding footage taken by others and recording some of my own. While I wanted to create a quality video that invoked excitement, I wanted to satirize the genre at the same time. To aid this, I had our drum instructor record a dramatic voiceover to accompany my video, in which I cut together both serious and facetious clips.

Interactive Graphics

While I am still in this class, it is easily my favorite course that I have taken as a part of the ISS Certificate. This is primarily because it allows a nearly unlimited amount of room for creative freedom. Meanwhile, this creativity is being expressed through code and algorithmic methods. Thus, course was nearly a perfect blend of these two passions of mine. Because much of the class early on was spent learning the basics of programming, I was able to jump ahead and dive deeper into the javascript library that we were working with, p5.js. We  began the class with more abstract pieces before moving to data visualization. To end the semester, we are working with cybernetics, which involves creative interaction with computational systems. For my final project, I have connected my electronic drumset to create live artworks as I play. Using Processing.js, I am able to read in MIDI notes as I play them. Based on the pad that is hit, velocity behind the hit, and density of notes, I am able to directly interact with my sketch and create a work that reflects what I am playing. Check out my course portfolio to see my work from throughout the semester.

Information Theory/Methods

For my Information Theory/Methods requirement I took COMPSCI 260: Computational Genomics in the fall of my senior year. This class began with a crash course in basic biology and molecular biology concepts and history. That was followed by a quick review of Python and algorithmic concepts. With those foundations established, we then began to dive into their intersection. Every two weeks we would receive a problem set that addressed new algorithms within a biological context. Each problem set required writing and testing code that solved smaller versions of real computational problems in the field of genomics. This code would be accompanied by written explanations of the solutions we found and what they mean in the context of the given problem.

ISS Gateway Experience

For my Gateway Experience, I took ISS 110: Information, Society, and Culture with Patrick Herron in the fall of my senior year.  In the first half of the semester, we learned about information science and the connections between  information, society, culture, and various computational media. In the second half of the class, we worked on our final projects, the topic and final product for which were widely open ended. My group decided to create a business proposal for an online platform for local artists, cafes, and art enthusiasts to connect. This would start as a social platform to connect artists with venues that would like to display local art, and eventually evolve into an online marketplace to empower local artists and help them gain recognition. As part of this project, we also implemented a functioning demo of the website HungryArtist.

Introduction

Hi everyone! My name is Stone and I’ll be graduating this spring with a major in Computer Science. Outside of the classroom, I am a section leader and snare player in the Duke Drumline, a drum set player in the Pep Band, and the president of Duke Club Running. I am also the project manager of the Book of Fortresses project in the Wired Lab, a space for pursuing research in digital art history and visual culture. (You can check out the lab’s website for more information on my project.) Following graduation, I will be working in New York City as a software engineer at Yext.

As a CS major, I came into the ISS Certificate program with a strong technical background, including work with software engineering and web development. In addition, summer internships at the Michigan Center for Molecular Imaging and Garmin have added experience in research computing, embedded systems, and large-scale software projects. Over the past five years, I have worked extensively in Java, C, and Matlab. I have also picked up C++, Python, HTML, CSS, and Javascript, amongst others. Beyond the CS department, I have also acquired skills in a wide variety of technical applications such as film editing, 3D modeling, GIS, and text mining.