Skip to content

Latest commit

 

History

History
465 lines (342 loc) · 15.7 KB

lecture1.mdx

File metadata and controls

465 lines (342 loc) · 15.7 KB

import { Head, Appear } from "mdx-deck"; import Logo from "./assets/images/logos/rdc-icon.svg"; export { default as theme } from "./theme";

<title>React DeCal Week 1</title>

Welcome to the React DeCal!

Spring 2019 ✨


Agenda

  • Meet the Team!
  • Course Logistics
  • Thoughts on Software Engineering
  • What is React?
  • What's next?

Instructors

Ethan Lee

Aivant Goyal


Our Wonderful TAs!

Zachary Kirby

Selina Feng

Wilson Wang

Adhiv Dhar


More TAs!

Amitav Baruah

Alejandro Garcia Salas

Isabelle Zhou

Linus Lee


Even More TAs!

Brenda Zhang

Trevor Aquino

Arpan Pal


Course Logistics

  • Lectures: Barrows 20 Thurs 6-7PM
  • Labs: Barrows 20 Tuesday 6-7PM
  • Labs are long but important!
  • Weekly Attendance: 12 Weeks Total (20% of grade)
  • 0-2 unexcused = 20/20
  • 3-4 unexcused = 10/20
  • 5-6 unexcused = 0/20
  • 7+ unexcused = Automatic NP :(
  • Pre-Requisites: CS61A and CS61B (Can be taken concurrently)
Labs will cover content from the week before, and they will often be longer than you can finish in class. You are expected to finish them on your own time!

Let us know in advance if you need to leave early! Do so quietly and it's your responsibility to look up slides and catch up on material!

12 Weeks total of lecture. Final week is project presentations!

If you don't have the course prerequisites, the material will likely be very very difficult! And it'll be difficult for us to support you. We strongly recommend you take it another semester!

Assignments

You can't learn CS without actually writing code!

  • Weekly(ish) Homework Assignments
  • {" "} Designed to be useful not stressful!
  • Finishing Labs is not required but important!
  • Two projects
  • {" "} First project will be a solo, guided project
  • {" "} Final project will be a group, open-ended project
We want to provide a lot of opportunities for you to get your hands dirty with the material!

Our assignments will be fairly guided and solutions will be posted.
We're trying to strike a balance between "not taking too much time" and "interesting and useful experience"

Grading

  • 2 Units P/NP: 70% is passing
  • Grade Breakdown:
  • 20% Attendance
  • 25% Homework
  • 25% Project 1
  • 30% Final Project
  • 15% EPA Points! (Extra Credit)
Grading assignments will have a heavy emphasis on giving you advice on writing better React code.
Graded on mostly completion and effort rather than accuracy.

The final project is required to pass!

Course Resources

Our main goal is to make sure you gain as much knowledge as you can!

  • {" "} Course Portal: portal.reactdecal.org (You'll receive a link this weekend!)
  • Course Discourse: talk.reactdecal.org
  • Slides and Notes: slides.reactdecal.org
  • Weekly Office Hours — A lot of them
The portal will be home for week to week curriculum, resources, assignments, and grades.

Course Forum is our replacement for Piazza, use it to ask your questions and look for help.

There are sections for conceptual questions and debugging questions. It should be your second resource for anything debugging related!

Slides will come out in document form after each lecture. We are going to try to record our own webcasts for each lecture starting next week.

There are a lot of us, please come to office hours, we get bored!

Learning Space

We want this classroom to be exciting. Help us!

  • Lab Groups
  • New best friends: assigned next Tuesday
  • Come to Office Hours!
  • It'll make our day
  • Get to know eachother and help eachother out
  • Please don't fall asleep! Smile!
  • {" "} It's really hard to teach to a sea of sleepy faces{" "}
  • React Decal Official Playlist!
  • {" "} playlist.reactdecal.org{" "}
This is an interesting room, better than a lecture hall but not what our ideal, help us make do.

We want this to be an exciting space. Lectures will have a lot of content so we'll often focus on getting through it, but Labs are really meant to be a time to work with eachother, get to know your peers, and have fun learning new things!

Lab groups! You will be assigned a lab group next week and they will be your "partners" for the rest of the course! Lab exercises will often revolve around these groups (competitions, activities, etc)

Say hi to eachother at the start of class. We'll have ~ assigned areas ~ at some point, but just be friendly

I know it's late, I know there's no natural light in this room, I know there's a pillar in the middle of the room, but try to keep your eyes open :)

Join the playlist!

Learning How to Be Confused

Welcome to Software Engineering!

Besides just learning React, an important part of this course is learning about how to be a good software engineer.

We thought it would be worth having a conversation about what we think this means, and what we expect from you in this regard :)

Why this isn't a regular CS Class

  • Learning vs. Applying CS Fundamentals
  • Millions of applications: a whole world of unknowns
  • This is a Decal 😅
A lot of CS classes really grill you on fundamentals in a lot of strange ways. SWE slows down, takes the basics and is more about stringing them together. Grammar vs Writing an Essay
So in that sense what we do in this class will hopefully not be as intense as CS at berkeley and much more fun!

There are SO many different ways to "apply" CS. every website or app you could dream is basically a possibility. But that means it's impossible to just "learn" everything. People make new tools and libraries every day, You have to learn how to learn how to navigate this vast and wonderful ecosystem. Hence, the art of being Confused

This is a decal, this is the one thing I hate about this class. I know that this is likely a lower priority than most of your classes. So we'll try to meet you halfway and not make things too stressful, but help us out and give us your best for this course :)

This is our first time running this Decal, so we'll be doing a lot of "firsts". Bear with us!

The life of a Software Engineer

  • Debugging is unpredictable
  • Tools are complex and imperfect
This is one of my favorite Gifs, its very confusing and its often how building software feels. We will eventually be  dealing with big complex applications that have a lot of moving parts. The art of debugging is important and it's key to not lose your cool and develop good strategies to chase down a problem.

If something breaks, don't freak out. It's frankly part of the process! And as frustrating as it can be, we've all been through it.

The good news?

  • SWE Community is super collaborative
  • Practice makes perfect
  • Wonderful ecosystem of tools to help you build!
Thankfully you're not alone!! The online community is super collaborative, and our community will be too.

People who are "good" at navigating this ecosystem, are only that way after being really confused for a long time. Practice with this and patience will take you a long way. this class won't make you an expert, but it'll get you closer to it!

This ecosystem is truly fantastic. We'll be exploring what this means more as time goes on, but this means that the skills you develop (getting used to being confused) are going to enable you to build extremely cool applications.

What do we want from you?

  • Take the time to debug yourself before asking for help
  • Work with eachother!
  • Be Patient with us :')
When something breaks, READ the error message. google it! Try to make sense of what it's saying. It's scary to try solutions when you don't know what they'll do, but we'll help you fix it if it all goes wrong.

Help eachother out. If you run into an error, you're probably not the only one who's seen it. And even if your friend hasn't, you both have the chance to learn something new!

We're only human, and we've also only seen so much. We'll help you debug when the internet doesn't work, but be patient with us too. We can't respond immediately to everything and we also obviously don't know anything.

Why are you here?

Ask out loud!


What is a website?


What is React, anyway?

Talk to your neighbors and tell them a little bit about why you decided to take this course.
What is React, to the best of your knowledge?

What is React, anyway?

React is a JavaScript library for creating user interfaces.

https://reactjs.org

Facebook's official website tells us that React is a library for building user interfaces.
What that means is that we can use React to build a website's "view."

What is React, anyway?

React is also a mental model for writing components. That means React is not just for websites!


React Native


React Blessed


The structure of this class

  • JavaScript Mechanics
  • Functional React
  • Stateful React
  • React Ecosystem

Next Steps

  • Enrollment codes distributed at the front of the class
  • {" "} Waitlisted students please wait until the end, we will process enrollment codes in order{" "}
  • Register for the Discourse and Finish HW 0 by next Tuesday
  • Look out for invites to the portal + course survey
  • Add to our playlist! (playlist.reactdecal.org)

Thanks for Coming!

  • Front Left (First Names start with A-B)
  • Front Middle Left (First Names start with C-I)
  • Front Middle Right (First Names start with J-N)
  • Front Right (First Names start with O-Z)