xuxi
xuxi is the platform we’ll use this semester to host programming exercises. It’s still a work in progress (being built by Tim), so it may still be rough around the edges. If you run into any problems, please let us know on Edstem — we’ll make sure your grade isn’t negatively impacted.
Here’s what you need to know:
Logging in
You can find a link to xuxi in the left sidebar on bCourses. You’ll need to use this link to log in (there’s no email or password login).
Completing exercises
You can start a new attempt at an exercise from within xuxi. This will open a VS Code editor in your browser, pre-loaded with a development environment for the exercise.
It generally takes 10-15 seconds for an exercise to load, though it can take a few minutes if the servers are busy. If you get stuck in a loading state, please make an Ed post (and let us know which exercise you were trying to load).
You’ll want to open the exercise documentation within VS Code — you’ll find this linked in the left sidebar (under the 🎓 menu), or by typing “Open Exercise” in the Command Palette (note that Ctrl+Shift+P may not work in your browser — you can also use the F1 key).
The left sidebar (under the 🎓 menu) will also include a link to see your work in a web browser (where relevant). You’ll generally want to use this while you’re working!
To complete an exercise, pass all the tests in the VS Code environment. You can find the test runner in the left sidebar (it looks like a lab flask). Make sure not to edit the tests! This may invalidate your submission (we have some protections against this, but they aren’t perfect).
When you run the tests, their results will synchronize back to xuxi (you may need to refresh the page). You can look at your dashboard in xuxi to see how many points you’ve earned. Exercises are scored on completion — once you pass all the tests, you’ll earn 100% credit for the exercise.
You can close the VS code editor at any time; when you come back, you can pick up on the exercise attempt where you left off. If you ever mess up your environment real bad, you can start a new attempt from the xuxi website, which will give you a fresh environment.
Exercises
Most programming exercises are shorter than you’ll typically find in other courses, intended to target a particular skill. You can get a general sense of how long we expect an assignment to take by looking at how many points it’s worth. We try to calibrate assignments so that 1 point corresponds to around 10 minutes of work, although some assignments will take more or less time.
Assignments
Most weeks, we’ll have a programming assignment or two for you to complete. To earn full credit for the assignment, you’ll need to complete exercises earning enough points to meet the assignment requirements. For example, if this week’s assignment is for 20 points, you can complete a 5-point, a 10-point, and another 5-point exercise to reach the threshold.
Once you’ve completed an exercise, you’ve earned those points for good. As the semester goes on, we’ll ask you to complete more total points. For example, if we have an assignment for 20 points in the first week, we might have an assignment for 40 points in the next week; all of your existing points will carry over, so you’ll only need to complete 20 more points in the second week.
You’ll generally be able to work ahead, if there are enough extra exercises available, so that earning extra points will lighten your load in a future week.
Multiple assignments
Sometimes, we’ll assign work that is scoped to a particular set of exercises. For example, we might ask you to complete 15 points of JavaScript exercises, in addition to the overall 60-point assignment for the week.
One exercise can count towards multiple assignments. For example, if you had already completed 40 points of exercises in the previous week, and you completed 15 points of JavaScript exercises this week, you would only need to complete 5 more points (of any exercise) to meet the requirements for the current week.
Category caps
Note that the “overall” assignment may include limits on how many points can be earned within particular sections. For example, you won’t be able to earn all 140 points just by completing CSS exercises, even if there are enough exercises available. This is to ensure that we can add lots of content but still give you a well-rounded experience.