Skip to content

Commit

Permalink
week 10
Browse files Browse the repository at this point in the history
  • Loading branch information
pandrew99 committed Dec 3, 2023
1 parent 2c02d75 commit f33391d
Show file tree
Hide file tree
Showing 2 changed files with 242 additions and 1 deletion.
2 changes: 1 addition & 1 deletion _posts/weeks/2023-11-27-week9.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags:
categories:
- week
header: no
current: true
current: false
todos:
- due-date: "9:00 am Wednesday November 29, 2023"
name: "Quiz 9"
Expand Down
241 changes: 241 additions & 0 deletions _posts/weeks/2023-12-04-week10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
---
layout: page-fullwidth
subheadline: Week 10
published: true
title: "Week 10 – Wrapping Up"
tags:
- post week remote-access
categories:
- week
header: no
current: true
todos:
- due-date: "10:00 pm Sunday December 3, 2023"
name: "Lab Report 4 Resubmission"
url: "/week/week7/#week7-lab-report"
- due-date: "10:00 pm Sunday December 3, 2023"
name: "Lab Report 5"
url: "/week/week9/#week9-lab-report"
- due-date: "9:00 am Monday December 4, 2023"
name: "Quiz 10"
url: "https://www.gradescope.com"
handouts:
- name: "Monday/Wednesday Lecture Handout (Slides)"
url: "https://docs.google.com/presentation/d/1DH7-n8FWcTbWey7Q9zZIlKeZqtUUnS75oxMVN0GSkVE/edit?usp=share_link"
- name: "Monday/Wednesday Lecture Handout (PDF)"
url: "https://drive.google.com/file/d/1eTS61kXBGJoGmWIllHySmsUamqDC5_km/view?usp=share_link"
notes:
podcasts:
- name: "9 am Section - A00"
url: "https://podcast.ucsd.edu/watch/fa23/cse15l_a00"
- name: "11 am Section - B00"
url: "https://podcast.ucsd.edu/watch/fa23/cse15l_b00"
- name: "12 pm Section - C00"
url: "https://podcast.ucsd.edu/watch/fa23/cse15l_c00"
- name: "9 am Section - D00"
url: "https://podcast.ucsd.edu/watch/fa23/cse15l_d00"
- name: "10 am Section - E00"
url: "https://podcast.ucsd.edu/watch/fa23/cse15l_e00"
---

