A senior at Duke University studying Computer Science and Electrical & Computer Engineering. Ryan is part of the online team behind Duke's Daily Newspaper, The Chronicle. He helped create various projects including a NCAA March Madness Bracket, that was used to showcase the teams, game scores, and the progression of the tournament. Most recently, he has started working on a scheduling app that students will be able to utilize when enrolling for courses. He also competed in two hackathons this past year, building Artgenius (2nd place overall) and iDiscover (Audience Choice Award).
Over the 2014 Summer Ryan interned with Zynga, as a Software Engineer working on the Mobile-Web connected space for the FarmVille 2 Franchise. In the past, Ryan served as Web Master of his Duke House, Maxwell, and redesigned its website. In his spare time, Toussaint likes solving brain teasers, playing tennis and going to Duke Basketball Games. He is also an Eagle Scout.
Ryan hopes to create his own start-up.
"Engineering can be used to solve society's problems."Software Design & Implementation
Language: Java
Techniques for design and construction of reliable, maintainable and useful software systems. Programming paradigms and tools for medium to large projects: revision control, UNIX tools, performance analysis, GUI, software engineering, testing, documentation.
The course concluded with a final group project -- our group developed a platform that enabled the average person to create real-time strategy (RTS) games from a GUI, without writing any code. The player was able to switch between two modes (battle and wandering), travel across multiple terrains, interact with non-player characters (NPCs), acquire key-items (that could be used to unlock special features), collect monsters, level up, and battle NPCs and wild monsters. Sample games included our own version of Pokemon, and a simulated Duke basketball game.
Operating Systems
Language: C, Java
Basic concepts and principles of multiprogrammed operating systems. Processes, interprocess communication, CPU scheduling, mutual exclusion, deadlocks, memory management, I/O devices, file systems, protection mechanisms were discussed.
Data Structures & Algorithms
Language: Java
Analyzed, used, and designed data structures and algorithms using Java to solve computational problems. Emphasis on abstraction including interfaces and abstract data types for lists, trees, sets, tables/maps, and graphs. Implementation and evaluation of programming techiques including recursion. Intuitive and rigorous analysis of algorithms (Big O).
Computer Architecture
Languages: C, JAVA, and MIPS Assembly
Computer structure, assembly language, instruction execution, addressing techniques, and digital representation of data are covered. Computer system organization, logic design, microprogramming, cache and memory systems, and input/output interfaces are also included.
Microelectronic Devices & Circuits
Languages: Matlab
Hands-on, laboratory driven introduction to microelectronic devices, sensors, and integrated circuits. Teams of 3-4 students competed in a design, assembly, testing, characterization and simulation of an electronic system. Projects included microelectronic devices, sensors, and basic analog and digital circuits.
My team's end of semester project
Cloud Computing
In a seminar format, students chose a cloud computing technology that interested them, and presented to the class.
Topics included:The course ended with a 6-week Final Project, where students created cloud computing inspired projects that emcompassed some of the technologies covered in class.
For my final project, I created a scheduling app that utilized the Duke Course Catalog API to enable students to make schedules faster, easier, and develop an efficient layout. I am currently adding more features to the app.
Computational Methods in Engineering
Language: Matlab
Introduction to computer methods and algorithms for analysis and solution of engineering problems using numerical methods in a workstation environment.
Topics include: numerical integration, roots of equations, simultaneous equation solving, finite difference methods, matrix analysis, linear programming, dynamic programming, and heuristic solutions used in engineering practice.
Integrated Circuits
Language: LT Spice
Analysis and design of electronic circuits in bipolar and MOS technologies, with emphasis on both large-signal and small-signal methods. Circuits for logic gates, latches, and memories. Single-stage and multistage amplifiers and op amps. Circuits with feedback, including stability and frequency response considerations.
Electromagnetic Fields
Fundamentals and application of transmission lines, electromagnetic fields and waves, antennas, field sensing, signal transmission, impedance transformation, and impedance matching.
Fundamentals of Electrical & Computer Engineering
ECE core concepts, including: techniques for analyzing linear circuits, semiconductor and photonic devices, frequency representation, filtering, and combinational and sequential logic. Central to the course was an extensive design challenge that required students to integrate knowledge across topics in order to build robots and overcome obstacles using sensor data acquisition and processing.
Digital Systems
Language: Verilog
Design and implementation of combinational and sequential digital systems with special attention to digital computers. The use of computer-aided design tools, hardware description languages, and programmable logic chips to facilitate larger and higher performance designs was covered extensively.
Signals & Systems
Language: Matlab
Continuous and discrete signal representation and classification, system classification and response, and transfer functions. Fourier series, Laplace transform, and z transforms. Applications to integrated sensing and information processing, networks, modulation, sampling, filtering, and digital signal processing. Laboratory projects used digital signal processing hardware and microcontrollers. Computational solutions of problems using Matlab. Course ended with a Shazam-like program to read songs and analyze frequency distribution.
Ryan was selected as 1 of the 100 college software engineers nationwide, invited to attend the first Tech Draft. The Tech Draft was designed to be similar to the NFL Draft, but instead of NFL teams and college football players, there were tech companies and college software engineers. The event included a series of coding challenges that were administered by sponsoring companies.
Ryan attended the first annual Start @ a Startup Conference, that was geared towards raising awareness of startup opportunities after graduation. The weekend consisted of tech talks, workshops, and discussion groups with venture-backed founders and engineering leaders. Students attended educational and networking events held by DropBox, EventBrite, Branch, Square, and more.