All students need access to the following software, either on their own computer or using the department's computers:
Bash: command-line shell
Mac : built in
Windows : version available here
Git: version control system
In this course, we will only use Git for downloading starter code. However, it is an extremely useful tool that would be worth your time to learn.
Mac : built-in
Windows : comes with Bash (follow the link above)
Node.js: executes JavaScript code on the command-line
Available here
NPM: Node Package Manager
Comes with Node, above
Students are free to use any code editor. However, we can only provide support for VSCode:
Visual Studio Code: widely-used text editor with excellent support for TypeScript
Available here
Recommended VSCode Extensions:
The following are a list of suggested VSCode extensions that enable even more functionality on VSCode, which can be especially helpful when interacting with an editor for the first time! To install an extension, follow the link to the VSCode website which provides more information on the extension, click the big green Install button which will redirect you to VSCode, and then prompt you to install there. You will have to complete these steps for each extension that you wish to install.
Comfy TS Linter: ensures that your code follows the coding conventions required for CSE 331.
Please do the following steps as soon as possible. They will be necessary for the first homework due on the first Friday of the quarter. You will also need them before the first section of the quarter. If you have trouble, get as far as you can on your own, and TAs will be able to help. Also, feel free to reach out on the Ed message board! We also recorded a video walkthrough setting up all the required CSE 331 software on Mac.
Figure out if you're using MacOS, Windows, or Linux. Then, make sure you follow the instructions that work for your computer as you proceed through this document.
For this course, we recommend you do all of your coding locally.
Your command-line shell is built-in. It will be an application on your laptop called "Terminal"
Git is built-in.
If you'd like to install the full Apple developer command line tools package instead, which includes git, you can run the command xcode-select --install from the terminal. This includes many additional tools that some people will find useful for other courses (like c/c++ compilers and debuggers.) Note: this does not install the full XCode IDE, just the command line developer tools. The tools are also installed automatically if you have installed the Homebrew package manager (also not required for CSE 331, but popular with many MacOS developers).
Note: Everyone should install Node. Even if you already have it installed, do it again! The Node installer will handle duplicate and outdated versions, so following these instructions will ensure you have the correct version of Node for this class.
First, navigate to the Node.js homepage and select the LTS version of Node.js. This will also install the correct version of NPM automatically. You may get a warning about the installer not coming from a “verified developer.” To resolve this, open System Preferences and navigate to Security & Privacy > General. There, you'll be able to click “Open” to run the Node/NPM installer.
NPM comes with Node.js so you should have it now as well.
Mac: Navigate to the VSCode homepage and select the big blue Mac button. Then, follow any prompts that you are given.
Linux: Navigate to the VSCode homepage and select the big blue .deb or .rpm buttons, depending on which of the 2 designated categories that your OS falls under. Then, follow any prompts that you are given.
A note for Windows users: For anything you download in this course (both downloading tools in the following instructions and downloading/cloning homework or section code) you should make sure you are storing things in local directories (directly on your machine). Specifically, do not place code or other downloads in a OneDrive folder. This can cause various issues with tools not working as expected.
You can install your own version of Bash. On the Git for Windows page select Download and then follow any prompts that you are given.
Git comes with Bash, so if you completed the instructions above for Bash, you should already have it!
Note: Everyone should install Node. Even if you already have it installed, do it again! The Node installer will handle duplicate and outdated versions, so following these instructions will ensure you have the correct version of Node for this class.
First, navigate to the Node.js homepage and select the LTS version of Node.js for Windows. This will also install the correct version of NPM automatically. Make sure that the “Add to PATH” option is enabled with the “Will be installed on local hard drive” sub-option during the installation process. Keep the “Tools for Native Modules” option disabled. These selections should be the default instalation options, so just verify they are made.
NPM comes with Node.js so you should have it now as well.
Navigate to the VSCode homepage and select the big blue Windows button. Then, follow any prompts that you are given.
All work will be turned in via the 331 Gradescope. For each assignment, you will turn in your written work and code separately.
You will turn in your written work to the "HW# Written" assignment on Gradescope. Make sure that any handwritten work is legible (and high enough contrast) for us to read. If the graders cannot read your solution, they cannot give you points. Also, when you turn in your written HW to Gradescope, please match each HW problem to where you did your work. If you do not do this, you may receive a point deduction.
You will turn in your code to the "HW# Code" assignment on Gradescope. You only need to submit the final version of each of the files you worked on in the assignment.
In the HW instructions, for each coding problem, we will identify which files that you will need to upload to Gradescope. It is crucial that you only upload the files that we instruct you to, or else you may not pass the autograder. For example, if HW1 Problem 30 says to upload file example.ts and Problem 60 says to upload fun.ts, you should only upload example.ts and fun.ts to Gradescope. You should not put example.ts and fun.ts into a folder, and then upload the folder to Gradescope, as this will cause you to fail the autograder.
Be sure to look for any error messages from the autograder when you submit, and be sure that you received all of the auto-graded points. If you did not, you can examine the error messages, identify the problem, and then submit a corrected solution. Make sure you leave enough time to fix any errors that identified by the autograder. Try to avoid submitting for the first time in the last few minutes before the assignment is due because that will not leave you enough time to fix any problems encountered.