CSE 142, Winter 2022: 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!

Required Software

You will need to install the Java Development Kit (JDK) and the jGRASP IDE for CSE 142. Instructions for installing both can be found here.

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
  • Brett's Office Hours: TBD
  • Support Hours: The TAs staff support hours nearly every day of the week (see the schedule)

Assessment Resources

  • A large part of the difficulty in the take-home assessments is understanding their specifications. To help you through this, we have created several resources including walkthrough videos and FAQ pages for each assessment.
  • Assessment 1 Resources

Support Hours

The support hours schedule can be found on the Course Staff Page

What to ask at the IPL

  • 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 Brett meant when he said X is bad style. Can you explain?"

What the IPL can't help with

  • 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 Brett 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.

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

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.

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.