+ All Categories
Home > Documents > Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma...

Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma...

Date post: 19-Jun-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
127
Lecture 0 Principles of Functional Programming Summer 2020 Welcome & Introduction Course Stuff, Functional Programming, and the SML Evaluation System
Transcript
Page 1: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Lecture 0Principles of Functional Programming

Summer 2020

Welcome & IntroductionCourse Stuff, FunctionalProgramming, and the SMLEvaluation System

Page 2: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Section 1

Welcome to 150

Jacob Neumann Welcome & Introduction 18 May 2020 2 / 34

Page 3: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

(Please pardon the amount of information on these slides)

Jacob Neumann Welcome & Introduction 18 May 2020 3 / 34

Page 4: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Who we are

Instructors

Jacob Neumann: Me! I’m finishing up my master’s degree in logic(in the CMU Philosophy Department). I’ve taught 15-150 six timesas a TA, most recently spring 2020.Dilsun Kaynar: Dilsun is an Assistant Teaching Professor in SCS.She will be delivering several lectures this semester.

TAs: Aditi Gupta, Agam Kumar, Avery Cowan, Brandon Wu,Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, EthanRosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, JamesGallicchio, Kaz Zhou, Leah Restad, Len Huang, Lili Chang, MiaTang, Nikhita Subbiah, Rahjshiba Koanda, Siva Somayyajula,Soumil Mukherjee, Tim Ganger

(See the course website at cs.cmu.edu/~15150/ for pictures & contactinfo).

Jacob Neumann Welcome & Introduction 18 May 2020 4 / 34

Page 5: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Who we are

Instructors

Jacob Neumann: Me! I’m finishing up my master’s degree in logic(in the CMU Philosophy Department). I’ve taught 15-150 six timesas a TA, most recently spring 2020.

Dilsun Kaynar: Dilsun is an Assistant Teaching Professor in SCS.She will be delivering several lectures this semester.

TAs: Aditi Gupta, Agam Kumar, Avery Cowan, Brandon Wu,Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, EthanRosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, JamesGallicchio, Kaz Zhou, Leah Restad, Len Huang, Lili Chang, MiaTang, Nikhita Subbiah, Rahjshiba Koanda, Siva Somayyajula,Soumil Mukherjee, Tim Ganger

(See the course website at cs.cmu.edu/~15150/ for pictures & contactinfo).

Jacob Neumann Welcome & Introduction 18 May 2020 4 / 34

Page 6: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Who we are

Instructors

Jacob Neumann: Me! I’m finishing up my master’s degree in logic(in the CMU Philosophy Department). I’ve taught 15-150 six timesas a TA, most recently spring 2020.Dilsun Kaynar: Dilsun is an Assistant Teaching Professor in SCS.She will be delivering several lectures this semester.

TAs: Aditi Gupta, Agam Kumar, Avery Cowan, Brandon Wu,Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, EthanRosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, JamesGallicchio, Kaz Zhou, Leah Restad, Len Huang, Lili Chang, MiaTang, Nikhita Subbiah, Rahjshiba Koanda, Siva Somayyajula,Soumil Mukherjee, Tim Ganger

(See the course website at cs.cmu.edu/~15150/ for pictures & contactinfo).

Jacob Neumann Welcome & Introduction 18 May 2020 4 / 34

Page 7: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Who we are

Instructors

Jacob Neumann: Me! I’m finishing up my master’s degree in logic(in the CMU Philosophy Department). I’ve taught 15-150 six timesas a TA, most recently spring 2020.Dilsun Kaynar: Dilsun is an Assistant Teaching Professor in SCS.She will be delivering several lectures this semester.

TAs: Aditi Gupta, Agam Kumar, Avery Cowan, Brandon Wu,Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, EthanRosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, JamesGallicchio, Kaz Zhou, Leah Restad, Len Huang, Lili Chang, MiaTang, Nikhita Subbiah, Rahjshiba Koanda, Siva Somayyajula,Soumil Mukherjee, Tim Ganger

(See the course website at cs.cmu.edu/~15150/ for pictures & contactinfo).

Jacob Neumann Welcome & Introduction 18 May 2020 4 / 34

Page 8: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Who we are

Instructors

Jacob Neumann: Me! I’m finishing up my master’s degree in logic(in the CMU Philosophy Department). I’ve taught 15-150 six timesas a TA, most recently spring 2020.Dilsun Kaynar: Dilsun is an Assistant Teaching Professor in SCS.She will be delivering several lectures this semester.

TAs: Aditi Gupta, Agam Kumar, Avery Cowan, Brandon Wu,Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, EthanRosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, JamesGallicchio, Kaz Zhou, Leah Restad, Len Huang, Lili Chang, MiaTang, Nikhita Subbiah, Rahjshiba Koanda, Siva Somayyajula,Soumil Mukherjee, Tim Ganger

(See the course website at cs.cmu.edu/~15150/ for pictures & contactinfo).

Jacob Neumann Welcome & Introduction 18 May 2020 4 / 34

Page 9: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The task before us

Cover a full semester’s worth of content,in 6 weeks,

completely remotely

This will require lots of persistence, diligence, and hard work!

Jacob Neumann Welcome & Introduction 18 May 2020 5 / 34

Page 10: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The task before us

Cover a full semester’s worth of content

,in 6 weeks,

completely remotely

This will require lots of persistence, diligence, and hard work!

Jacob Neumann Welcome & Introduction 18 May 2020 5 / 34

Page 11: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The task before us

Cover a full semester’s worth of content,in 6 weeks

,completely remotely

This will require lots of persistence, diligence, and hard work!

Jacob Neumann Welcome & Introduction 18 May 2020 5 / 34

Page 12: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The task before us

Cover a full semester’s worth of content,in 6 weeks,

completely remotely

This will require lots of persistence, diligence, and hard work!

