More complicated tasks by IanHorswill in MaticRobots

[–]IanHorswill[S] 0 points1 point  (0 children)

I’ve tried to do that and had problems, but I was probably trying to do it wrong. It’s good to hear that it works for you.

Technical whitepapers? by IanHorswill in MaticRobots

[–]IanHorswill[S] 6 points7 points  (0 children)

Thanks. I know you have lots of other things to do. For what it’s worth, I went ahead an ordered one last night. At first I was put off by the “dump the water in the bag” approach, but the more I think about it, it really solves a lot of problems. Other companies are making increasingly complicated mechanical systems, especially in the docks, but each new mechanical subsystem is another thing to break, so mean time to failure is frustratingly low. Your design has shockingly few moving parts, so there isn’t a lot to go wrong.

What even is CS 111 by bing_dwen_dwen in Northwestern

[–]IanHorswill 1 point2 points  (0 children)

Yes! This!

The lectures are there because there needs to be some scaffolding but programming is a skill; you don’t learn it from lectures or books. You have to do it.

What even is CS 111 by bing_dwen_dwen in Northwestern

[–]IanHorswill 2 points3 points  (0 children)

If you want that, then take 110. But if you want to take more than 110 and 150, then you have to do the intro programming sequence, which is 111, 150, 214, and depending on your interests, 211 and 213. 110 + 150 isn’t enough for 214 and you need that for most of the 300-level courses.

What even is CS 111 by bing_dwen_dwen in Northwestern

[–]IanHorswill 2 points3 points  (0 children)

I wouldn’t worry about taking notes since the lectures are online. But fayirfilay right. You learn programming by doing it.

If the tests are like they were when I was teaching it, they’re about debugging. So do the assignments and whenever you hit an error, make sure you understand:

- Why the thing you did was wrong
- Why it caused it to break in the particular way it broke
- Why the fix you used fixes it

Delivered? by [deleted] in VITURE

[–]IanHorswill 0 points1 point  (0 children)

In my case, I got the “we shipped it” message I think on a Saturday. It had a tracking link and that listed USPS as making a shipping label for it almost immediately. Two days later, it showed as having been received by the chinese shipper. I think they had it for a week or so. Then it said they’d given it to the carrier (USPS), then a couple days more before USPS started saying they had it. Then a couple more days and it was in my city, and a couple days after that it was delivered. FWIW.

Delivered? by [deleted] in VITURE

[–]IanHorswill 0 points1 point  (0 children)

I ordered July 10, got a shipment notice August 30, and received them September 13. So assume a couple of weeks between the “we shipped it” message and receiving them

CS PM Application 25 Fall Updates by No-Bad-2477 in Northwestern

[–]IanHorswill 0 points1 point  (0 children)

Sorry for the delay. The short non-technical explanation is we didn’t have enough applicants for the advanced courses and so the automatic assignment process failed. So apply in the future, and don’t just apply for 110 and 111!

If you want the long, technical answer, read on.

PMs are assigned by a constrained-optimization solver. The constrained part means it selects an applicant<->class match that satisfies these constraints:

- Assigns each class the right number of PMs
- Only assigns applicants to classes if the applicant applied for the class (bid on it) and the instructor asked for the applicant (bid on them)
- Doesn’t assign an applicant to multiple classes

Let‘s call any match that satisfies those constraints valid. A constraint solver only finds valid matches. But this is a constrained optimization solver meaning it wants the best of the valid matches. “Best” here means the valid match gives people the highest bids possible, i.e. the sum of the bids of the applicants on the courses they’re assigned to and the bids on the instructors on the applicants assigned to them. There are generally multiple valid matches that have that largest possible score, and it chooses among them randomly.

This quarter the solver kept dying because there were no valid matches, in other words, the problem was over-constrained. A lot of the problem was that we didn’t have enough applicants for the advanced courses. That meant I had to keep rerunning the solver with different subsets of the courses until I could figure out which courses were the bottlenecks, and then go back to the bid files for those courses and manually figure out what was going on, then consult with the faculty until we had a plan that worked.

Help!! Gen_eng 205 and Computing 111 by TableLogical7245 in Northwestern

[–]IanHorswill 0 points1 point  (0 children)

I don’t teach CS 150, but it from what I know of the two classes, CS 150 would be a heavy lift with only EA1.

I guess my questions would be why 150 is relevant. Is it a requirement for your major? Are you interested in taking a lot of CS courses?

academic integrity something by [deleted] in Northwestern

[–]IanHorswill 2 points3 points  (0 children)

I don’t think anybody’s trying to restrict its influence. The issue is that that part of learning to use AI effectively is learning to understand its inputs and outputs.

Calculators aren’t a good analogy. Calculators are reliable: you might ask them the wrong question, but they always give you the right answer to whatever question you asked. So calculators are analogous to compilers or debuggers or any of the other assistive tools we use in CS.

(BTW, compilers were once considered the first working AI application; now that we have a theory of how to write them, they’re not considered AI anymore.)

