# Exercise 1: Print "Hello world" on the screen.
By using only pen and paper initially, you can focus on learning the core principles of programming while waiting with the computer specific aspects of it until after you master the basics.
What? | A demanding but rewarding introductory programming class, taught using pen and paper only |
Why? | Our method allows you to learn the core concepts of programming without any of the distractions that occur when using a computer too early on in the learning process |
Where? | Impact Hub (394 Broadway, New York City) |
When? | 3.5 hours once a week for 5 consecutive weeks, with groups on Saturdays and Tuesdays (see schedule for details) |
How? | Instructor + between 4 to 8 students. Each weekly session will consist of theory as well as plenty of guided exercises, plus homework |
How much? | $399 for all five sessions. A textbook (written specifically for this course) covering all lectures and excercises is included in the price |
New in 2015! | All classes are recorded and available within 48 hours on the course website. Also, each session has been extended by 30 minutes. |
The course covers nearly all of the basic materials you will need to master in order to solve real programming problems.
A heavy emphasis will be for you to start thinking algorithmically and to start “thinking in code”. Being able to do so, and being able to execute code in your head, is one of the core learning objectives of this course, and something that you will find useful throughout your programming journey.
Week 1: Programming introduction, variables and assignment, strings and integers
Week 2: Procedures and functions, the "Don't repeat yourself" principle, boolean logic, control flow
Week 3: Arrays, loops
Week 4: Final*, algorithms and pseudo-code
Week 5: Object oriented programming, associative arrays, floating point numbers
*) An optional 1 hour, open book in-class final will be given to students at the beginning of the fourth class, as a means to help assess any knowledge gaps that may be present so that those can be addressed by the last class.
Update, October 26, 2015: We are currently unable to enroll more students for 2015. Please check back in in 2016, and sign up on our mailing list at the end of this page and we'll let you know of future course schedules!
No previous programming knowledge is required, but basic arithmetics knowledge is a prerequisite (i.e. knowledge of addition, subtraction, multiplication and division).
This is what some of our alumni are saying!
Audrey
“I highly recommend this course, especially if you are starting out with coding and feel frustrated with other classes that don't help you understand the underlying mechanics and principles of programming.”
Dave
“Erik was a great teacher who demonstrated expertise and passion for both programming and teaching.”
Richenda
“It was so much better with pencil and paper as one can keep a record of each step, including errors. The computer can itself be a distraction and with this we just concentrated on the language.”
Lenora
“Erik kept the sessions interactive, which was perfect because it made everyone feel very involved and focused.”
Learn more about what we will be doing in class, the programming language we will be using, prerequisites and other frequently asked questions.
EXPAND
The goals of this course are ambitious, and the course covers a lot of the materials taught in a typical “Programming 101” course at computer science departments around the world.
Each class will introduce several new programming concepts, and each of these concepts will be practiced in depth using exercises that the students will work on in-class.
One of the primary objectives of the course is to get you to start “thinking in code”. Below is an example of an exercise we will work on in the third week of the class that practices looping (an important concept) and helps you translate real-world problems into code:
We will be using a programming language that has been custom made for this introductory progamming class. Our programming language will draw heavily from lower level languages such as C, Java and Go, but will also borrow concepts from higher level languages such as Ruby. On the difficulty spectrum, it can be said to be in the middle---easy enough to not inhibit learning, but advanced enough to teach all important concepts.
Transitioning from our language to an "easier" language, such as Javascript, is very straightforward, while transitioning to a more "difficult" language, such as C, is still very doable.
If you are just starting to learn programming, the important thing is to not focus too much on what language you learn. Nearly all languages share the same common features (logic, loops, functions, etc.), and these are the features you must learn to master, rather than learning bits and pieces of syntax of a given programming language. Provided you master the core concepts of programming, learning (but not mastering!) a new language can be done in as little as a weekend.
Yes and no. While you won’t have the specific knowledge to do so merely upon graduating from the course, you will have picked up the foundation from which you can transition into more specific areas, such as web or app building.
Yes. Students can expect to spend an average of 2-4 hours per week on homework.
There are plenty of excellent online resources and lots of literature that can help you here, all of which will make a lot more sense once you have completeted this course.
We also offer a course that is a direct continuation of the Pen and Paper Coding class, but using real computers. This course is offered two weeks after the end of the Pen and Paper Coding class. More information will come soon.
No, but please read through the following requirements:
Erik Linde, former quant analyst, now entrepreneur; invented the world's first interactive sheet music platform that used real recordings, and has programmed for more than 15 years in over a dozen programming languages. Erik learned programming the same way he is now teaching you.
Lina Maria, formerly in financial education and interior design, is the community manager for Pen and Paper Coding. Lina's goal is to bring people together to learn programming and to create awareness of this fun and innovative way of learning!
EXPAND
We aim to make this experience as fun and interesting as we can! Students are welcome to ask questions anytime, and our teaching style is both informal and friendly.
In a typical session, we start with a theoretical overview of the relevant topics, and then cover it in depth using practical examples. Every session devotes significant time to students working on exercises.
Depending on the size of the class, more than one instructor may be enlisted to help students get through the exercises.
Please get on our mailing list and we will let you know when this course is offered again in the future.
Main instructor: Erik Linde
Email: erik@penpapercoding.com
Twitter: @eriklinde
Community manager: Lina Maria
Email: lina@penpapercoding.com
Pen and Paper Coding is owned and operated by Liberty City Media LLC, 90 State St, Suite 700, Office 40, Albany, New York 12207