Jacob Neumann Welcome & Introduction 18 May 2020 5 / 34

Page 13: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The task before us

Cover a full semester’s worth of content,in 6 weeks,

completely remotely

This will require lots of persistence, diligence, and hard work!

Jacob Neumann Welcome & Introduction 18 May 2020 5 / 34

Page 14: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Course Structure

Lecture

Introduce concepts and techniquesDemonstrate how to solve problems

Lab

Review lecture contentShow more worked examples (lab solutions posted afterwards)Give you hands-on experience solving problems (with your peers)

Homework

Give you extensive experience with contentAssess how well you understand how to solve problems (on your own)Usually focused on one topic

Quizzes

Test how well you internalized & deeply understood materialProvide a “check” for you (and us) to continually gauge your progress

Final

Evaluate how well you understood the material overall

Jacob Neumann Welcome & Introduction 18 May 2020 6 / 34

Page 15: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Course Structure

Lecture

Introduce concepts and techniquesDemonstrate how to solve problems

Lab

Review lecture contentShow more worked examples (lab solutions posted afterwards)Give you hands-on experience solving problems (with your peers)

Homework

Give you extensive experience with contentAssess how well you understand how to solve problems (on your own)Usually focused on one topic

Quizzes

Test how well you internalized & deeply understood materialProvide a “check” for you (and us) to continually gauge your progress

Final

Evaluate how well you understood the material overall

Jacob Neumann Welcome & Introduction 18 May 2020 6 / 34

Page 16: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Course Structure

Lecture

Introduce concepts and techniquesDemonstrate how to solve problems

Lab

Review lecture contentShow more worked examples (lab solutions posted afterwards)Give you hands-on experience solving problems (with your peers)

Homework

Give you extensive experience with contentAssess how well you understand how to solve problems (on your own)Usually focused on one topic

Quizzes

Test how well you internalized & deeply understood materialProvide a “check” for you (and us) to continually gauge your progress

Final

Evaluate how well you understood the material overall

Jacob Neumann Welcome & Introduction 18 May 2020 6 / 34

Page 17: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Course Structure

Lecture

Introduce concepts and techniquesDemonstrate how to solve problems

Lab

Review lecture contentShow more worked examples (lab solutions posted afterwards)Give you hands-on experience solving problems (with your peers)

Homework

Give you extensive experience with contentAssess how well you understand how to solve problems (on your own)Usually focused on one topic

Quizzes

Test how well you internalized & deeply understood materialProvide a “check” for you (and us) to continually gauge your progress

Final

Evaluate how well you understood the material overall

Jacob Neumann Welcome & Introduction 18 May 2020 6 / 34

Page 18: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Course Structure

Lecture

Introduce concepts and techniquesDemonstrate how to solve problems

Lab

Review lecture contentShow more worked examples (lab solutions posted afterwards)Give you hands-on experience solving problems (with your peers)

Homework

Give you extensive experience with contentAssess how well you understand how to solve problems (on your own)Usually focused on one topic

Quizzes

Test how well you internalized & deeply understood materialProvide a “check” for you (and us) to continually gauge your progress

Final

Evaluate how well you understood the material overall

Jacob Neumann Welcome & Introduction 18 May 2020 6 / 34

Page 19: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Course Structure

Lecture

Introduce concepts and techniquesDemonstrate how to solve problems

Lab

Review lecture contentShow more worked examples (lab solutions posted afterwards)Give you hands-on experience solving problems (with your peers)

Homework

Give you extensive experience with contentAssess how well you understand how to solve problems (on your own)Usually focused on one topic

Quizzes

Test how well you internalized & deeply understood materialProvide a “check” for you (and us) to continually gauge your progress

Final

Evaluate how well you understood the material overall

Jacob Neumann Welcome & Introduction 18 May 2020 6 / 34

Page 20: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Synchronicity

“Officially”, this course is offered on Pittsburgh time and you areexpected to attend every course meeting live

,

but we’re doing our best to make this course as accessible as possible:

Lectures will be recorded, and the recordings made available,

In addition to the official 9am-10:20am EDT lab time, we will offerlabs at 12pm-1:20pm EDT and some time late at night EDT (i.e.daytime in Asia & the Pacific),

In addition to afternoon/evening office hours, we will offer someoffice hours very late at night and/or very early in the morning(EDT).

Jacob Neumann Welcome & Introduction 18 May 2020 7 / 34

Page 21: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Synchronicity

“Officially”, this course is offered on Pittsburgh time and you areexpected to attend every course meeting live,

but we’re doing our best to make this course as accessible as possible

:

Lectures will be recorded, and the recordings made available,

In addition to the official 9am-10:20am EDT lab time, we will offerlabs at 12pm-1:20pm EDT and some time late at night EDT (i.e.daytime in Asia & the Pacific),

In addition to afternoon/evening office hours, we will offer someoffice hours very late at night and/or very early in the morning(EDT).

Jacob Neumann Welcome & Introduction 18 May 2020 7 / 34

Page 22: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Synchronicity

“Officially”, this course is offered on Pittsburgh time and you areexpected to attend every course meeting live,

but we’re doing our best to make this course as accessible as possible:

Lectures will be recorded, and the recordings made available

,

In addition to the official 9am-10:20am EDT lab time, we will offerlabs at 12pm-1:20pm EDT and some time late at night EDT (i.e.daytime in Asia & the Pacific),

In addition to afternoon/evening office hours, we will offer someoffice hours very late at night and/or very early in the morning(EDT).

Jacob Neumann Welcome & Introduction 18 May 2020 7 / 34

Page 23: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Synchronicity

“Officially”, this course is offered on Pittsburgh time and you areexpected to attend every course meeting live,

but we’re doing our best to make this course as accessible as possible:

Lectures will be recorded, and the recordings made available,

