Gerald Soosairaj

Logo

Faculty in CSE @ UC San Diego

Teaching

Research

Service & Outreach

Students

Honors & Awards

Contact

Research

My research involves designing and evaluating effective, equitable, and inclusive ways to teach computing to a diverse set of learners. Specifically, my research spans the following three areas: 1) Studying the effectiveness of live coding, a teaching method based on cognitive apprenticeship, to teach programming processes (e.g., incremental development) for students with no prior programming experience, 2) Understanding the barriers that non-native English speakers face while learning programming and helping them overcome those barriers using suitable interventions (e.g., bilingual CS education), and 3) Understanding and improving the secure programming practices among our undergraduate computer science students.

In all my research projects, I have collaborated with multiple people (professors, graduate, and undergraduate students) from University of California San Diego (UCSD), University of Wisconsin-Madison, University of Michigan-Ann Arbor, and College of Engineering Guindy, India. I value research collaborations highly and I have learned a great deal from all my collaborators. All the research work presented here is a collective effort by my collaborators and me.


Determining the Effectiveness of Live Coding on Student Learning in Introductory Programming

Live Coding – the process of writing code live before the students in class – has been used as an instructional technique for over thirty years, and yet little is known about its effectiveness in learning programming. CS instructors are increasingly using this technique and it is recommended as one of the best practices to teach introductory programming (along with well tested techniques like Peer Instruction). The goal of this project is to experimentally evaluate the effectiveness of Live Coding on student learning in introductory programming.

People

Faculty

Current Students

Past Students

Publications

Funding


Understanding and Aiding Non-Native English Speakers Learning Computing

People from all around the world learn computer programming as it is increasingly becoming a much needed and valuable skill in our technology driven world. Even though people from various native language backgrounds (e.g., Spanish, Mandarin, Tamil) learn programming the de facto language of programming is English. The most popular programming languages (e.g., Python, Java, C++), programming language documentation (e.g., Java documentation) and online resources for learning programming (e.g., Stack Overflow) are primarily in English. Therefore, it becomes necessary for a person to know English to learn programming. The prerequisite of knowing English to learn programming creates a major barrier for people whose native language is not English and/or whose proficiency in English is limited. In this project, we understand the barriers that non-native English speakers and English Language Learners face while learning programming and help them overcome the barriers by designing and implementing interventions to make computing more inclusive, equitable, and accessible to everyone.

People

Faculty

Current Students

Past Students

Publications

Funding


Understanding and Improving Secure Coding Practices Among Undergraduate Computing Students

Increased reliance on digital technologies in our daily lives warrants more security awareness for our software developer workforce. However, to date, in many universities in the United States, computer security courses are optional, and a student can graduate with a bachelors degree in computer science or related field without taking any computer security course. Therefore, researchers have proposed using core and introductory courses to educate students on basic computer security. Introductory computer systems courses teach students how a single program is executed inside a computer, providing them with their first exposure to the logical internals of computing systems. This is one of the first introductory courses where students can learn about security and the need for robust coding. However, currently, these courses are taught with a focus on correctness and runtime efficiency only, ignoring security almost entirely. In this project, we aim to understand the issues students face with learning secure programming so that we could design teaching interventions to effectively teach secure programming practices to our undergraduate computing students.

People

Faculty

Current Students

Publications

Funding