Welcome!

This page contains links to the online learning modules that will be used throughout the course. Please note that you are responsible for a short quiz after you complete each module - these quizzes can be found in your NYU Classes course website.


Help using these modules

These modules are designed to help you learn the material in the most conducive way for each student's best individual learning methods. These modules provide you with video lectures, simple and easily accessible definitions, real-time examples, and programming challenges to help you determine your level of understanding. These simple tips will help you get the most out of your experience and increase productivity:

  • Videos have variable speed playback so you can watch them at regular speed, 1.25x speed, 1.5x speed, etc. to help digest the material at your own pace.
  • Don't remember or know a term used? For a short definition simply mouse over it in the glossary section of the sidebar.
  • The modules contain a variety of real-time interactive programming exercises that are designed to help reinforce the concepts being discussed. These exercies are color-coded as follows:

    Sample Programs: These examples allow you to see a complete program that uses the principles being taught. The code is fully customizable, and we encourage you to modify the code to help you understand how things work.
    Programming Challenges: These sections test your understanding and problem-solving skills for the current material. It is highly encouraged that you complete these sections to make sure you have a firm grasp of the concepts. Solutions to these challenges appear as a link in the text box above the challenge.


Course Tutors

The CS department hires several TAs that have office hours throught the week. For information regarding the tutoring schedule please refer to the common course syllabus. Please note that the tutor's role is to help support your learning - they will not do your homework for you!


Troubleshooting

Here are some tips if you run into trouble using one of the online modules. Note that if you think you've discovered a "bug" please e-mail your instructor so we can fix it for everyone!

  • Programs don't ask for input when run.
    Make sure that JavaScript and pop-ups are allowed for our site in your browser.
  • I can't use 'sep' and 'end' when calling the print function!
    The 'sep' and 'end' keyword arguments are not uspported in our web-based coding environment. To use these features please launch IDLE on your own computer and run the code locally.
  • When I try to run code it errors with "NetworkError: Failed to execute ..."
    Many of the networking library functions will not run correctly using our web-based coding environment. To use these libraries please launch IDLE on your own computer and run the code locally - this becomes import during Module #9 (File Input & Output).
  • When I try to import a module I get "ImportError: No module named ______________ on line N".
    The online coding environment has a very limited number of features that it supports. To use additional features that aren't available, please launch IDLE on your own computer and run the code locally.
  • When I run my code I get "AttributeError: '' object has no attribute '______________' on line N".
    The online coding environment has a very limited number of features that it supports. To use additional features that aren't available, please launch IDLE on your own computer and run the code locally.


Acknowledgments

These interactive modules, developed by Andrew Case, Deena Engel, and Craig Kapp, are a product of the eLearning Pilot Project at NYU's Courant Institute. The support of Danna Kelmer (our student worker) as well as the CS Department Administration have been invaluable in helping make this possible.

There have been many contributors to the project. We would like to thank the following:

  • Interactive Code is based on Skulpt by Scott Graham
  • The code editor and syntax highlighting are based on CodeMirror by Marijn Haverbeke
Without these open source tools, this project would not have been possible. In kind the documentation for this project is provided using the GNU Free Documentation License


Copyright 2014-2018