In addition to the official 9am-10:20am EDT lab time, we will offerlabs at 12pm-1:20pm EDT and some time late at night EDT (i.e.daytime in Asia & the Pacific)

,

In addition to afternoon/evening office hours, we will offer someoffice hours very late at night and/or very early in the morning(EDT).

Jacob Neumann Welcome & Introduction 18 May 2020 7 / 34

Page 24: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Synchronicity

“Officially”, this course is offered on Pittsburgh time and you areexpected to attend every course meeting live,

but we’re doing our best to make this course as accessible as possible:

Lectures will be recorded, and the recordings made available,

In addition to the official 9am-10:20am EDT lab time, we will offerlabs at 12pm-1:20pm EDT and some time late at night EDT (i.e.daytime in Asia & the Pacific),

In addition to afternoon/evening office hours, we will offer someoffice hours very late at night and/or very early in the morning(EDT).

Jacob Neumann Welcome & Introduction 18 May 2020 7 / 34

Page 25: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Don’t complete course activities “asynchronously”if you do not have to

Jacob Neumann Welcome & Introduction 18 May 2020 8 / 34

Page 26: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Grades

Your semester grade will be based on the following:

35% – Homeworks (9)

25% – Quizzes (5)

10% – Lab Attendance (12)

05% – Lecture Attendance (28)

25% – Final Exam (1)

See the course website (url below) for the schedule of when these takeplace.

The university is not doing the same Pass/Fail option from the Spring.We will determine the grade letter boundaries based on a review ofeveryone’s work and achievements in the course (and we’ll do our best tobe fair); we will not be releasing information on grade cutoffs – don’task!

Jacob Neumann Welcome & Introduction 18 May 2020 9 / 34

Page 27: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Grades

Your semester grade will be based on the following:

35% – Homeworks (9)

25% – Quizzes (5)

10% – Lab Attendance (12)

05% – Lecture Attendance (28)

25% – Final Exam (1)

See the course website (url below) for the schedule of when these takeplace.

The university is not doing the same Pass/Fail option from the Spring.

We will determine the grade letter boundaries based on a review ofeveryone’s work and achievements in the course (and we’ll do our best tobe fair); we will not be releasing information on grade cutoffs – don’task!

Jacob Neumann Welcome & Introduction 18 May 2020 9 / 34

Page 28: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Grades

Your semester grade will be based on the following:

35% – Homeworks (9)

25% – Quizzes (5)

10% – Lab Attendance (12)

05% – Lecture Attendance (28)

25% – Final Exam (1)

See the course website (url below) for the schedule of when these takeplace.

The university is not doing the same Pass/Fail option from the Spring.We will determine the grade letter boundaries based on a review ofeveryone’s work and achievements in the course (and we’ll do our best tobe fair); we will not be releasing information on grade cutoffs – don’task!

Jacob Neumann Welcome & Introduction 18 May 2020 9 / 34

Page 29: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Homework

When the HW is released, SSH into andrew, and use 150m20 todownload the homework (details below)

Complete the homework, producing a tarfile with your codesolutions and a pdf file with your (typeset) written solutions.

Submit each to the appropriate Gradescope assignment before thedeadline.

Jacob Neumann Welcome & Introduction 18 May 2020 10 / 34

Page 30: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Homework

When the HW is released, SSH into andrew, and use 150m20 todownload the homework (details below)

Complete the homework, producing a tarfile with your codesolutions and a pdf file with your (typeset) written solutions.

Submit each to the appropriate Gradescope assignment before thedeadline.Jacob Neumann Welcome & Introduction 18 May 2020 10 / 34

Page 31: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Homework

For the code, there is a script which will do some basic checks onyour submission (it does not grade your code). You’re highlyencouraged to submit early and often, and make sure yoursubmission passes this script.

There are no late days this semester. All due dates are final, barringexceptional circumstances.

Jacob Neumann Welcome & Introduction 18 May 2020 11 / 34

Page 32: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Homework

For the code, there is a script which will do some basic checks onyour submission (it does not grade your code). You’re highlyencouraged to submit early and often, and make sure yoursubmission passes this script.

There are no late days this semester. All due dates are final, barringexceptional circumstances.

Jacob Neumann Welcome & Introduction 18 May 2020 11 / 34

Page 33: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Attendance

Lecture

1 Attend lecture

I will post the link to a form where you can submit attendance if you’rewatching the lecture recorded instead of live (“asynchronously attend”).Some work will be required of you. If you anticipate needing to attendmore than a few lectures asynchronously, you must coordinate that withme.

Lab

1 Attend lab

2 Solve the question with your group

3 Submit your answer (as a group) to the corresponding Gradescopeassignment

You’ll receive full points for any answer that shows effort and thought. Ifyou cannot attend lab, please use the “Adjustments form” (detailedbelow) to indicate this, and you’ll be able to make that lab up.

Jacob Neumann Welcome & Introduction 18 May 2020 12 / 34

Page 34: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Attendance

Lecture

1 Attend lecture

I will post the link to a form where you can submit attendance if you’rewatching the lecture recorded instead of live (“asynchronously attend”).Some work will be required of you. If you anticipate needing to attendmore than a few lectures asynchronously, you must coordinate that withme.

Lab

1 Attend lab

2 Solve the question with your group

3 Submit your answer (as a group) to the corresponding Gradescopeassignment

You’ll receive full points for any answer that shows effort and thought. Ifyou cannot attend lab, please use the “Adjustments form” (detailedbelow) to indicate this, and you’ll be able to make that lab up.

Jacob Neumann Welcome & Introduction 18 May 2020 12 / 34

Page 35: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Attendance

Lecture

1 Attend lecture

I will post the link to a form where you can submit attendance if you’rewatching the lecture recorded instead of live (“asynchronously attend”).Some work will be required of you.

If you anticipate needing to attendmore than a few lectures asynchronously, you must coordinate that withme.

