Computer Science Research Projects 2016

Dina Benedetto
Dr. Douglas Blank
Computer Science

Janx: The Educational Robot

Background

The educational system has a lack of providing a hands-on projects that cooperate the basics of computer science and its relation to the real world. By documenting the steps of this research project and procuring a tutorial of how to construct, build, and write simple code, students will have the opportunity to explore the different fields of Computer Science.

Research

Issues being solved: People are oblivious to the different features that robots can provide, such as responding to various situations. Therefore, this research will focus on providing users with ways to understand the logic behind feedback, utilizing the surrounding environment.

The design will focus on having a minimalistic figure with maximum performance. The robot, named Janx, will be a picture capturing moving robot. As a robot, Janx will include a variety of features, such as the ability to measure the surrounding temperature, and providing computer feedback to the user.  Janx will consist of three 3D printed wheels and base, will have 2 motors, a camera, a temperature sensor, and a controlling unit. For the purpose of this research project, the controlling unit will be an Arduino board.

The hardware construction: Janx will have a triangular chassis. Two of three 3D printed wheels will be mounted on motor shafts at the back two edges of the triangle. Wires will be connecting the two motors to the board. The third 3D printed wheel will be a free floating wheel (like a shopping cart wheel), pinned to the front of the triangle. The camera will be mounted to the front of the triangle, adjacent to the temperature sensor.

The software construction:The base code will be written in Java Programming Language with a help of Arduino Software (IDE). The code will include functions that move, steer, capture video, capture pictures, and sense surrounding temperature, as well as the code necessary to provide the various feedback to the user.

Why is this useful? The final outcome of the research can be used in different schools to spike and introduce students to a new component of Computer Science. Not only will students learn how to build a robot, write code, but will also be able to implement their own ideas into the real world.


Tu Luan
Advisor: Dianna Xu
Department: Computer Science

Provably good quadrilateral mesh generation

Polygon meshes define the shape of digital objects like three-dimensional models. They are needed in all types of digital modeling and simulations. This projects focuses on the generation of quadrilateral meshes, which guarantees the quality of the meshes in terms of max/min angles and aspect ratios.

My research mainly focuses on the indirect conversion algorithm, which will convert a triangular mesh generated by a polygonal region to a quadrilateral mesh with bounded angles as well as aspect ratios.

If successful, this will be the first known algorithm that provides a provable bound on both angle and aspect ratio for a quadrilateral mesh.


Prakhya Malyala
Advisor: Professor Douglas Blank
Department: Computer Science

TypeScript : Enhancing the Web’s Popular Language

My overarching goal is to be able to implement the TypeScript language so that it can assist Computer Science educators and projects such as robot development, sensory measure of water use, and the control system of deep learning. I want TypeScript to be used to teach introductory computer science courses and to be used in computer science projects. TypeScript is a programming language released by Microsoft in 2012 that will be built into all browsers. TypeScript adds classes to JavaScript and compiles into JavaScript, which most websites employ. I aim to become an expert on the difference between JavaScript and TypeScript and how the use of the latter enhances the programming experience. I am using a hands-on approach to code different programs in the web browser. I am first creating a TypeScript notebook on the college’s Jupyter installation, a platform for interactive computing in multiple programming languages. The notebook is a JSON document with an ordered list of input and output cells which can have code, text, animation, games, graphs, and more. I will then help connect TypeScript to an API framework that we will build. API stands for application program interface and is a set of routines, protocols, and tools for building software. It specifies how software components should interact. This framework will tie different projects relating to artificial intelligence, simulation, and robotics research with a central protocol and system. TypeScript should be implementable to the web framework and used in the browser itself. I hypothesize that TypeScript is a current and efficient language that will augment the experience of coding with javascript, one of the three core technologies of World Wide Web content production. If this language is successfully usable with different projects, then it will benefit the computer science program at Bryn Mawr College. I test to see how the language can be used to complete the different projects and be integral to the API framework.

Flanagan, David (2011). JavaScript: The Definitive Guide (6th ed.). O'Reilly & Associates. ISBN 978-0-596-80552-4.

"API - Application Program Interface." What Is API. N.p., n.d. Web. 10 June 2016.


Name: Ilisha Ramachandran
Advisor: Douglas Blank 
Department: Computer Science

Sustainable living through technology

Development environments for Maker related boards such as the Raspberry Pi and Intel Edison can be fairly challenging to setup and use. This setup becomes even more challenging in an educational context. The aim of this project is to make these development environments more accessible and more effective for students and teachers by using a readily available, open source board such as the Intel Edison and explore building "real world" projects. I have chosen an Environmental Sensing project which includes tracking water usage and correlating that with temperature, humidity, and various other sensors. This is in an attempt to increase awareness about living a more sustainable lifestyle. The end goal of this project is not specifically to demonstrate the end use case, but to explore using different development tools, languages and online services. The actual end goal of the project will be to make concrete recommendations on “preferred” tool chains and platforms to enable students and teacher to rapidly develop projects and lesson plans. We will also provide a library for students to access and program different sensors through a web-based system. 


Alex Snow
Mentor: Douglas Blank
Computer Science

Explorations of Deep Learning in Robotics

A method of enabling machines to problem solve by exposing them to a collection of data and having them solve based on the data they learned, called deep learning, has become a popular research topic in recent years. For example, through deep learning, a computer can locate a certain object in a picture when commanded to if that computer was shown or trained with various images of the specific object. We will explore this by teaching an autonomous humanoid robot to reach out and look towards a fluorescent colored ball wherever the ball is within sight by training the robot with different images of the ball. To accomplish this task, we will write a series of code connecting the robot to an online deep learning system through a computer. From there, we will take images of the ball with varying surroundings, input them into the system, and hold the same ball in front of the robot. This will be a demonstration of deep learning in the field of robotics.


Ziyan Yang
Dr. Dianna Xu
Computer Science

Provably good quadrilateral mesh generation

Polygon meshes define the shape of digital objects and are needed in digital modeling and simulations of all types. In my summer research project, my mentor and I focus on quadrilateral mesh construction of 2D polygons. We have existing quadtree-based quadrilateral mesh construction algorithms to create a quadrilateral mesh of simple polygons that can have holes. Our existing algorithms guarantee the minimum/maximum angles and aspect ratios of elements of mesh but do not mesh a polygon completely: there still exist gaps between edges of original polygons and our constructed mesh boundaries. Our next step is to smooth the boundaries of mesh to make them as parallel as possible to the polygon edges. First, we need to classify all the possible mesh boundaries and figure out different ways to optimize them. Then, I will modify the codes to test our assumptions and the solutions for smoothing. Finally, after optimizing the mesh boundaries, we can start think of how to make up the space between mesh boundaries and polygon edges. It may be useful to add buffer zones and re-mesh the space to guarantee our original minimum/maximum angles and aspect ratios because these criterion are significant in determining the quality of the mesh.