Richard T - Stony Brook University

advertisement
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.
Download