Lab

1 Attend lab

2 Solve the question with your group

3 Submit your answer (as a group) to the corresponding Gradescopeassignment

You’ll receive full points for any answer that shows effort and thought. Ifyou cannot attend lab, please use the “Adjustments form” (detailedbelow) to indicate this, and you’ll be able to make that lab up.

Jacob Neumann Welcome & Introduction 18 May 2020 12 / 34

Page 36: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Attendance

Lecture

1 Attend lecture

I will post the link to a form where you can submit attendance if you’rewatching the lecture recorded instead of live (“asynchronously attend”).Some work will be required of you. If you anticipate needing to attendmore than a few lectures asynchronously, you must coordinate that withme.

Lab

1 Attend lab

2 Solve the question with your group

3 Submit your answer (as a group) to the corresponding Gradescopeassignment

You’ll receive full points for any answer that shows effort and thought. Ifyou cannot attend lab, please use the “Adjustments form” (detailedbelow) to indicate this, and you’ll be able to make that lab up.

Jacob Neumann Welcome & Introduction 18 May 2020 12 / 34

Page 37: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Attendance

Lecture

1 Attend lecture

I will post the link to a form where you can submit attendance if you’rewatching the lecture recorded instead of live (“asynchronously attend”).Some work will be required of you. If you anticipate needing to attendmore than a few lectures asynchronously, you must coordinate that withme.

Lab

1 Attend lab

2 Solve the question with your group

3 Submit your answer (as a group) to the corresponding Gradescopeassignment

You’ll receive full points for any answer that shows effort and thought.

Ifyou cannot attend lab, please use the “Adjustments form” (detailedbelow) to indicate this, and you’ll be able to make that lab up.

Jacob Neumann Welcome & Introduction 18 May 2020 12 / 34

Page 38: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Attendance

Lecture

1 Attend lecture

I will post the link to a form where you can submit attendance if you’rewatching the lecture recorded instead of live (“asynchronously attend”).Some work will be required of you. If you anticipate needing to attendmore than a few lectures asynchronously, you must coordinate that withme.

Lab

1 Attend lab

2 Solve the question with your group

3 Submit your answer (as a group) to the corresponding Gradescopeassignment

You’ll receive full points for any answer that shows effort and thought. Ifyou cannot attend lab, please use the “Adjustments form” (detailedbelow) to indicate this, and you’ll be able to make that lab up.

Jacob Neumann Welcome & Introduction 18 May 2020 12 / 34

Page 39: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Quizzes & Final

Quizzes

1 During the allotted time, go to the Gradescope assignment

2 Complete the quiz

Quizzes will happen during your lab time, and will cover whatevercontent was covered on homeworks since the last quiz. The quizzes willbe designed to take you 30 or 40 minutes, but you’ll have twice thatmuch time to complete them.

Final: Likely to be similar to Quizzes, except longer and covering theentire course. Details TBA as we get closer.

Jacob Neumann Welcome & Introduction 18 May 2020 13 / 34

Page 40: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Quizzes & Final

Quizzes

1 During the allotted time, go to the Gradescope assignment

2 Complete the quiz

Quizzes will happen during your lab time, and will cover whatevercontent was covered on homeworks since the last quiz. The quizzes willbe designed to take you 30 or 40 minutes, but you’ll have twice thatmuch time to complete them.

Final: Likely to be similar to Quizzes, except longer and covering theentire course. Details TBA as we get closer.

Jacob Neumann Welcome & Introduction 18 May 2020 13 / 34

Page 41: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Quizzes & Final

Quizzes

1 During the allotted time, go to the Gradescope assignment

2 Complete the quiz

Quizzes will happen during your lab time, and will cover whatevercontent was covered on homeworks since the last quiz.

The quizzes willbe designed to take you 30 or 40 minutes, but you’ll have twice thatmuch time to complete them.

Final: Likely to be similar to Quizzes, except longer and covering theentire course. Details TBA as we get closer.

Jacob Neumann Welcome & Introduction 18 May 2020 13 / 34

Page 42: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

How to earn your grades: Quizzes & Final

Quizzes

1 During the allotted time, go to the Gradescope assignment

2 Complete the quiz

Quizzes will happen during your lab time, and will cover whatevercontent was covered on homeworks since the last quiz. The quizzes willbe designed to take you 30 or 40 minutes, but you’ll have twice thatmuch time to complete them.

Final: Likely to be similar to Quizzes, except longer and covering theentire course. Details TBA as we get closer.

Jacob Neumann Welcome & Introduction 18 May 2020 13 / 34

Page 43: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The 150 m20 script

Note: Infrastructure office hours during lab times tomorrow

If executed from somewhere within the private directory of your afsspace,

150 m20 lecture 4

downloads the lecture number 4 code/notes.

150 m20 homework basics

downloads the basics homework handout.

150 m20 lab datatypes

downloads the datatypes lab handout.

150 m20 lab -sol induction

downloads the induction lab solutions.

Jacob Neumann Welcome & Introduction 18 May 2020 14 / 34

Page 44: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The 150 m20 script

Note: Infrastructure office hours during lab times tomorrowIf executed from somewhere within the private directory of your afsspace,

150 m20 lecture 4

downloads the lecture number 4 code/notes.

150 m20 homework basics

downloads the basics homework handout.

150 m20 lab datatypes

downloads the datatypes lab handout.

150 m20 lab -sol induction

downloads the induction lab solutions.

Jacob Neumann Welcome & Introduction 18 May 2020 14 / 34

Page 45: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The 150 m20 script

Note: Infrastructure office hours during lab times tomorrowIf executed from somewhere within the private directory of your afsspace,

150 m20 lecture 4

downloads the lecture number 4 code/notes.

150 m20 homework basics

downloads the basics homework handout.

150 m20 lab datatypes

