I'm Tim and I work for a small software company called Ringtail Design where I focus on creating great software user experiences through thoughtful user interface and interaction design, plus some cool code. Previously, I was a full-time software engineer and three-time summer intern with the Johns Hopkins University Applied Physics Laboratory. I have also spent time tutoring less experienced computer science students at the UMBC Computer Science Help Center, and would one day like to teach college-level computer science.
My areas of interest include user interface development, web development, data visualization, human computer interaction (HCI), user experience analysis and improvement, accessibility technologies, kittens, and learning new programming languages.
There really is no place like ::1
Tim lives in Arlington, VA. He enjoys making software and systems more usable, expressing ideas with verbosity, exploring cities on foot, and posing for pictures with other people's pets.
Timothy E. Burke
|Summary||Currently exploring the User Experience and Data Visualization domains of Computer Science as a User Experience Developer with Ringtail Design, and formerly as a Software Engineer and Software Engineer Intern with the Johns Hopkins University Applied Physics Laboratory. Experience developing and updating desktop tools, web applications, and database systems. Interests include big data analytics, web/mobile application development, human computer interaction, user experience design, and data visualization.|
B.S. Computer Science, University of Maryland, Baltimore County
3.48 GPA, Completed January 2012
Coursework: Database Systems, Mobile Platform Development (iOS), Artificial Intelligence, with graduate-level Data Visualization, Research Methods for Computer Science, and Distributed Systems.
User Experience Developer, January 2013 - Present
I make cool stuff for touchscreens.
Johns Hopkins University Applied Physics Laboratory
Software Engineer, February 2012 - January 2013
Software Engineer Intern, June 2009 - February 2012 (FT Summers, PT during semesters)
University of Maryland, Baltimore County
Computer Science Help Center Tutor, September 2011 - December 2011
Assist students with theory, programming concepts, and syntax issues for introductory and intermediate computer science courses. Specifically, provided help with Introduction to Computer Science in C, Computer Science I/II for Majors in Python and Java, Data Structures in Java, Computer Organization in C and X86 Assembly, and Principles of Programming Languages in C, LISP/Scheme, Perl, and Python.
Libraries/APIs: jQuery/jQuery UI, iOS SDK 4, ASP.NET/ASP.NET MVC.
IDEs: Visual Studio, Xcode, Eclipse, NetBeans, Nano.
Databases: Microsoft SQL / SQL Server Management Studio, Oracle 10g / SQL Developer.
|Honors and Awards||
|Training and Conferences||
University of Maryland, Baltimore County: Master of Science, Computer Science (Incomplete)
|Graduate Computer Science Electives|
|CMSC636||A||Data Visualization **||Dr. Penny Rheingans|
|CMSC601||A||Research Methods for Computer Science **||Dr. Tim Finin|
Graduate Computer Science Core
|CMSC621||A||Advanced Operating Systems||Dr. Kostas Kalpakis|
University of Maryland, Baltimore County: Bachelor of Science, Computer Science
|Undergraduate Computer Science Electives|
|CMSC636||A||Data Visualization *||Dr. Penny Rheingans|
|CMSC601||A||Research Methods for Computer Science *||Dr. Tim Finin|
|CMSC498||P||Independent Study in Computer Science for Interns and Co-op Students||Dr. Marie desJardins|
|CMSC491||A||Special Topics in Computer Science: Mobile Platform Development||Dan Hood|
|CMSC471||B||Introduction to Artificial Intelligence||Dr. Tim Oates|
|CMSC461||B||Database Management Systems||Dr. Kostas Kalpakis|
Undergraduate Computer Science Core
|CMSC441||B||Design and Analysis of Algorithms||Dr. Richard Chang|
|CMSC421||A||Principles of Operating Systems||Dr. Yelena Yesha|
|CMSC411||B||Computer Architecture||Dr. Jon Squire|
|CMSC345||A||Software Design and Development||Dr. Susan Mitchell|
|CMSC341||B||Data Structures and Algorithm Analysis||Mitch Edelman|
|CMSC331||A||Principles of Programming Languages||Dr. Charles Nicholas|
|CMSC313||A||Assembly Language and Computer Organization||Dennis Frey|
|CMSC304||A||Social And Ethical Issues In Information Technology||Richard Wilson|
|CMSC203||B||Discrete Mathematics||Paul Artola|
|CMSC202||A||Computer Science II for Majors||Shawn Lupoli|
|CMSC201||A||Computer Science I for Majors||Shawn Lupoli|
Abstract: Creating a perceptually distinct coloring for visualizing large data sets with one or more related properties can be difficult, even for a domain expert. To aid in the color selection process, we present a method for selecting an optimized coloring for these data sets by applying a force-directed algorithm. The method we have implemented selects hue values using a constraint graph derived from relationships within the data. This optimal set of hues can then be converted to colors using any color space and used to color the data points in a visualization. This method is demonstrated through a geographical domain problem involving school districts, specifically depicting elementary to middle to high school feeder patterns. Further, the method is applied to two different sets of constraints for creating visualizations of directory structures: file size relationship constraints and dominant file type constraints.Download paper.
Abstract: Menus in graphical user interfaces have existed for over two decades and have largely been variations on the linear drop-down menu paradigm. In many operating systems and software packages, menus are unchanging and non-adaptive, forcing users to memorize menu command layouts in order to find desired commands. Research has been conducted to allow menu systems to become adaptive to single users over time or to dynamically detect a user's expertise level in order to reorganize or alter the display of menus to improve command selection and execution time. More recently, devices utilizing touch-screen, multi-touch, and pen-based input have gained popularity, yet the linear menu paradigm, which is not as well suited for those input modalities, has persisted. An alternate menu paradigm, radial marking menus, has emerged as one possible alternative to the linear menu for touch and pen-based input devices. The purpose of this study is to explore two previous methods for improving performance (command selection and execution time) of linear menus and adapting those methods to radial marking menus. Specifically, exploring one method for adapting to a single user over time, and another utilizing machine learning techniques to dynamically detect a user's level of expertise.Download proposal.
As part of a two-person team, design an iPhone/iPod Touch app that provides an interactive, green alternative to paper conference guides. Information on all presentations, performances, speakers and sponsors is included in a searchable application. Events, speakers, and sponsors of interest can be marked favorite for later exploration. A map of the various venues for the conference is included, with annotations to help find the venue for presentations quickly and easily.Detailed project description.
As part of a two-person team, design a reasoning agent to play the game Mastermind. Implemented by creating a genetic algorithm, mutating possible peg and color combinations, and applying constraints to the degree of mutation from generation to generation based on feedback from the gamekeeper. Additionally, successive pruning of the color search space for each peg based on feedback from the gamekeeper further restricted the number of guesses necessary to reason the final answer.
Serve as the team lead and facilitator for a project team of four students to develop a product that allows students to plan potential schedule paths from any point in the undergraduate career to the student's graduation by following major and minor prerequisites, cross-major class equivalencies, and general education requirements. Contribute to the production of all necessary software engineering documentation, including software requirements, system design documentation, user-interface design, code inspection, testing reports, delivery documentation, and customer administrator documentation.
Design and implement, without imparting any previously known strategy, a learning Tic-Tac-Toe rational agent and decision-making algorithm that improves in performance after each game played. Achieved a noticeable improvement in win ratio against a "dumb random" agent after 500 games, and which achieves a near human-level proficiency of 85-90% win and 5-7% draw rate after approximately 11,000 games played against the same random agent.