Curriculum Vitae
Graham Robert Smallwood
930 Dayna St, Santa Ana, CA. 92701
email: grahamsmallwood@gmail.com
web: http://www.grahamsmallwood.com
EDUCATION
M.S. Computer Science 2012
Cal State Long Beach, Long Beach, CA
B.S. Computer Science 1999
Eastern Michigan University, Ypsilanti, MI
BRIEF TEACHING PHILOSOPHY
Computer programming is not just a major one takes to get a secure career. Anybody can benefit from learning to program because of the way in which it trains your mind to both model problems with a broad view and to implement small tasks with precise detail. To keep students both major and non-major engaged, I believe assignments should be relatable and interesting instead of purely abstract. They should be structured, but have just enough freedom in implementation that students feel invested in their work. Two-way communication in a lab environment is essential. Fielding specific questions is the only way to find if my approach is missing a subset of students since everyone learns differently. And finally, I feel there is a great benefit in drilling basic concepts in to brand new programmers before dropping them in to a lab environment so that they are understanding and not just repeating.
TEACHING EXPERIENCE
- Instructor: Depart of Computer Science, Santiago Canyon College, Orange, CA
- Introduction to Java Programming – (Spring 2013)
- Wrote curriculum and lesson plan using Course Outline of Record as guidelines.
- Created lecture slides with integrated hands-on examples
- Made homework assignments and tests
- Provided one-on-one help in lab environment
- Wrote mini-lectures over email in response to student questions
- Graded assignments with detailed feedback for each student
- Introduction to C++ Programming – (Spring 2013)
- Aided primary professor by presenting extra reinforcing examples of weekly topic
- Assisted with homework in lab environment.
- Introduction to Java Programming – (Spring 2013)
- Instructor: Upward Bound Math and Science, Cal State Long Beach, Long Beach, CA
- Introduction to Computer Programming – (June 2012 – Aug 2012)
- Summer program for underrepresented inner city high school students.
- Worked with head of primary science program to create integrated curriculum
- Wrote and presented lectures, created and graded homework, and worked individually with students in lab
- Introduction to Computer Programming – (June 2012 – Aug 2012)
- Teaching Assistant: Department of Computer Science, Cal State Long Beach, Long Beach, CA
- Introduction to Programming and Problem Solving – CECS 174 (Fall 2011 – Spring 2012)
- Introductory course covering topics such as object oriented programming, graphics, data structures, and control structures using Java.
- Assisted students with debugging lab assignments
- Explained introductory concepts to students that needed assistance
- Validated homework in preparation for professor to grade it
- Introduction to Programming and Problem Solving – CECS 174 (Fall 2011 – Spring 2012)
- Critical Thinking in the Digital Information Age – CECS 100 (Fall 2011)
- Introductory course covering topics such as basic programming concepts, flowchart logic, and IPO diagrams.
- Assisted students with debugging lab assignments
- Explained introductory concepts to students that needed assistance
- Graded homework
- Introduction to Game Programming – CECS 455 (Spring 2011)
- Advanced majors course covering topics such as OpenGL, game networking, and basic game physics
- Helped refine class goals for future semesters
- Graded homework assignments
- Gave lectures on specialized topics relating to game programming: client vs. server architecture, and logic vs. client timing
- Guest Lecturer: Department of Computer Science, Cal State Long Beach (Spring 2012)
- Overview of Computer Science Careers
- Lectured on different kinds of thinking that lead to different career types in the programming industry. Special emphasis was given to game programming careers.
- Overview of Computer Science Careers
WORK EXPERIENCE
- iOS Programmer: Self Employed, Santa Ana, CA (2011 – present)
- Objective-C programming for iPhone games
- Created game from start to market
- Managed remote contract artist
- Titles: Delve: The Dice Game
- iOS Programmer: Zeek Interactive, Huntington Beach, CA (2009 – present)
- Objective-C programming for iPhone and iPad applications
- Implement applications from Photoshop designs to final completion
- Includes user interface programming and networking
- Titles: Cisco SIO-To-Go, NFL 2011, Edwards Lifesciences Internal Applications
- Unity3d Programmer: Skyworks, Seal Beach, CA (2008 – 2009)
- C# programming utilizing the Unity3d engine
- Designed car physics system from scratch
- Modeled systems, parameterized designer data, and made editor tools
- Titles: Unreleased Car Game
- Casual Games Programmer: Mumbo Jumbo, Costa Mesa, CA (2007)
- C++ programming for PC games
- Created collision system, programmed the game’s artificial intelligence system, designed databases, and created the level editor
- Titles: Shopping Spree (Canceled)
- Multiplayer Games Programmer: Turtle Rock Studios, Irvine, CA (2005 – 2007)
- C++ programming for PC games
- Synchronized states in real-time networked clients
- Reverse engineered undocumented existing game engine
- Titles: Counter-Strike: Source, Left 4 Dead
- Gameplay Programmer: Electronic Arts, Playa Vista, CA (1999 – 2005)
- C++ programming for PC games
- Designed and implemented core game systems
- Determined object models and data structures from designer specifications
- Implemented game units and related artificial intelligence
- Mentored incoming programmers: wrote task plans and provided system overviews
- Titles: Command & Conquer: Red Alert 2, Red Alert 2: Yuri’s Revenge, Command & Conquer: Generals, Command & Conquer Generals: Zero Hour, Lord of the Rings: Battle for Middle-Earth, Lord of the Rings: Battle for Middle-Earth II
SKILLS
- Languages: C++, C, C#, Objective C, Java, SQL, HTML, CSS
- Development Environments: MSDN .NET, Eclipse, Source Engine (Valve), iPhone SDK/XCode, Unity3D Engine
- Subjects: Networking, Databases, Artificial Intelligence, Algorithms, Software Engineering, Security
- Source Control: Git, SVN
- Proficient with both Mac and PC operating systems.
- Proficient with a variety of software, including MS Word, PowerPoint, Excel, and Adobe Photoshop, PHPMyAdmin, Visual Assist X, Perforce, Tower, Versions
COMMUNITY SERVICE
- Cal State Long Beach Game Development Club (Spring 2012)
- Helped students plan their game production schedule. Provided guidance and advice in relation to programming, and game development in general.
PUBLICATIONS
Smallwood, G.R.; Black, D.V.; , “Observations on designing a computer science Curriculum focusing on game programming using testimonials from industry leaders,” Games Innovation Conference (IGIC), 2011 IEEE International , vol., no., pp.126-129, 2-3 Nov. 2011
CONFERENCE PRESENTATIONS
Oral presentations
Smallwood G, and Black D. Observations on designing a computer science Curriculum focusing on game programming using testimonials from industry leaders. 2011 IEEE International, Fullerton, CA 2011.