---
# System prepended metadata

title: Preliminary Meeting Agenda and Notes
tags: [pre-semester-planning]

---

---
title: Preliminary Meeting Agenda and Notes
tags: [pre-semester-planning]

---
## What we'll talk about
- [GitHub](#Getting-on-GIT)
    - [Github Classroom](#Github-Classroom)
- [Workshops](#Workshops)
- [* Homework 1: Review](#Homework-1:-Review)
- [Homework 2: CNNs and MLPs](#Homework-2:-CNNs-and-MLPs)
- [* Homework 3: BERAS](#Homework-3:-BERAS)
- [Homework 4: ImCap](#Homework-4:-ImCap)
- [* Homework 5: Reinforcement Learning](#Homework-5:-Reinforcement-Learning)
- [Homework 6: ???](#Homework-6:-???)

# Getting on GIT

I created a repo in the Brown-Deep-Learning organinzation for S25 which you can find [here](https://github.com/Brown-Deep-Learning/DeepLearningS25). You won't be able to access it until I have everyone's git usernames which we should do now. 

I've also created a classroom to host this iteration as well. Classroom can be a little annoying but it's not important. Notes for later reference on classroom below

### Github Classroom
- We need to base it out of an Organization, which is why we use the Brown-Deep-Learning org. 
  :::warning
  Only owners of the organization can create classrooms so at least one HTA every year is added as an owner.
  :::
- Every assignment needs it's *own stencil repo* in the organization, which is where it copies from when students get the assignment copies. Usually, it's easiest to make and edit stencil in the main DeepLearningS25 repo then create a stencil repo once the assignment is set. 
    ::: info
    If we need to make changes to the stencil on the fly, **we need to make them in the new repo, then log onto classroom and sync the assignment**. Students who have already started working will get a pull request. Those who haven't gotten the stencil code yet will just get the new code as usual when they go to copy the repo.
    :::
# Workshops
I don't have anything to say here but wanted to leave a little room for discussion about what we are planning on doing before the semester. Maybe we can also do some workshop idea brainstorming.

- Hyperparam tuning (before CNNs)
- G

# Homework 1: Review

## Assignment Overview and Learning Goals

This assignment is just meant to give a brief review of the math we will use repeated throughout the course. It includes some lin-alg, calc and probability.

## How it looked F24
 F24: We added a ***huge*** section about advanced python, numpy and tensorflow so that students could familiarize themselves with everything we will use throughout the course. 
 
We decided not to grade this assignment so it ended up being more of a documentation guide more than anything, but still many students did not use it.

### Positive Notes

It is really comprehensive and covers just about everything that they will ever need to use for the rest of the assignments.

### Complaints from Staff

Leaving it ungraded was a big mistake. Very few students even looked at it let alone gave it a thorough read through. So in effect, we still had to show them the numpy, tensorflow and python concepts in hours anyway.

### Complaints from Students

A handful of handout typos which have since been amended. Though again, not many students paid it much attention.

## Proposed changes
Grade it. Convert the walkthrough exercises into stencil and have students submit on gradescope like usual. We could even grade it by hand for completion if we don't want to make an autograder for it but we definitely need to incentivize students to do it.

Chen (prof for F24) also said he'd like to bring back an assignment with basic ML stuff like K-means or clustering as the review assignment. Could work well here.

# Homework 2: CNNs and MLPs

## Assignment Overview and Learning Goals
In this assignment students use tensorflow to predict a subset of the CIFAR-10 dataset. They first use an MLP then move to a CNN. Finally, they manually write 2D convolution and use it in their previously built pipeline.

## How it looked F24
- We added the MLP component in F24 and did some OOP cleanup to appreciate the fact that we have two different models. We also used the Cat-Deer-Dog subset instead of Cat-Dog which made the hyperparam tuning non-trivial and more instructive. 

- We also introduced the change of submitting predictions to the autograder instead of training the model on gradescope every submission. This was a big win as far as speed goes but left more room for cheating.

- This assignment used to be after BERAs but we put it before BERAs this semester. More on that change later.

### Positive Notes
The addition of MLPs made the assignment a little cleaner I think. Manual Conv-2D was still the hardest part but most people were able to complete it with ease. The redesigned stencil code made debugging more natural. Overall this assignment was very good.

### Complaints from Staff
Autograder needs some additional tests to avoid some really niche bugs in the implementation that are hard to catch, though we only saw one or two of these.

### Complaints from Students
Hyperparam tuning got to be egregious in a handful of cases

loss(labels, logits) vrs loss(logits, labels)

## Proposed changes
Just adding a handful of autograder tests for some more finegrained testing. Nothing major.

Adding some training onto the autograder so that students cannot copy weights, but only doing so if a FINAL.txt file is submitted and only for a small number of steps to ensure training is occuring

# Homework 3: BERAS

## Assignment Overview and Learning Goals

Code Tensorflow by hand.

## How it looked F24

We merged what used to be parts 1 and 2 into one mega assignment and gave students an extra week to work on it (though very few students actually used the extra week). It came after CNNs instead of being the first 2 assignments. We updated the handout majorly to make the roadmap very clear and each todo explicitly written. 

### Positive Notes
We saw hands down the smoothest run of BERAs thus far, with most students able to crush it without much trouble.

A combination of Chen's explicit lectures on the concepts, the new handout and students being familiar with the pipeline from CNNs made it much more digestable, less dizzying and more straightforward. Student's still had some trouble with gradient as usual, but very few people (if anyone) had "I have no idea where to start" questions and those who did have questions pretty quickly got on track.

### Complaints from Staff
More autograder tests, we made a handful of on the fly updates but we need more tests on the interactions between modules when we put them together. 

Wild bug in the optimizers that passed autograder but didnt update variables

### Complaints from Students
Same as above, it was a long assignment and it took longer than the others but almost everyone was still able to finish it in a very reasonable amount of time. 

## Proposed changes
- Stronger autograder.
- Add matrix calculus help for get_input_gradients 
- Weekly deadlines for pieces of the assignment (I think we should do this for every assignment but *definitely* for BERAS).
- I'd **really** like to add doing CIFAR-10 classification with a CNN to the end of BERAS. We already have them write manual Conv-2D so if we give them the formula for the gradient (or even the code) it should be a relatively simple application and I think it would tie everything together very nicely. Probably this would only be a small portion of the grade (maybe 5% or 5% + bonus?) 

# Homework 4: ImCap

## Assignment Overview and Learning Goals
Train RNN and Transformer Decoders to caption images encoded by a RESNET from the Flikr-8k dataset

## How it looked F24
We removed the dependency of the notebook and included it only for visualizations after the body of the assignment had been completed. We also added some autograding components and did some stencil redesign similar to that of CNNs.

### Positive Notes
Very smooth assignment, few issues and students seemed to be able to do it rather easily. 

### Complaints from Staff
Not many, there were a couple weird bugs but nothing unreasonable.

### Complaints from Students
Not many here either, some typos in stencil and handout but those were all small and now fixed.

## Proposed changes
More autograder tests, low priority.

# Homework 5: Reinforcement Learning

## Assignment Overview and Learning Goals
Students train and test 2.5 RL methods on CartPole. DeepQ Learning, REINFORCE and REINFORCE with BASELINE.

## How it looked F24
This assignment was late in the semester and the REINFORCE + REINFORCE with BASELINE components became Bonus/Extra credit. DeepQ was completely fresh and I thought would be rather hard. It was not, students were easily able to crush the assignment. I am not sure if any TAs answered any RL questions in hours.

### Positive Notes
Ended up being much easier and straightforward than expected. It's made with a good deal of generality so students are able to use practically the same code to train any gym environment which is cool.

### Complaints from Staff
None, but we need more autograder tests probably

### Complaints from Students
None

## Proposed changes
I know Eric mentioned trying to coordinate with the robotics lab to train on and fly drones. Would be really cool and probably easy to incorporate. That said, RL can be very compute intensive so I do worry about that aspect. The spread of machine power is quite wide among students and it is felt particularly hard with RL.

# Homework 6: ???

We didn't have a homework 6 last semester after we cut Language Modeling since it didn't really have a purpose anymore. We could bring back a language assignment, try to branch out with something like the old GANs VAE combo homework from S23/24 or convert the F24 Diffusion or Foundation models mini-projects into assignments. Or we could just leave well enough alone and push for more time to work on the final project. I think the TAs and I felt like we left a lot of potential learning out last semester but there's a lot that goes into that.

I think these 5 assignments are enough, and that we should push this conversation until after we feel ready to launch Homeworks 1-5
