CSE 142, Spring 2021: Resources

Overview

This page contains tips and information about the many resources we provide for you to get help in the class when you need it. Regardless of if you're new to programming or have some experience, all of these resources can be helpful for you!

Course Staff

The course staff is here to help you! We are always happy to help explain concepts or answer questions about the course. Here are some ways that you can get help from a member of the course staff:

  • Email: see the Course Staff Page for email addresses.
  • Message Board: We regularly check the ed message board and try to answer questions promptly
  • Miya's Coffee Hours: Wed 12pm, Thurs 8:30am PST
  • Support Hours: The TAs staff support hours nearly every day of the week (see the schedule)

Weekly Checklists & Resource Guides

  • This class can be difficult at times! We cover a lot of material that may not be easy to understand at first. To help you navigate the course, we offer a lot of resources. Here's a guide on how you might want to use the different resources available, depending on where you are or what you are working on!
  • This quarter, we're also creating weekly checklists, that have: (1) a weekly schedule of the course, (2) recommended ways to spread coursework, (3) optional enriching experiences, and (4) required actions for the course. This is meant to help you stay on track.

Note: You must be logged into your UW G Suite to access the guide and the checklists. If you are having difficulty accessing the Google Form, try following these instructions.

Support Hours

here are some good ways of using support hours

  • We recommend having a TA teach you how to use the debugger tool in your IDE here. It can be an incredibly valuable tool. jGRASP's debugging tool is prime for pinpointing where things are going wrong in your program
  • If you find a section problem related to the homework material that you are unable to figure out on your own, this is a great thing to work with a TA on in great detail
  • Asking the TA to give you a mini-lecture on a concept or example you didn't quite get from lecture/section. This is another area where TAs will talk as in depth as the want about the material
  • Here are a couple examples of good hours questions:
    • "My code isn't working. Can you show me how to use the debugger so I can figure this out?"
    • "I was debugging my code and for some reason even though I passed the variable as a parameter, the value wasn't updated in main. Do you know why that is?"
    • "I don't understand what Miya meant when she said X is bad style. Can you explain?"

here are some bad ways of using support hours

  • Expecting the TA to point out exactly which lines of code are broken and/or how. The TAs are happy to show you debugging strategies and help you step through your code, but you should be deciding what changes to make
  • Asking a TA whether or not something will be a deduction. TAs will not pre-grade your take-home assessment. You can ask general questions and discuss pros and cons of a certain approach, but how you solve the problem is ultimately your decision. If you want insight into how your assessment will be graded, you can consult the generic rubric in the syllabus
  • Here are a couple examples of bad hours questions:
    • "My code is broken. Please tell me the line of code I have to change to make it work."
    • "Will doing X on my take-home assessment result in a worse grade?"

Message Board

This is where you can ask more specific questions about the homework spec or when TAs aren't holding support hours. Other students, TAs, and Miya monitor this board so you can potentially get help more quickly this way. You can access the Ed message board here.

Please do NOT post the code to solve a homework assignment (in whole or in part) on the class discussion board publicly, ever, for any reason. This includes posting partial code in progress in order to ask what is wrong with it. Also please do not provide highly detailed English descriptions of your solution to an assignment, such as describing exactly what methods, parameters, and loops you used to solve it. It is, however, acceptable and encouraged to discuss homework ideas in general terms.

If you do post solution code publicly, this will be considered a violation of the course academic integrity policy and may lead to punishment as outlined by that policy. If you need help on your program, please seek other means of help rather than posting your code. For example, if you want to show your code to a TA or instructor, please bring it to them in person at their hours instead. If you must post code on the message board, please make it a private post.

Tools & Guides for Homework

There are various resources provided to help you succeed with take-home assessments. We find that the students who succeed in 142 are the ones that use these tools regularly throughout the quarter.

Code Quality Guide

The Code Quality Guide is the official source for writing good quality code in this course.

Suggested Readings

IMPORTANT: This guide covers the entire quarter, so it is not meant to be something that you read through in one sitting -- rather, it is a reference guide that you will hopefully be able to go back to as new topics are addressed. We've tried to make notes of approximately when certain code quality issues become relevant next to section headings. Here is a (linked!) table of suggested readings that you can go through before you turn in each homework assignment. Note that these suggested readings stack on top of each other -- ie: assignment 4's suggested readings include assignment 3's, which include assignment 2's, etc.

assignment # suggested readings
1
2
3
4
5
6
7
8

Code Quality Checker

The Code Quality Checker is a tool designed to check your code against the code quality guidelines for this class. You copy and paste code in and it will give you a list of code quality issues that it finds. This tool is not perfect or all-encompassing, so use with caution.

Indenter Tool

The Indenter Tool can fix your indentation. You copy and paste code bits in and it will fix the indentation, then you can copy and paste the code back into your program. If you are using Ed to code, this tool may not be helpful to you as Ed has a "smart-indent" feature you can turn on to have your code auto-indent to the right levels.

Warning: This doesn't work perfectly if you omit curly braces around single line if and for loop statements. Use with caution and make sure to read the disclaimer on the page.

Resource Request Form

If there is any resource you would like to see us create, feel free to fill out the form! Do note that filling this form out is not a guarantee that we will create that resource.

F.A.Q.

"unable to encode text using charset us-ascii" Errors

Some users who have their OS configured with a non-English primary language cannot properly see the compiler errors in jGRASP. To fix this problem, follow these steps in jGRASP.

  1. Click "Settings" -> "Compiler Settings" -> "Workspace".
  2. In the settings box that pops up, click the "Flags / Args" tab (in the lower row of tabs).
  3. Then, click the black "button" under "FLAGS or ARGS" and next to "Compile".
  4. In the text box that becomes available type in -J-Duser.language=en and click "OK".

Some Windows users who have their OS configured with a non-English primary language encounter an "unable to encode text using charset us-ascii" error when closing jGRASP. This seems to happen after opening and closing a file whose path contains non-English characters. Until this bug is fixed in jGRASP, we recommend only storing your Java files in folders with English names. Sorry about that!

Once jGRASP has seen a file with a non-English path, it will remember it, even if you've renamed the folder. To make it forget about the old path and stop displaying this error message, you'll need to delete your jGRASP workspace and create a new default one. Before doing this, make sure you know where on your computer your Java code is saved, because jGRASP will forget which files and folders you have open.

  1. Make sure jGRASP is closed.
  2. Open C:\Users\YOUR_USERNAME\ in Windows Explorer and delete the folder named .grasp_settings.
  3. Re-open jGRASP.

This will reset jGRASP back to its default settings, making it forget the old filename.