Top Banner
CS50 Beyond
51

CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Jun 06, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CS50 Beyond

Page 2: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Course Overview

Page 3: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Topics

• HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React • Scalability, Security

Page 4: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Schedule

• 7 days, Saturday January 19 — Friday January 25 • 10am-5pm

• 10am-12:30pm : Morning Session • 12:30pm-2pm: Lunch • 2pm-5pm: Afternoon Session

Page 5: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Staff

Instructor • Brian Yu

Teaching Fellows • Athena Braun • Josh Sacher • Krishna Suraj • Julia Pearl

Page 6: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Website

• cs50.harvard.edu/beyond

Page 7: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Agenda

• HTML • HTML5 Features • Regular Expressions

• CSS • Selectors, Combinators, Specificity • Box Model • Responsive Design

Page 8: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

HTML

Page 9: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

<!DOCTYPE html> <html> <head> <title>Hello!</title> </head> <body> Hello, world! </body> </html>

Page 10: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Common HTML Elements

• <h1>, <h2>, ..., <h6>

• <ol>, <ul>

• <img>

• <a>

• <table>

• <form>

Page 11: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Links

• Linking to local page • Linking to external page • Linking to same page

Page 12: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Page Organization

HTML4

•<div class="header"> •<div class="nav"> •<div class="section"> •<div class="footer">

HTML5

•<header> •<nav> •<section> •<footer>

Page 13: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

New HTML5 Features

• contenteditable

• datalist

• pattern

• audio

• video

• ...

Page 14: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

• Define a "regular language" • Used in string searching algorithms • Basic Operations

• Concatenation • Alternation • Kleene Star

Page 15: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

hi

Matches:

hi

Page 16: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

hi|hello

Matches:

hi hello

Page 17: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

hi?

Matches:

h hi

Page 18: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

hi*

Matches:

h hi hii hiii hiiii ...

Page 19: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

hi+

Matches:

hi hii hiii hiiii ...

Page 20: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

hi{3}

Matches:

hiii

Page 21: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

.

Matches:

a A 2 8 ! ...

Page 22: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

\.

Matches:

.

Page 23: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

[a-z]

Matches:

a b c ... z

Page 24: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

[A-Z]

Matches:

A B C ... Z

Page 25: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

[0-9]

Matches:

0 1 2 ... 9

Page 26: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

[0-9]{3}-[0-9]{3}-[0-9]{4}

Matches:

123-456-7890 617-495-1000 555-555-5555 ...

Page 28: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Regular Expressions

Expression:

0|-?[1-9][0-9]*

Matches:

0 2 28 -2 -28 ...

Page 29: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CSS

Page 30: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Common CSS Properties

• color

• text-align

• width, height

• margin, padding

• font-family, font-size, font-weight

• border

Page 31: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CSS Box Model

Content

Page 32: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CSS Box ModelBorder

Content

Page 33: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CSS Box ModelMarginBorder

Content

Page 34: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CSS Box ModelMarginBorder

Padding

Content

Page 35: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Identifying Elements

• div

• span

• id

• class

Page 36: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

SelectorsSelector Purpose

a, b Multiple Element Selectora b Descendant Selector

a > b Child Selectora + b Adjacent Sibling Selector[a=b] Attribute Selector

a:b Pseudoclass Selectora::b Pseudoelement Selector

Page 37: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Specificity

1. inline 2. id 3. class 4. type

Page 38: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

RGB Colors

#4682b4R G B

00 — ff0 255

Page 39: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Responsive Design

• Viewport • Media Queries • Flexbox • Grid

Page 40: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Viewport

Page 41: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Viewport

Page 42: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Media Queries

• Media Types: print, screen, ... • Media Features: height, width, orientation, ...

Page 43: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Flexbox

1 2 3 4 5 61 2 3 4 5 6

Page 44: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Flexbox

1 2 3 4 5 6

1 2 3 4 5 6

Page 45: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Flexbox

1 2 3 4 5 61 2 3 4 5 6

Page 46: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Flexbox

1 2 3 4 5 61 2 3 4 5 6

Page 47: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Flexbox

1 2 3 4 5 61 2 3 4 5 6

Page 48: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Flexbox

1 2 3 4 5 61 2 3

4 5 6

Page 49: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Bootstrap

• A front-end component library.

Page 50: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

Morning Project

• Experiment! • Design an HTML page using...

• HTML5 features (contenteditable, datalist, etc.) • CSS selectors and combinators • Responsive design (media queries, flexbox, etc.)

• Try to replicate an existing webpage

Page 51: CS50 Beyond · CS50 Beyond. Course Overview. Topics • HTML5, CSS3 • Git • JavaScript, Functional Programming • Python, Flask • Database Design, SQL, ORM, APIs • React

CS50 Beyond