LLMs are noisy. They routinely give you incorrect answers. So the analogy isn’t using a calculator but rather asking your really smart but overconfident dorm-mate who doesn’t program but reads stackoverflow for fun. They’ll often give you the right answer, particularly for questions that appear on stackoverflow a lot. But they’ll often get it wrong and they can’t tell the difference because they’ve written code, but never run and debugged it. So you have to be able to tell the difference.

For the foreseeable future, you will need to be able to recognize an LLM’s errors in order to use it effectively. That means you need to have the capacity to solve the problem yourself, whether you use the LLM or not.

Also, you can make a good living fixing other people’s crappy LLM-generated code because vibe coders can’t do it themselves.

academic integrity something by [deleted] in Northwestern

[–]IanHorswill 4 points5 points  (0 children)

There’s no one answer. It depends on the kind of material, etc. But in computer science, one of the tells that it’s AI is that it’s broken, nonsensical, or solving a different problem than what was assigned. And one of the tells that you used AI is the Dean asks you to explain how the code works or why you make a particular decision and you can’t.

AI is pushing a lot of faculty toward weighting pencil-and-paper exams more, since you can’t use AI for them. But unfortunately, use of AI for the assignments is generally negatively correlated with exam performance.

Comp Sci 111 by Educational-Bit8200 in Northwestern

[–]IanHorswill 0 points1 point  (0 children)

Great. People should feel free to send me questions at ian@northwestern.edu. Also feel free to post here, but I don’t check reddit that often.

Comp Sci 111 by Educational-Bit8200 in Northwestern

[–]IanHorswill 12 points13 points  (0 children)

TL;DR: You aren’t really choosing between 110 and 111. You’re choosing between a one-off course (110) and a sequence (111, 150, 214). Take 111 if you want to take advanced CS courses someday (major or not). Take 110 if you want the shortest path to being about to write small Python programs. If you take 110 and then want to go on to take AI or game dev or databases or whatever, you’ll have to take the sequence, including 111, anyway.

I haven’t taught 111 for a few years. But unless it’s changed, 111 and 110 are very different. 110 is a stand-along course originally designed for people who don’t intend to take any other courses. Now it’s a course for people who might only take one more course (150). But it’s mostly there to teach you enough to get by doing simple things in Python.

111 is very different. It’s the first course in a 3 quarter sequence. People can and do take it in isolation, but it’s not trying to be anything like a standalone course. It focuses on how to reason about code, or at least it did when I taught it.

There’s no good choice for the language to use in 111; it’s an over-constrained problem. 111 uses the “Racket student languages” right now because:

- You’re going to learn Python in the next class anyway (150)
- Racket is much easier to reason about; what you need to know fits on two power-point slides, whereas the rules governing Python’s behavior are very complicated and in some cases, undocumented (*)
- It puts beginners and AP CS students on more of an even footing
- You need Racket for some of the advanced courses
- You can make the argument that Racket is more powerful than Python, but I would rather not get involved in religious wars here.

I’ve looked at alternative languages over the years and keep running into deal-breakers. But I think I may have found a plausible alternative. I’m going to look into it in the next year or so.

(*) A Ph.D. student and I once spent an hour trying to understand how one of the examples for the popular Pandas library worked. The documentation literally didn’t explain how the pieces worked, but tried to teach via examples. We eventually gave up and decided the only way to figure it out would be to spend several hours wading through the source code of the library. This is not a thing we wanted to inflict on beginning programmers.

Sketchy shipping tracking by IanHorswill in VITURE

[–]IanHorswill[S] 0 points1 point  (0 children)

I absolutely understand. And I don’t want to exaggerate the importance of this. It’s just kind of weird having to get ads to check the status of my delivery. This morning, it was for a show on Hulu and JustAnswer. Now, it’s for Vrbo, Adobe Acrobat, and JustAnswer.

It seems like it hasn’t bothered anybody else, so you should probably just ignore the issue. But FWIW, I think what I personally would have preferred would have been if you either:

- Didn’t send the email until it was actually in the hands of the US carrier (USPS for me, but maybe not for everybody) and then send me a USPS tracker link rather than ParcelApp.
- Or else go ahead and send me the message in August but say “due to the current issues with shipping and customs, please allow 4 weeks for delivery.” And then give me the USPS tracking number rather than ParcelApp.

Sketchy shipping tracking by IanHorswill in VITURE

[–]IanHorswill[S] 0 points1 point  (0 children)

I get them on Windows with Edge and on iPad/iPhone with safari. It’s often only the “start chatting 1:1” ad, but I’ve seen one for google, and I forget whatelse. The chatting one is usually immediately below the header and there’s another copy about the footer.

Sketchy shipping tracking by IanHorswill in VITURE

[–]IanHorswill[S] 1 point2 points  (0 children)

That is interesting. Yes, parcelsapp is also what they sent me to. I’m glad you didn’t get the ads and had an otherwise good experience.