downloads the datatypes lab handout.

150 m20 lab -sol induction

downloads the induction lab solutions.

Jacob Neumann Welcome & Introduction 18 May 2020 14 / 34

Page 46: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The 150 m20 script

Note: Infrastructure office hours during lab times tomorrowIf executed from somewhere within the private directory of your afsspace,

150 m20 lecture 4

downloads the lecture number 4 code/notes.

150 m20 homework basics

downloads the basics homework handout.

150 m20 lab datatypes

downloads the datatypes lab handout.

150 m20 lab -sol induction

downloads the induction lab solutions.

Jacob Neumann Welcome & Introduction 18 May 2020 14 / 34

Page 47: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The 150 m20 script

Note: Infrastructure office hours during lab times tomorrowIf executed from somewhere within the private directory of your afsspace,

150 m20 lecture 4

downloads the lecture number 4 code/notes.

150 m20 homework basics

downloads the basics homework handout.

150 m20 lab datatypes

downloads the datatypes lab handout.

150 m20 lab -sol induction

downloads the induction lab solutions.

Jacob Neumann Welcome & Introduction 18 May 2020 14 / 34

Page 48: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

The 150 m20 script

Note: Infrastructure office hours during lab times tomorrowIf executed from somewhere within the private directory of your afsspace,

150 m20 lecture 4

downloads the lecture number 4 code/notes.

150 m20 homework basics

downloads the basics homework handout.

150 m20 lab datatypes

downloads the datatypes lab handout.

150 m20 lab -sol induction

downloads the induction lab solutions.

Jacob Neumann Welcome & Introduction 18 May 2020 14 / 34

Page 49: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything. Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 50: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything. Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 51: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything. Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 52: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything. Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 53: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything. Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 54: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything.

Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 55: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Adjustments Form

I’ll post a link to a Google form, which you should fill out in order to:

Request permission to submit lab attendance late (must besubmitted before lab, or else you won’t receive credit)

Request to be moved to a different lab time

Arrange to complete lecture attendance asynchronously

Other administrative stuff, as it comes up

I’ll try to check the form daily, and contact you I need to follow up onanything. Before emailing us or posting to Piazza, kindly make sure thatyour issue isn’t directly addressed by some option on the form.

Jacob Neumann Welcome & Introduction 18 May 2020 15 / 34

Page 56: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 57: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 58: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website

150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 59: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 60: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 61: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 62: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 63: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

Lecture recordings

Will be posted on Canvas

Lecture notes & code

Will be posted on website150m20 lecture <lectNum >

Lab solutions

150m20 lab -sol <labName >

Piazza

piazza.com/cmu/summer2020/15150/home

Office hours

Details will be posted on Piazza/Canvas

The 150 course website

cs.cmu.edu/~15150/

Jacob Neumann Welcome & Introduction 18 May 2020 16 / 34

Page 64: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

The sml help website (in development)

smlhelp.github.io

Gradescope

gradescope.com/courses/115308

Includes “Regrade Request” feature, where you can request the TAtake another look & provide you more detailed explanation forgrading

Talk to us!

Post privately on Piazza, or find our contact details on the coursewebsiteAnything related to academic integrity, privacy, semester grades,accommodations, etc. should be directed to Professors. Anythingrelated to grading (i.e. your grade on a particular assignment), officehours, clarifications on homework problems, lab-related stuff, etc.should be direct to the TAs.Get to know your TAs!

Jacob Neumann Welcome & Introduction 18 May 2020 17 / 34

Page 65: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

The sml help website (in development)

smlhelp.github.io

Gradescope

gradescope.com/courses/115308

Includes “Regrade Request” feature, where you can request the TAtake another look & provide you more detailed explanation forgrading

Talk to us!

Post privately on Piazza, or find our contact details on the coursewebsiteAnything related to academic integrity, privacy, semester grades,accommodations, etc. should be directed to Professors. Anythingrelated to grading (i.e. your grade on a particular assignment), officehours, clarifications on homework problems, lab-related stuff, etc.should be direct to the TAs.Get to know your TAs!

Jacob Neumann Welcome & Introduction 18 May 2020 17 / 34

Page 66: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

The sml help website (in development)

smlhelp.github.io

Gradescope

gradescope.com/courses/115308

Includes “Regrade Request” feature, where you can request the TAtake another look & provide you more detailed explanation forgrading

Talk to us!

Post privately on Piazza, or find our contact details on the coursewebsiteAnything related to academic integrity, privacy, semester grades,accommodations, etc. should be directed to Professors. Anythingrelated to grading (i.e. your grade on a particular assignment), officehours, clarifications on homework problems, lab-related stuff, etc.should be direct to the TAs.Get to know your TAs!

Jacob Neumann Welcome & Introduction 18 May 2020 17 / 34

Page 67: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

The sml help website (in development)

smlhelp.github.io

Gradescope

gradescope.com/courses/115308

Includes “Regrade Request” feature, where you can request the TAtake another look & provide you more detailed explanation forgrading

Talk to us!

Post privately on Piazza, or find our contact details on the coursewebsite

Anything related to academic integrity, privacy, semester grades,accommodations, etc. should be directed to Professors. Anythingrelated to grading (i.e. your grade on a particular assignment), officehours, clarifications on homework problems, lab-related stuff, etc.should be direct to the TAs.Get to know your TAs!

Jacob Neumann Welcome & Introduction 18 May 2020 17 / 34

Page 68: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

The sml help website (in development)

smlhelp.github.io

Gradescope

gradescope.com/courses/115308

Includes “Regrade Request” feature, where you can request the TAtake another look & provide you more detailed explanation forgrading

Talk to us!

Post privately on Piazza, or find our contact details on the coursewebsiteAnything related to academic integrity, privacy, semester grades,accommodations, etc. should be directed to Professors. Anythingrelated to grading (i.e. your grade on a particular assignment), officehours, clarifications on homework problems, lab-related stuff, etc.should be direct to the TAs.

