UCSC, Learning Support Services September 2011-Present
Computer Science/Engineering and Mathematics tutor
Learning Support Services provided me with the opportunity to help struggling students in their respective Computer Science/Engineering or Mathematics courses. Moreover, the experience with Learning Support Services was devoid of any grading or record keeping, but heavily emphasized peer-guided tutoring. All employees were put through vigorous training and given many proven peer-tutoring techniques to practice in our respective sessions. For each of these classes, I would go over relevant examples, provide further intuition on troublesome concepts, gage student progress, etc. With my time at Learning Support Services, I tutored for the following courses.
• AMS 20: Mathematical Methods for Engineers II (Ordinary Differential Equations (ODEs))
o This course serves as an introductory course to Ordinary Differential Equations and their application to physics and Electrical Engineering. Specifically, the course covers methods of evaluating first through nth order equations such as method of integrating factor, method of undetermined coefficients, and variation of parameters. Furthermore, the course introduces using linear algebra to solve systems of ODEs with real and complex eigenvalues, using Laplace transforms for more efficient computation, using MATLAB to solve ODEs, etc.
• CMPE 9: Statics, Dynamics, and Biomechanics:
o CMPE 9 serves as more of a traditional engineering course in that it teaches classical mechanics applied to construction-related issues. Moreover, the course covers statics analysis using vector algebra and a large series of real world problems. Also covered is when such statics issues begin to move and become dynamical concerns. These properties are then applied to the field of biomechanics and the construction of robots for various purposes.
• CMPE 12: Computer Systems and Assembly Language
• CMPE 16: Applied Discrete Mathematics
o CMPE 16 strives to introduce upcoming engineering students to the forms of higher-level math that their respective fields will introduce them to. By this nature, the course is extremely scattered in terms of topics and proves to be very difficult for students without adept math skills. Topics covered include, propositional calculus, Boolean algebra, set theory, basic number theory, methods of proof including induction, the basis of mathematical functions, basic probability theory, relations.
• CMPS 5J: Introduction to Programming in Java
• CMPS 12A: Introduction to Programming (Accelerated)
o This course is intended to be a formal introduction to programming for students who already have some form of exposure to programming. In this regard, the course moves at a very quick pace and covers topics from programming fundamentals through inheritance. The course is taught in Java in hopes of giving both an easy introduction as well as a broad one. Specifically, the course topics include: programming fundamentals, variables, conditions, loops, functions, arrays, Strings, classes, abstract classes and interfaces, inheritance, etc.
• CMPS 160: Introduction to Computer Graphics
o CMPS 160 goes beyond just the programming techniques used in Computer Graphics and provides a general introduction to everything relevant to Computer Graphics. The course was taught using OpenGL and GLSL in hopes of providing the most accessible introduction to computer graphics. Topics include: history of computer graphics, displays, color perception, matrix transformations, visibility, viewing and perspective, texture mapping, lighting, shader programming, raytracing, and research in computer graphics.
UCSC, Jack Baskin School of Engineering September 2010-June 2012
Computer Science/Engineering tutor
As a tutor for these classes, I worked very closely with multiple students, aiding them in whatever way possible to master the concepts of the respective class. These jobs allowed me to: keep records of grades, answer questions on course material, suggest various approaches to certain problems, etc. Each class had its unique characteristics.
• CMPE 12: Computer Systems and Assembly Language:
o Leading small lectures about the course material in order to complete lab assignments was an additional duty which greatly enhanced my public speaking ability. Materials for this course include: introduction to digital logic, introduction to binary and other number systems related to computers, basics of computer architecture, fundamentals of computer programming, programming in both LC-3 and 68HC11 assembly languages.
• CMPS 80K: Foundations of Interactive Game Design:
o Aiding students throughout the production of video games was my primary duty for this class. This included: introducing them to Game Maker, conceptualizing a game idea, designing and playtesting both physical and computational prototypes, writing design documents, pressuring them to engage with novel design spaces, conducting playtesting sessions, conducting high-level game reviews, technical assistance, etc. Beyond this, CMPS 80K materials included: the structure of games, working with formal, dramatic, and system elements, issues in gaming industry, etc.
• CMPS 5J: Introduction to Programming in Java:
o As I worked as a private tutor for this class, scheduling meetings with students was another significant duty for this course. Materials covered by CMPS 5J include: introduction to the basics of Processing and Java, programming with variables, using conditional statements, using loops, using functions in programming, basics of object-oriented programming, basic introduction to data structures including arrays and stacks, using strings, math libraries in Processing, etc.
• CMPS 20: Game Design Experience:
o My primary role for CMPS 20 was leading a guest lecture on the caveats of console development for games. From this, any student teams who aspire to port their class projects to the Xbox 360 will be advised by me, and I will provide any further insight into the issues they may have as time progresses. Beyond this, CMPS 20 covers: introductory C# and XNA framework, collision detection techniques, particle systems, UI considerations in games, basic physics for games, genre-specific implementation techniques such as platformers and tower defense, level-generation, fundamentals of computer graphics, fundamentals of pathfinding, and software design patterns for games.