Richard T. McKenna Computer Science Department Stony Brook University richard@cs.stonybrook.edu Current Position Lecturer Stony Brook University (Fall 2002 – Present) Areas of Specialization Game Programming Game Design Internet Commerce Programming Web Design Software Engineering Methodologies Education Stony Brook University, Stony Brook, NY M.S. in Computer Science, Spring 2002 The University of Texas at Arlington, Arlington, TX Bachelor of Science in Industrial Engineering, Spring 1996 Awards 2008 CS Dept. Award for Undergraduate Education 2001 CS Dept. Award for Outstanding Teaching Assistant Achievement Founded Stony Brook University's Annual Game Programming Competition Held each May since 2004, in this popular student competition teams make original games and present them to alumni judges now working in the video game industry, “an impressive roster of successful video game developers “ as Newsday called it. Ranked #6 by Stony Brook's The Admissions Blog on its list of best events on campus, competition veterans have gone on to work as game developers at studios across the country including Activision, Applied Visions, Arkadium, Blizzard, Cryptic, Eduware, Kixeye, Kuma Games, Nickelodeon Games, Rockstar Games, Zynga, and more. In addition, competition finalists have founded independent game studios like Artizens, Artifex Dei, Onslaught Studios, and POW Studios. Past Employment Teaching Assistant Computer Science Department, Stony Brook University, Stony Brook, NY Process Engineer Mini-Circuits Labs, Brooklyn, NY. (1996 – 1999) Web Home Page: http:www.cs.stonybrook.edu/~richard SBU Game Programming: http://www.cs.stonybrook.edu/~games SBU YouTube Channel: http://www.youtube.com/user/SBUGameProgramming Department Roles Founder and Coordinator – Stony Brook University Game Programming Competition (2004 - present) Created the event and have run it since its inception in 2004. Involves choosing the finalists, inviting judges and media, and managing the event technology, literature, YouTube channel, Web Site, and event facilities. Founder and Coordinator – CS Department Game Programming Specialization (2006 - present) Proposed this Bachelor's Degree Program Specialization in Computer Science, organized the specialization requirements, and have managed the program since its inception, updating the requirements as needed, approving students for graduation, and advising students on course sequences, research projects, and in securing industry internships. Host and Demo Coordinator – Annual Prospective and Admitted Students Days (2002 - present) Welcomed high school students and their parents into our department on Prospective Students Day (discontinued, used to be each fall semester), and Admitted Students Day (each spring) leading department tours, giving recruiting presentations, and organizing student project demonstrations. Host – CEAS Undergraduate Admissions Visit a Class program (2010 – present) Welcomed high school students and their parents into my classes, answering any questions they may have about our program to provide them with a real University classroom experience. Course Creator – Constructed the curriculum and created all course content for new or revamped courses: CSE 102: Web Design and Programming CSE 380: Computer Game Programming CSE 381: Advanced Game Programming CSE 390: Advanced Programming Technique CSE 500: Patterns in Programming ISE 208: Intermediate Programming ISE 390: Dynamic Web Development ISE 503: Data Management ISE 504: Analysis, Modeling, and Design ITS 102: Games in Total ITS 102: 3D Modeling for Games Course Coordinator – Monitor how these courses are being taught, among other responsibilities: CSE 214: Computer Science II CSE 301: History of Computing CSE 380: Computer Game Programming CSE 381: Advanced Game Programming Faculty Advisor – Supervise meetings and advise groups regarding events. Also help recruit new students and help administer Facebook pages: Stony Brook Computing Society (ACM) Stony Brook Game Developers Group Member – Participate in meetings and decision making regarding department issues: Undergraduate Curriculum Committee Faculty Search Committee Teaching Experience by Semester (Enrollment) Fall 2014 Summer 2014 Fall 2012 Summer 2012 -CSE 219 (103) -CSE 308 (28) -CSE 381 (14) Total: 145 Spring 2014 -CSE 219 (100) -CSE 308 (80) -CSE 380 (60) -ITS 102 (30) Total: 270 Fall 2013 -CSE 219 (87) -CSE 381 (17) -CSE 390 (37) Total: 141 Summer 2013 Spring 2013 -CSE 301 (17) -CSE 219 (109) -ISE 390 (13) -CSE 308 (39) -CSE 380 (47) -ITS 102 (38) Total: 30 Total: 233 Spring 2012 -CSE 219 (83) -CSE 308 (31) -CSE 380 (47) -ITS 102 (21) Total: 182 Fall 2011 -CSE 219 (71) -CSE 301 (67) -CSE 381 (18) Summer 2011 Spring 2011 -CSE 102 (80) -CSE 219 (84) -CSE 380 (49) Total: 156 Total: 213 Fall 2010 Summer 2010 -CSE 114 (150) -CSE 219 (117) -CSE 381 (20) Total: 287 Spring 2010 -CSE 114 (129) -CSE 219 (81) -CSE 380 (57) Total: 267 Fall 2009 Summer 2009 -CSE 114 (115) -CSE 214 (103) -CSE 381 (11) Total: 229 Spring 2009 -CSE 214 (112) -CSE 380 (44) -ISE 208 (38) Total: 194 Fall 2008 Summer 2008 -CSE 214al (93) -CSE 220 (80) -CSE 381 (20) Total: 193 Spring 2008 -CSE 214 (80) -CSE 301 (54) -CSE 380 (32) Total: 166 Fall 2007 Summer 2007 -CSE 101 (20) -CSE 219 (70) -CSE 381 (18) Total: 108 Spring 2007 -CSE 219 (90) -CSE 301 (60) -CSE 380 (24) Total: 174 Fall 2005 -CSE 219 (121) -CSE 301 (41) -CSE 381 (25) Total: 187 Spring 2005 -CSE 219 (125) -CSE 301 (58) -CSE 380 (54) Total: 237 Fall 2006 -CSE 219 (97) -CSE 301 (43) -CSE 381 (23) Total: 163 Summer 2006 Spring 2006 -CSE 219 (100) -CSE 301 (59) -CSE 380 (35) Total: 194 Fall 2004 Summer 2004 Spring 2004 -CSE 102 (36) -CSE 114 (34) -CSE 114 (163) -CSE 219 (128) -CSE 380 (53) -CSE 500 (21) -ISE 504 (21) Total: 185 Total: 34 Total: 237 Summer 2005 -CSE 114 (17) -CSE 300 (20) Total: 37 Fall 2003 Summer 2003 -CSE 101 (13) -CSE 114 (44) -CSE 114 (145) -ISE 503 (21) Total: 179 Total: 44 Fall 2002 Summer 2002 Spring 2002 Fall 2001 Summer 2001 -CSE 114 (250) -CSE 333 (81) -CSE 333 (80) Total: 250 Total: 81 Total: 80 Spring 2003 -CSE 114 (204) Total: 204 Spring 2001 Course Enrollment Totals By Year (# of Courses) Course Descriptions 2014: 270 (4) 2013: 404 (9) 2012: 327 (7) 2011: 369 (6) 2010: 554 (6) 2009: 423 (6) 2008: 359 (6) 2007: 282 (6) 2006: 357 (6) 2005: 461 (8) 2004: 456 (7) 2003: 427 (5) 2002: 331 (2) 2001: 80 (1) Total: 5100 (79) 600 500 400 300 200 100 0 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 COMPUTER SCIENCE COURSES CSE 101, Computers and Information Technologies – An introduction to the basics of personal computing and information technologies. CSE 102, Web Design and Programming – An introduction to the design and construction of Web pages including Web page layout and style using HTML and CSS. CSE 114, Computer Science I – An introduction to procedural and object-oriented programming methodology. The principle introductory programming course for students entering the CS major, this course covers the basics of programming in the Java programming language. CSE 214, Computer Science II – An extension of programming methodology to data storage and manipulation on complex data sets. Introduces students to the logical construction and implementation of sequential, hierarchical, and graphical data structures using the Java and C programming languages. CSE 219, Computer Science III – Examination and application of practical programming skills that include a systematic approach to program design, coding, testing, and debugging. CSE 220, Computer Organization - Explored the physical structure and organization of a computer and the corresponding assembly programming techniques for such Instruction Set Architectures. CSE 300, Writing in Computer Science – Principles of professional technical communication. CSE 301, History of Computing – A study of the history of computational devices from the early ages through the end of the 20th century. CSE 308, Software Engineering – Introduces the basic concepts and modern tools and techniques of software engineering. CSE 333, User Interface Development – Survey of user interface systems and human computer interaction. CSE 380, Computer Game Programming – An introduction to the fundamental concepts of computer game programming. CSE 381, Advanced Game Programming – Explores the concepts and technologies behind making 3D, networked games. CSE 390, Advanced Programming Techniques – Covers the technologies, tools, and platforms used for software to be built for the Web, mobile devices, and Content Delivery Networks (CDNs). CSE 500, Patterns in Programming – An introduction to programming patterns often encountered in software systems. INFORMATION SYSTEMS COURSES ISE 208, Intermediate Programming – Teaches programming and system design techniques with an emphasis on applications to business. ISE 390, Dynamic Web Development – Examines the technologies used for developing dynamic Web content. ISE 503, Data Management – An understanding of the issues in managing database systems as an essential organizational resource. ISE 504, Analysis, Modeling, and Design – An understanding and application of system analysis and design processes. INFORMATION AND TECHNOLOGY STUDIES COURSES ITS 102, Games in Total – A look at the process of game development from start to finish, including the steps and tools involved, and the skills needed to complete them. ITS 102, 3D Modeling for Games – Examines the tools and techniques used for creating animated, textured, 3D models via modeling software. Publications The design of a history of computing course with a unique perspective by Thomas Cortina, Richard McKenna (2006) – Presented at SIGCSE 2006 in San Antonio, Texas. Fast Digital Image Inpainting by Manuel M. Oliveira, Brian Bowen, Richard McKenna, Yu-Sung Chang (2001) – Automated image correction algorithm and application. Appeared in Proceedings of the International Conference on Visualization, Imaging and Image Processing (VIIP 2001), Marbella, Spain. Research Project Advisor CSE 487: RESEARCH IN COMPUTER SCIENCE Paradoxiums by Angad Sidhu (2014) A physics sandbox platformer that allows one to travel through time and manipulate the laws of physics. Particle Boy by Jimmy Bouker (2013) Particle Boy is a side scrolling 2D shooter for the iPhone in which the player uses particle powers to defeat evil monsters. This game integrates use of a custom-built particle generation and management system. Domain of Madness by Nick Lucchesi (2013) A networked, multiplayer iPad adventure game that demonstrates the integration of robust networking middleware technologies with a custom game rendering system. Marines of Sol by Greg Nye (2013) In this game the player commands units who must battle deadly giant bugs. It is turn-based, where levels become progressively more difficult, with more waves to fight and less time to think about ones actions. Corey Conundrum by Nick Trombetta (2013) This is a music-themed game, where the player must keep proper rhythm to advance. It also has a battle mode you both shoot out onto the Drum Field to defeat the computer while one creates new beats. Astro Invaders by Sebastian Bryk (2013) A space shoot-em-up game that combines classic gaming genres into a new gameplay construct. Catchphrase by Charles Huang (2012) Catchphrase is its own game genre, a sitcom-style, dialog-driven, comedy game. The player is an actor on a sitcom where one must act out various scenes and choose the right lines to maximize the comedic effect. Block Wars by Anthony Lomonaco (2012) This game combines a number of game genres: traditional arcade, tower defense, and RPG. The player must fortify ones base, fight enemies in head to head combat, and customize characters to win. Fire Rescue by Charles Valentino (2012) Built using the Unity3D platform, this game prototype aims to help children become more aware of the challenges of Fire Rescue. Positive Pete by Louis Ahola (2012) In this iPhone/iPad game, the player guides Positive Pete to his goal on each level by strategically placing positive and negative charges. TowerCraft by Tom Ayalon & Anthony Lomonaco (2011) Extends the 2011 SBU competition winner, adding levels and tutorials, level editing tools, and new content. This project is the predecessor to the soon to be released Artifex Dei. Shadow Blade by Marcin Oszkinis, Joshua Speight, Gregory Wysocki (2011) This side-scrolling game project combined an action based slasher with mood and atmosphere. Measuring a User's Stress Level Using Standard Input by Ryan Wade (2010) This Half Life 2 mod responds with different AI according to measured levels of stress exhibited by the players as evidenced by game control input. Alcohol Awareness by Stefan Salva Cruz (2009) Casual game that demonstrated the negative effects of alcohol abuse to the player. Geometrico by Gregory Konopasevics (2008) Inspired by Leonardo Da Vinci's Ludo Geometrico, or "Geometry Game", this is a 3D puzzle game where the player must make changes to a starting shape in order to eventually transform it into a new form. WeathAlert by Mark Sowul (2005) This Windows application provides up-to-the-minute weather forecasts based on ones geographic location. GradeGenerator by Rifat Chowdhury, Muhammad Bashir, & Vinayak Shekhar (2004) This Java project extended a program used for creating, administering, and grading programming exams for introductory programming courses. CSE 495/496: COMPUTER SCIENCE HONORS PROJECT The Debugger by Evan Saft (2014) Unity3D game of survival that combines a line-balancing tower defense type game with the action genre. Rust by Christopher Macker (2011) This StarCraft 2 Mod is a team oriented 6v6 death match set in a randomly generated maze that changes every time you play. MathShooter by Tony Zheng (2011) A game for teaching children to solve math problems through the process of playing an action game. Leocht by Guozhu Luo (2009) A particle collection game where one would draw shapes t help channel particles to their proper sinks. The DuMidea Project by Peter Justeson, Justin Seyster, Albert Yau, Dan Richardson (2005) A side-scrolling adventure game developed for Nokia Cell Phones. The focus of the game was the manipulation of physics to solve puzzles. Additional help provided by Christa Erickson. SpellCraft by Arbiter, Pincas, Thomas, Rodriguez, Rodriguez, Miller, Chen (2008) This multi-player RPG helps players learn SAT vocabulary words through character advancement. CSE 523/524: ADVANCED PROJECT IN COMPUTER SCIENCE Devehelp by Mark Fielbig (2014) A platform for meeting new developers with similar interests and building great projects together. Sky Hammer by Andrew Gratta (2014) A high-speed, futuristic car game, in which you play as a bounty hunter, tracking down criminals driving on the city's gravity-defying highways in the sky. Hello, World! by Shah Pavel Jamal (2012) An app for location-based real-time communication with the public. The Blurb Feeder by Chun Li, Raman Nanda (2012) Pulls in daily news stories from disparate sources, categorizing and listing them to help the user browse and find the stories they are interested in. Kick, Catch, and Run by Thomas, Chang, Blieka, Untwale, Williams (2010) These projects were done in cooperation with Biodex at Stony Brook's CEWIT research facility. They are serious games developed for rehabilitation equipment. CSE 593: INDEPENDENT STUDY IN COMPUTER SCIENCE TiMO by Shah Pavel Jamal (2012) A 3D turn-based MMORPG for iPhone, iPad, Android, and PC where players capture and control pet monsters in an open world where you decide how you want to play. Drum by Betson Thomas (2009) Turns your iPhone into a customizable rhythmic instrument, where shaking it can allow the user to play different beat combinations. Interactive Game Development System Interactive Game Development System by Dong-Hoon Lee (2006) An application for users who are eager to create their own games but are not programmers. HON 495/496: HONORS COLLEGE PROJECT The Poor Man's Ruby by Wesley Macker & Andrew Marrell (2014) A turn-based fantasy survival game built using libGDX with ports for Android and the Web. Regio Vinco by Andriy Duyko (2014) In this Facebook game players can share their knowledge of world geography with their friends. Beat Blast by Betson Thomas (2007) This game let the user select the in-game music and then modified the gameplay according to information extracted from the music data, like rhythms and frequencies. Consulting Goldman Sachs – New York City, NY (Summer 2008) – Taught a series of courses in Java for the Web. Advanced Acoustic Concepts – Hauppauge, NY. (Spring 2005) – Taught a series of courses on advanced Java programming concepts (IDL & CORBA, multithreading, etc.) Levittown Union Free School District, Levittown, NY (Dec. 2002, May 2003) – Taught a series of introductory Java programming courses to high school Java instructors Computer Associates, Islandia, NY (Jul. 2002) – Taught a “boot camp” class on Java UI programming. Teledata Communications Inc., Bay Shore, NY. (Apr. 2001) – Taught a series of introductory tutorials on efficient Java programming using Borland’s JBuilder IDE.