Get to know your TAs!

Jacob Neumann Welcome & Introduction 18 May 2020 17 / 34

Page 69: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Resources available to you

The sml help website (in development)

smlhelp.github.io

Gradescope

gradescope.com/courses/115308

Includes “Regrade Request” feature, where you can request the TAtake another look & provide you more detailed explanation forgrading

Talk to us!

Post privately on Piazza, or find our contact details on the coursewebsiteAnything related to academic integrity, privacy, semester grades,accommodations, etc. should be directed to Professors. Anythingrelated to grading (i.e. your grade on a particular assignment), officehours, clarifications on homework problems, lab-related stuff, etc.should be direct to the TAs.Get to know your TAs!

Jacob Neumann Welcome & Introduction 18 May 2020 17 / 34

Page 70: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Abide by the university’s policies on academic integrity, as well asthe policies listed at cs.cmu.edu/~15150/policy.html

Read the policy on the website!You will be tested on your understanding of these policies in the firsthomeworkWe do catch people cheating. The consequences are harsh. Don’trisk it.

Attend regularly & participate

Your TAs work extremely hard to deliver this course. Show them duerespect by participating.Participating over zoom will be awkward & more difficult. Do yourbest.

Jacob Neumann Welcome & Introduction 18 May 2020 18 / 34

Page 71: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Abide by the university’s policies on academic integrity, as well asthe policies listed at cs.cmu.edu/~15150/policy.html

Read the policy on the website!You will be tested on your understanding of these policies in the firsthomework

We do catch people cheating. The consequences are harsh. Don’trisk it.

Attend regularly & participate

Your TAs work extremely hard to deliver this course. Show them duerespect by participating.Participating over zoom will be awkward & more difficult. Do yourbest.

Jacob Neumann Welcome & Introduction 18 May 2020 18 / 34

Page 72: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Abide by the university’s policies on academic integrity, as well asthe policies listed at cs.cmu.edu/~15150/policy.html

Read the policy on the website!You will be tested on your understanding of these policies in the firsthomeworkWe do catch people cheating. The consequences are harsh. Don’trisk it.

Attend regularly & participate

Your TAs work extremely hard to deliver this course. Show them duerespect by participating.Participating over zoom will be awkward & more difficult. Do yourbest.

Jacob Neumann Welcome & Introduction 18 May 2020 18 / 34

Page 73: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Abide by the university’s policies on academic integrity, as well asthe policies listed at cs.cmu.edu/~15150/policy.html

Read the policy on the website!You will be tested on your understanding of these policies in the firsthomeworkWe do catch people cheating. The consequences are harsh. Don’trisk it.

Attend regularly & participate

Your TAs work extremely hard to deliver this course. Show them duerespect by participating.

Participating over zoom will be awkward & more difficult. Do yourbest.

Jacob Neumann Welcome & Introduction 18 May 2020 18 / 34

Page 74: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Abide by the university’s policies on academic integrity, as well asthe policies listed at cs.cmu.edu/~15150/policy.html

Read the policy on the website!You will be tested on your understanding of these policies in the firsthomeworkWe do catch people cheating. The consequences are harsh. Don’trisk it.

Attend regularly & participate

Your TAs work extremely hard to deliver this course. Show them duerespect by participating.Participating over zoom will be awkward & more difficult. Do yourbest.

Jacob Neumann Welcome & Introduction 18 May 2020 18 / 34

Page 75: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 76: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 77: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.

Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 78: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.

Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 79: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to lab

If you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 80: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!

If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 81: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!

If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 82: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!

If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 83: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 84: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Communicate!

Important: If your ability to complete the course is at all affected byfactors outside your control (e.g. you or someone close to youbecomes seriously ill, you begin to have significant issues withinternet/technology access, etc.), please let us know immediately.Important: If you anticipate missing more than one or two coursemeetings (lecture or lab) in a given week, please email me and let meknow what the circumstances are. Avoid this if at all possible –falling behind is much easier to do in the summer.Fill out the “Adjustments” form (and let your lab TAs know) aheadof time if you can’t make it to labIf you are having trouble with anything or need help, let us know!If you’re feeling worn out or lost or frustrated, let us know!If you’re feeling excited or engaged or inspired, let us know!If there’s things we could be doing to make the course better, let usknow!

Jacob Neumann Welcome & Introduction 18 May 2020 19 / 34

Page 85: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permitDon’t push yourself too hardBe patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 86: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permitDon’t push yourself too hardBe patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 87: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat well

Exercise as much as your circumstances permitDon’t push yourself too hardBe patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 88: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permit

Don’t push yourself too hardBe patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 89: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permitDon’t push yourself too hard

Be patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 90: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permitDon’t push yourself too hardBe patient with yourself & others – this is a challenge for everyone

Do as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 91: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permitDon’t push yourself too hardBe patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.

Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 92: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Our expectations for you

It is very important you do the following.

Take care

Sleep well and eat wellExercise as much as your circumstances permitDon’t push yourself too hardBe patient with yourself & others – this is a challenge for everyoneDo as much as you can to engage with friends, family, community,etc.Have fun!

Jacob Neumann Welcome & Introduction 18 May 2020 20 / 34

Page 93: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

pause for questions

Jacob Neumann Welcome & Introduction 18 May 2020 21 / 34

Page 94: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Section 2

Functional Computation

Jacob Neumann Welcome & Introduction 18 May 2020 22 / 34

Page 95: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

What do we use computers for?

Jacob Neumann Welcome & Introduction 18 May 2020 23 / 34

Page 96: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

We’re interested in two particular answers:

To cause an effect

To calculate a value

Jacob Neumann Welcome & Introduction 18 May 2020 24 / 34

