Welcome to Coding 101!

Class Rhythm

In this course, learning will take place in two settings: at home online, and in person during class. One of the ways we keep this class cost-effective is by relying on students to spend time outside of class on the material. Please plan for about 10 hours of work outside of class. You may not need it every week, but some weeks you probably will.

  • Outside of Class: Before each class period, you should complete the Prep Work for that class. For homework, in addition to the Prep Work for the next day of class, there are also assignments to complete, usually one per chapter.
  • During Class: Class is usually broken up into three sections.
    • Review: In class, we will review the material from the chapter you read, with live examples and question-and-answer sessions.
    • Studio: You will work together in pairs or small groups on an in-class assignment called a “Studio”.
    • Review / Workshop: Some classes will have review sessions that go over some concepts in more depth, or workshops that cover concepts that go beyond the scope of the course materials. Some of these will be targeted more towards those less comfortable with the material, and others towards those more comfortable.

Requirements

This is a pass/fail class, and we want to help you pass! You will be graded on the assignments each chapter, as well as a few larger assignments. If you need to submit more than 2 assignments late you may be allowed to continue the course, but you must speak with an instructor.

Submitting Assignments

To submit chapterly assignments, you will copy your code to a github gist and send an email with a link to the gist. Your instructor will go over in class how to do this.

Getting Help

Richard Feynman was a brilliant and often-quoted physicist. A friend of his remarked on what he called The Feynman Approach to Problem-Solving:

  1. Write down the problem.
  2. Think very hard.
  3. Write down the solution.

For us mere mortals, we need a few extra steps :) Here are some things I recommend for tackling problems.

  • Google it. Professional programmers google things all the time. This is okay. There’s no need to memorize something if you know how to look it up. Learning how to google is an important skill for a programmer.
  • Go for a walk, or take some other type of break. Maybe make some tea. Getting space from the problem will help you approach it with a new perspective.
  • Write down the things you’ve tried, and the reasons they didn’t work the way you expected. I often find that organizing my thoughts this way leads me to understand where I went wrong.
  • Ask someone else. You can email questions to coding101@devetry.com and we’ll try to help you. Some things to keep in mind:
    • “It didn’t work” is not very specific. Did an error message show up? What did it say? Did you get a result, but not the one you expected? That’s useful info! Did your computer start playing a piece of classical music? All of this is more specific than “it didn’t work” :)
    • If your question is about a piece of code, please include the code when you ask the question. That way, we can see the issue first-hand. Please share code using something like gist.github.com or pastebin.com, so that the indentation is preserved.
    • Stack Overflow has some good advice about asking questions. https://stackoverflow.com/help/how-to-ask
    • If you’re truly lost try and think of a question where, if you only knew the answer, you’d be able to make some progress.

Please don’t spend more than 30 minutes or so stuck and frustrated on the same issue. There are lots of “corners” – places where it’s easy to get stuck – in learning programming. That’s why you have a guide! Send me an email and I’ll try and get you back on the right path.

Academic Honesty

Academic honesty is an important focus of this course. Working with others to improve your skills is both acceptable and encouraged, but there is a difference between asking for help from a classmate and submitting the work of a classmate. Below are some examples to differentiate between the two:

  • If you encounter a bug in your program, a classmate may look at your code to help you identify the source of your problem, but you may not look at the classmate’s code to find their solution to that problem.
  • You are encouraged to search through sites such as Stack Overflow when trying to debug an error in your code, but you may not search online for complete solutions to your specific assignment.
  • Do not post complete programs or functions on public Piazza posts or other course platforms. Post only snippets or isolated sections of code. If you need to post a complete program or function in order to get help, do so in a private message to the instructors.

This, in essence, is our perspective: you will only be cheating yourself if you submit work that you did not fully understand and develop yourself. It is the skills that you will acquire and develop throughout this course that will help you to get a job, NOT the grades and/or certificate you may receive at the end. Remember, you will eventually be out on your own (going on job interviews, working, etc.) and will need to understand and explain the skills and concepts you learn in this course. If you have a question about how to work with another student on graded homework, ask the instructor or course staff.