Introduction-to-Programming-in-C icon indicating copy to clipboard operation
Introduction-to-Programming-in-C copied to clipboard

Columbia University

Introduction to Programming in C

Columbia University

Instructor: Songqiao "Sonny" Li ([email protected]) Rate My Professors

Hamilton 607: 11:10 am - 1:00 pm (MTWTF)
Hamilton 613: 3:10 pm - 5:00 pm (MTWTF)

TA: Dru Grossberg ([email protected])
TA: Palmer Hudson ([email protected])

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 including data structures, library design, and memory management. Labs are carried out in Linux Virtual Machines configured for the class and installed on the student’s personal laptop computer.

Note

Participants are expected to bring laptops and notebooks to class. Laptops can either be a PC or a Mac, but should have 8GB - 10GB of free space.

Course Objectives

  • Understanding basic computer science concepts
  • Program in C and have a solid foundation to extend their knowledge in more complex problems
  • Think like programmers and apply programming practices in real-life problems

Textbook

The C Programming Language (Brian Kernighan & Dennis Richie)

Piazza

www.piazza.com/columbia/summer2017/cpron0209

Repl.it

Coming soon!

Week 1

$ gcc -Wall hello.c -o hello
$ ./hello
  • [x] hello.c

  • [x] pattern.c

  • [x] initials.c

  • [x] temp1.c

  • [x] temp2.c

  • [x] bmi.c

  • [x] quadratic.c

  • [x] currency.c

  • [x] flipcoin.c

  • [x] pH.c

  • [x] magic8ball.c

  • [x] spaceboxer.c

  • [x] quiz.c

  • [x] leapyear.c

  • [ ] switch.c

Week 2

  • [x] enterPIN.c

  • [x] guessing1.c

  • [x] guessing2.c

  • [x] youngmoney.c

  • [x] trouble.c

  • [x] fizzbuzz.c

  • [x] adding.c

  • [x] pattern1.c

  • [x] pattern2.c

  • [x] prime1.c

  • [x] prime2.c

  • [x] reverse.c

  • [x] armstrong.c

  • [x] mimzy.c

  • [x] oddeven.c

  • [x] ascending.c vs. ascending2.c

  • [x] strings.c

  • [x] alternate.c

  • [x] findme.c

Week 3

  • [x] hypotenuse.c

  • [x] area.c

  • [x] books.c

  • [x] cars.c

  • [x] enum.c

  • [x] factorial.c

  • [x] fibonacci.c

  • [x] pointers.c

More coming soon!

Mini Projects

  • Week 1: Rock-Paper-Scissors-Lizard-Spock - Marcus Kapoor, Andrea Corro & Louie Kotler

  • Week 1: MetroCard Calculator (New York) - Brandon Lim, Chris Narducci & Jacob Lindahl

  • Week 1: Lost In Forest: Adventure - Jack Lu, Simone Stern, Zachery Hine & Spencer Rowley

  • Week 1: Who Wants to Be a Millionaire - Cruz Fernandez, Jordana Pearlman & Jason Chay

  • Week 1: Blackout - Ariel Gross, Jonathan Daniel & Steve You

  • Week 2: Times Table - Alexan Varelas, David Fang & Jonathan Daniel

  • Week 2: Connect Four - Andrea Corro, Zachary Hine & Jason Chay

  • Week 2: Matching - Louie Kotler, Simone Stern & Chris Narducci

  • Week 2: Tic-Tac-Toe - Brandon Lim & Jack Lu

  • Week 2: Hangman - Marcus Kapoor

Final Projects

  • Space Invaders - Brandon Lim + co. (Coming soon!)
  • Battleship - Louie Kotler, Simone Stern & Chris Narducci
  • Tron - Marcus Kapoor and Jacob Lindahl (Coming soon!)
  • Black Jack - Michael Hanlon
Black Jack

License

Columbia University © Songqiao Li