Page 97: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

We’re interested in two particular answers:

To cause an effect

To calculate a value

Jacob Neumann Welcome & Introduction 18 May 2020 24 / 34

Page 98: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

We’re interested in two particular answers:

To cause an effect

To calculate a value

Jacob Neumann Welcome & Introduction 18 May 2020 24 / 34

Page 99: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

A lot of what we do is causing effects on computers

Jacob Neumann Welcome & Introduction 18 May 2020 25 / 34

Page 100: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Calculating values is a bit different

Jacob Neumann Welcome & Introduction 18 May 2020 26 / 34

Page 101: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Imperative programming

One of the main ideas behind what we call “Imperative Programming” isto calculate values by accumulating effects0.0

def exp ( n ) :i =0r e s =1whi le i<n :

r e s = r e s ∗ 2i = i + 1

return r e s

This works.

Jacob Neumann Welcome & Introduction 18 May 2020 27 / 34

Page 102: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Imperative programming

One of the main ideas behind what we call “Imperative Programming” isto calculate values by accumulating effects0.0

def exp ( n ) :i =0r e s =1whi le i<n :

r e s = r e s ∗ 2i = i + 1

return r e s

This works.

Jacob Neumann Welcome & Introduction 18 May 2020 27 / 34

Page 103: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Problem: DESTRUCTION

0.1

def max( L ) :r e s =0whi le len ( L)>0:

c u r r e n t = L . pop ( )i f ( c u r r e n t >r e s ) :

r e s=c u r r e n treturn r e s

This does not work. The operation pop() is destructive: it changes L,rather than merely looking at it. So when we execute max(L) once, Lis destroyed and subsequent calls won’t work.

Jacob Neumann Welcome & Introduction 18 May 2020 28 / 34

Page 104: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Problem: DESTRUCTION

0.1

def max( L ) :r e s =0whi le len ( L)>0:

c u r r e n t = L . pop ( )i f ( c u r r e n t >r e s ) :

r e s=c u r r e n treturn r e s

This does not work. The operation pop() is destructive: it changes L,rather than merely looking at it. So when we execute max(L) once, Lis destroyed and subsequent calls won’t work.

Jacob Neumann Welcome & Introduction 18 May 2020 28 / 34

Page 105: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Contrived example, but...

This demonstrates a key point:

Imperative programs can easily be wrong if you don’t keep trackof effects

If your program utilizes effects to calculate values, then you have to keeptrack of what state the computer’s in, because that might either:

Affect what value the program outputs

Change when the program is executed

This is one of the main topics taught in 15-122: how to keep track ofstates & effects.

Jacob Neumann Welcome & Introduction 18 May 2020 29 / 34

Page 106: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Contrived example, but...

This demonstrates a key point:

Imperative programs can easily be wrong if you don’t keep trackof effects

If your program utilizes effects to calculate values, then you have to keeptrack of what state the computer’s in, because that might either:

Affect what value the program outputs

Change when the program is executed

This is one of the main topics taught in 15-122: how to keep track ofstates & effects.

Jacob Neumann Welcome & Introduction 18 May 2020 29 / 34

Page 107: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Contrived example, but...

This demonstrates a key point:

Imperative programs can easily be wrong if you don’t keep trackof effects

If your program utilizes effects to calculate values, then you have to keeptrack of what state the computer’s in, because that might either:

Affect what value the program outputs

Change when the program is executed

This is one of the main topics taught in 15-122: how to keep track ofstates & effects.

Jacob Neumann Welcome & Introduction 18 May 2020 29 / 34

Page 108: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

A Radical Proposal

Program without effects

Jacob Neumann Welcome & Introduction 18 May 2020 30 / 34

Page 109: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

A Radical Proposal

Program without effects

Jacob Neumann Welcome & Introduction 18 May 2020 30 / 34

Page 110: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

What this entails

We’ll need to

Figure out what computation means if not accumulating effects onsome state

See if we can implement all the functions we want in this newparadigm

See what advantages or disadvantages this programming stylecomes with (compared to imperative programming)

Jacob Neumann Welcome & Introduction 18 May 2020 31 / 34

Page 111: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

What this entails

We’ll need to

Figure out what computation means if not accumulating effects onsome state

See if we can implement all the functions we want in this newparadigm

See what advantages or disadvantages this programming stylecomes with (compared to imperative programming)

Jacob Neumann Welcome & Introduction 18 May 2020 31 / 34

Page 112: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

What this entails

We’ll need to

Figure out what computation means if not accumulating effects onsome state

See if we can implement all the functions we want in this newparadigm

See what advantages or disadvantages this programming stylecomes with (compared to imperative programming)

Jacob Neumann Welcome & Introduction 18 May 2020 31 / 34

Page 113: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

What this entails

We’ll need to

Figure out what computation means if not accumulating effects onsome state

See if we can implement all the functions we want in this newparadigm

See what advantages or disadvantages this programming stylecomes with (compared to imperative programming)

Jacob Neumann Welcome & Introduction 18 May 2020 31 / 34

Page 114: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

This has a name...

This style of programming is called FUNCTIONAL PROGRAMMING.

Jacob Neumann Welcome & Introduction 18 May 2020 32 / 34

Page 115: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

This has a name...

This style of programming is called FUNCTIONAL PROGRAMMING.

Jacob Neumann Welcome & Introduction 18 May 2020 32 / 34

Page 116: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview

The goal of this semester is to teach you functional programming.

We’llcover:

How functional computation basically works (today and tomorrow)

How to write powerful code in a functional language, and how tomathematically reason about functional code (later this week, andnext week)

How to write highly-abstract functional programs which can beinstantiated to perform a variety of tasks (June 01 - 03)

How to use functional programming to design elegant control-flowalgorithms (June 04 - 09)