<div class="row">
<div class="medium-4 medium-push-8 columns" markdown="1">
<div class="panel radius fixed-toc" data-options="sticky_on:large" markdown="1">
**Table of Contents**
{: #toc }
* TOC
{:toc}
</div>
</div><!-- /.medium-4.columns -->

<div class="medium-8 medium-pull-4 columns" markdown="1">

## Due Dates & Links

<ul>
{% for todo in page.todos %}
<li><a href="{{ todo.url }}">{{ todo.name }}</a> - Due {{ todo.due-date }}</li>
{% endfor %}
</ul>

## Lecture Materials
<ul>
{% for handout in page.handouts %}
<li><a href="{{handout.url}}">{{handout.name}}</a></li>
{% endfor %}
</ul>

### In-class notes
{% for note in page.notes %}
<li><a href="{{ note.url }}">{{ note.name }}</a></li>
<!-- <iframe src="{{ note.url }}/preview" width="640" height="480" allow="autoplay"></iframe> -->
{% endfor %}

### Links to Podcast
**Note:** Links will require you to log in as a UCSD student
<ul>
{% for link in page.podcasts %}
<li><a href="{{link.url}}">{{link.name}}</a></li>
{% endfor %}
</ul>

## Lab Tasks

Discuss with your group:

![Image](../../images/fictional_map.png)

Write down your answers (and why you chose them!) in your group's shared doc.

---

In this lab, you'll be presented with a sequence of common debugging scenarios
that we have noticed students encountering this quarter. For each one, there's a
brief description and a screenshot. Your job is to *reproduce* the error shown
in the screenshot so that you see it on your own computer, and then describe the
fix.

For **each** of the scenarios below, you should:

1. **Write down in notes**: Discuss and confirm with your partner – what is the
**desired** or **expected** behavior, and which part of the output is wrong or
not what's expected?
2. Reproduce this behavior with your partner. If you have to, take the time to
write out exactly the command-line in a suitable repository. To reproduce, we mean
getting your terminal/editor to look as much like the one in the screenshot as
possible. It might not be possible to make it _exactly_ the same—your username
will be different, for instance—but you should see the same error message for
the same command.
3. **Write down in notes**: Take a screenshot of your reproduction and put it in
the notes, along with a description of how you reproduced it (e.g. if you first
cloned a repository, opened a terminal, and changed directory, for example).
4. **Write down in notes**: Describe how to change the commands or program to get
the _expected_ output. This might take some time and thinking! Did you need to
gather any more information to figure out the issue? What helped you figure out
the issue in the end? If you had a tutor or someone else help, what suggestions
did they make to lead you to the answer?
5. **Write down in notes**: Have you ever made this mistake before? What was easy
or hard about noticing the error? What could you do in the future to notice or
fix it more quickly?

_(This is good practice and gives some understanding about what we do as course
staff when we see your EdStem posts!)_

One skill we're practicing here is **reproducing** bugs. In general when
reporting issues or asking questions, there's a question of
**reproducibility**: whoever is seeing the error usually doesn't have
access to your running system, so **reproducing** the possible error from the
given information is a key step. Sometimes screenshots are more helpful than
just text, because they include the Visual Studio Code file browser or other
similar visual details. Sometimes text is more helpful than a screenshot,
because it can be easily copy-pasted to try out some code on another computer.
You can always provide both to really help the person trying to reproduce the
error, which is what we do in some cases below!

### Scenario 1

Here's a screenshot of an error (right-click and "Open Image in New Tab" to see
it if it's too small). For reference, this one was using the [lab 3 code
repository](https://github.com/ucsd-cse15l-f23/lab3). The programmer was trying
to run the tests.

![Image](/images/run-java-not-class.png)


### Scenario 2

Imagine you are a tutor or TA and you only have access to the screenshot below, but
not all the code. What would be frustrating about helping someone identify the
bug in this scenario?

![Image](/images/scenario2.png)

_(The course staff does not have to imagine 😉)_

### Scenario 3

`bug.sh` contains the following code:

```bash
VAR=7

if [[1 -eq $VAR ]]
then
echo "it was 1"
fi
```

![Image](/images/2023-03-03-15-33-10.png)

### Scenario 4

A project has the following file layout:

![Image](/images/2023-03-03-15-41-10.png)

The contents of `Code.java` is this:

```java
import java.io.File;

public class Code {
public static void main(String[] args) {
File file = new File(args[0]);
if (file.exists()) {
System.out.println("File exists, yay!");
}
else {
System.out.println("The file does not exist :(");
}
}
}
```

Then this surprising result happens (the programmer was expecting the file to
be reported as existing):

![Image](/images/2023-03-03-15-41-25.png)

### Reflection

You've learned a lot this quarter! (We hope)

It's useful to reflect on what we've learned. (Seriously, it helps with the
learning process to do reflection.)

Think about what you've learned in labs, lecture, and quizzes this quarter.
Think about a question or a problem that you can answer now that you would not
have been able to at the begining of the quarter. **Write it down in the notes**.

Then, the other people in your group will try to answer it or talk about how
they would go about solving the problem using things they learned in class. Did
they have the same answer as you? Did they highlight any different parts of
their learning?

The best learning here will come from questions that aren't one-line answers
(“how do you git push from the command line” won't be a useful reflection, for
instance). A task you can imagine doing with a few lines of a `bash` script, a
strategy for debugging or choosing good test cases, a workflow for setting up a
project, a choice of Java feature for a particular program, and more could be
good examples of things to discuss.

### Open Discussion

Spend the remainder of the time discussing general computing/CSE
department/course/research topics with your group and tutor.

**Write down in notes before starting the questioning out loud (tutors, don't
answer questions until folks have a chance to think and write!)** What is a
question you have for your tutor/lab TA/classmates? Some potential conversation
starters are below, but don't be limited to these:

- What classes are you taking?
- Are you involved in any student organizations?
- Have you done an internship recently?
- What topics from CSE15L come up again and again in your courses?
- Are you involved in research?
- What has been your favorite/least favorite course at UCSD?

Once you've spent a few minutes thinking and writing something down, start
asking! Feel free to mix groups, listen in on other conversations, move around
the room, and ask these questions to the lead TA, too!

0 comments on commit f33391d

Please sign in to comment.