Introduction to Programming in C

Open to students entering grades 9 through 12 or freshman year of college in the fall
I - June 24–July 12, 2019
II - July 16–August 2, 2019
Days & Time:
Monday–Friday, 11:10 a.m.–1:00 p.m. and 3:10–5:00 p.m.
Leighanne Hsu, Gilbert Pajela, Richard Townsend

No previous programming experience is required, but participants should have an aptitude for logical reasoning and systematic thinking.

“We were encouraged to take different approaches to a code, which promoted creativity as well as problem-solving.”  – Agustina G. | Purchase, New York  

Course Description

An intensive course designed to develop logic and programming skills through immersion in the fundamentals of C. Programming projects involving mathematical problems and word games challenge students to develop their logical reasoning, systematic thinking, and problem-solving skills. Students learn the structure and features of a fundamental programming language as they implement solutions in C. In addition to teaching programming techniques, the course will cover an overview of fundamental computing concepts such as data structures, library design, and memory management.

Participants are expected to bring laptops for this class. Laptops can either be a PC or a Mac, but should have at least 10GB of free space.

Students who have no programming background might consider taking Computer Programming for Beginners: Coding in Java.


Leighanne Hsu

Leighanne Hsu holds a master’s degree in computer science from Columbia University and is currently a Ph.D. student at the University of Delaware. She holds a bachelor's degree from The College of New Jersey, where she tutored computer science for three years. Her areas of interest include natural language processing, particularly machine translation, speech processing, and dialogue systems, as well as other fields in artificial intelligence.

Gilbert Pajela

Gilbert Pajela is a Ph.D. student at the Graduate Center of the City University of New York studying formal methods and software verification. He currently teaches at Hunter College, where he has previously taught a C++ programming lab. His research involves combining static analysis and model checking to prove correctness properties of C programs. He holds a B.S.E. in electrical engineering from the University of Pennsylvania and an M.S. in computer science from the New York Institute of Technology.

Richard Townsend

Richard Townsend is a Ph.D. student at Columbia University studying programming languages and compilers under Stephen A. Edwards and Martha A. Kim. His research focuses on the use of functional languages and high-level optimizations to produce efficient hardware designs. This work revolves around his research group's current project: an optimizing Haskell-to-Hardware compiler. He holds a B.A. in computer science from Oberlin College and an M.S and M.Phil. in computer science from Columbia.

Back to the Course Guide

Specific course detail such as hours and instructors are subject to change at the discretion of the University. Not all instructors listed for a course teach all sections of that course.