Jacob Neumann Welcome & Introduction 18 May 2020 33 / 34

Page 117: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview

The goal of this semester is to teach you functional programming. We’llcover:

How functional computation basically works (today and tomorrow)

How to write powerful code in a functional language, and how tomathematically reason about functional code (later this week, andnext week)

How to write highly-abstract functional programs which can beinstantiated to perform a variety of tasks (June 01 - 03)

How to use functional programming to design elegant control-flowalgorithms (June 04 - 09)

Jacob Neumann Welcome & Introduction 18 May 2020 33 / 34

Page 118: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview

The goal of this semester is to teach you functional programming. We’llcover:

How functional computation basically works (today and tomorrow)

How to write powerful code in a functional language, and how tomathematically reason about functional code (later this week, andnext week)

How to write highly-abstract functional programs which can beinstantiated to perform a variety of tasks (June 01 - 03)

How to use functional programming to design elegant control-flowalgorithms (June 04 - 09)

Jacob Neumann Welcome & Introduction 18 May 2020 33 / 34

Page 119: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview

The goal of this semester is to teach you functional programming. We’llcover:

How functional computation basically works (today and tomorrow)

How to write powerful code in a functional language, and how tomathematically reason about functional code (later this week, andnext week)

How to write highly-abstract functional programs which can beinstantiated to perform a variety of tasks (June 01 - 03)

How to use functional programming to design elegant control-flowalgorithms (June 04 - 09)

Jacob Neumann Welcome & Introduction 18 May 2020 33 / 34

Page 120: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview

The goal of this semester is to teach you functional programming. We’llcover:

How functional computation basically works (today and tomorrow)

How to write powerful code in a functional language, and how tomathematically reason about functional code (later this week, andnext week)

How to write highly-abstract functional programs which can beinstantiated to perform a variety of tasks (June 01 - 03)

How to use functional programming to design elegant control-flowalgorithms (June 04 - 09)

Jacob Neumann Welcome & Introduction 18 May 2020 33 / 34

Page 121: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview

The goal of this semester is to teach you functional programming. We’llcover:

How functional computation basically works (today and tomorrow)

How to write powerful code in a functional language, and how tomathematically reason about functional code (later this week, andnext week)

How to write highly-abstract functional programs which can beinstantiated to perform a variety of tasks (June 01 - 03)

How to use functional programming to design elegant control-flowalgorithms (June 04 - 09)

Jacob Neumann Welcome & Introduction 18 May 2020 33 / 34

Page 122: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview (continued)

How to design large pieces of software in a functional language(June 10 - 12)

Various cool things which functional programming makepossible/cleaner/easier/more elegant:

A kind of super-multitasking called parallelism which FP makestractable (June 15 & 16)Basic AIs that can intelligently play tic-tac-toe, checkers, and othergames (June 17 & 18)Imperative code in functional code (June 19)Infinite data structures (June 22)Other stuff (June 23 & 24)

Jacob Neumann Welcome & Introduction 18 May 2020 34 / 34

Page 123: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview (continued)

How to design large pieces of software in a functional language(June 10 - 12)

Various cool things which functional programming makepossible/cleaner/easier/more elegant:

A kind of super-multitasking called parallelism which FP makestractable (June 15 & 16)

Basic AIs that can intelligently play tic-tac-toe, checkers, and othergames (June 17 & 18)Imperative code in functional code (June 19)Infinite data structures (June 22)Other stuff (June 23 & 24)

Jacob Neumann Welcome & Introduction 18 May 2020 34 / 34

Page 124: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview (continued)

How to design large pieces of software in a functional language(June 10 - 12)

Various cool things which functional programming makepossible/cleaner/easier/more elegant:

A kind of super-multitasking called parallelism which FP makestractable (June 15 & 16)Basic AIs that can intelligently play tic-tac-toe, checkers, and othergames (June 17 & 18)

Imperative code in functional code (June 19)Infinite data structures (June 22)Other stuff (June 23 & 24)

Jacob Neumann Welcome & Introduction 18 May 2020 34 / 34

Page 125: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview (continued)

How to design large pieces of software in a functional language(June 10 - 12)

Various cool things which functional programming makepossible/cleaner/easier/more elegant:

A kind of super-multitasking called parallelism which FP makestractable (June 15 & 16)Basic AIs that can intelligently play tic-tac-toe, checkers, and othergames (June 17 & 18)Imperative code in functional code (June 19)

Infinite data structures (June 22)Other stuff (June 23 & 24)

Jacob Neumann Welcome & Introduction 18 May 2020 34 / 34

Page 126: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview (continued)

How to design large pieces of software in a functional language(June 10 - 12)

Various cool things which functional programming makepossible/cleaner/easier/more elegant:

A kind of super-multitasking called parallelism which FP makestractable (June 15 & 16)Basic AIs that can intelligently play tic-tac-toe, checkers, and othergames (June 17 & 18)Imperative code in functional code (June 19)Infinite data structures (June 22)

Other stuff (June 23 & 24)

Jacob Neumann Welcome & Introduction 18 May 2020 34 / 34

Page 127: Welcome & Introduction15150/resources/lectures/0/lecture0.pdf · Cameron Wong, Cooper Pierce, Emma Cohron, Eshita Kar, Ethan Rosenthal, Eunice Chen, Harrison Grodin, Isabel Gan, James

Broad Overview (continued)

How to design large pieces of software in a functional language(June 10 - 12)

Various cool things which functional programming makepossible/cleaner/easier/more elegant:

A kind of super-multitasking called parallelism which FP makestractable (June 15 & 16)Basic AIs that can intelligently play tic-tac-toe, checkers, and othergames (June 17 & 18)Imperative code in functional code (June 19)Infinite data structures (June 22)Other stuff (June 23 & 24)

Jacob Neumann Welcome & Introduction 18 May 2020 34 / 34


Recommended