What’s on this page
Before 2015, we required students to program in C++. We didn’t teach people C++, and just expected them to figure it out. While many people survived the experience, it was often a disaster. If you were hoping for an excuse to learn C++, sorry.
There are three small downsides for some people:
- There aren’t too many other classes that require C++. So, if you want something that will force you to learn it, you may be out of luck.
- We did C++ for 15 years. We built up a lot of example code and project frameworks. This means that we had really cool projects because we could give people good starting points. Unfortunately, the project structure from these older classes doesn’t scale to the very large sections of 559 that we are teaching now. So, even if we did program in C++, its unlikely we would have as open-ended projects are we once did. We’ll try to make the projects cool anyway.
Summary of Programming Rules
- You should only use the libraries that we give you.
- You must give proper attribution to any code that you don’t write yourself. This includes copying lines of code (or even retyping lines of code) from web forums.
Tools that check your program and warn you of errors (such as jshint or eslint) are allowed (and encouraged).
In order to keep things simple, we will only ask you to use libraries that we select and give to you. Often, this means that you need to do more stuff yourself than you probably would need to otherwise. But that’s part of the assignment design: we want you to program these pieces yourself (even if you could have found a library that does it already). Sometimes this will be painful (for example, when we manipulate SVG using direct DOM calls).
You might be concerned about having to learn a new programming language as part of learning about something else.
If you’re an advanced CS student (and you should be if you’re taking this class), you should be able to pick up new languages easily.
Debuggers: The web browsers have debuggers built in. These are generally pretty complete (you can set breakpoints, inspect variables, …). The in-browser debuggers will talk to IDEs.
Editors and IDEs: A longer version is at Tools for 559, but the short answer: you can use your favorite text editor. But it’s probably worth taking the time to pick a modern IDE. I am recommending Visual Studio Code (see Visual Studio Code (VSCode) for CS559). It has excellent integrated support for debugging, code checking, code formatting, etc. It has this cool feature where it will run a mini-web server so you can test your program, and cause the web browser to automatically update so you’ll see changes in your program immediately as you edit it.
Source Control: More details at Git and GitHub in CS559 , but the short answer: we will use GIT in this class. You will use it to get starter code and submit your programs. Learn to use source control - it can help you even when you are working by yourself.
We recommend Visual Studio Code (VSCode) for CS559. (see Visual Studio Code (VSCode) for CS559))