DOC PREVIEW
UW CSE 341 - Lecture Notes

This preview shows page 1-2-3-27-28-29 out of 29 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CSE341: Programming Languages Lecture 1 Course Mechanics ML Variable Bindings Dan Grossman Fall 2011Welcome! We have 10 weeks to learn the fundamental concepts of programming languages With hard work, patience, and an open mind, this course makes you a much better programmer – Even in languages we won’t use – Learn the core ideas around which every language is built, despite countless surface-level differences and variations – Poor course summary: “Uses SML, Racket, and Ruby” Today’s class: – Course mechanics – [A rain-check on motivation] – Dive into ML: Homework 1 due end of next week Fall 2011 2 CSE341: Programming LanguagesConcise to-do list In the next 24-48 hours: 1. Read course web page: http://www.cs.washington.edu/education/courses/cse341/11au/ 2. Read all course policies 3. Adjust class email-list settings as necessary 4. Complete Homework 0 (survey worth 0 points) 5. Get set up using emacs and SML – Installation/configuration/use instructions on web page – Essential; no reason to delay Fall 2011 3 CSE341: Programming LanguagesWho Course Staff: Dan Grossman Ben Wood Lydia Duncan Chloe Houvener TBD Fall 2011 4 CSE341: Programming Languages Dan: Faculty, 341 my favorite course / area of expertise Ben: Ph.D. student, also a PL expert Lydia: Took 341 Spring 2011, helped with new project over summer Chloe: Took 341 Fall 2010, favorite class so far A nice large staff: get to know us!Staying in touch • Course email list: [email protected] – Students and staff already subscribed – You must get announcements sent there – Fairly low traffic • Course staff: [email protected] plus individual emails • Message Board – For appropriate discussions; TAs will monitor – Optional, won’t use for important announcements • Anonymous feedback link on webpage – For good and bad: If you don’t tell me, I don’t know Fall 2011 5 CSE341: Programming LanguagesLecture: Dan • Slides, code, and essay summaries posted – Often revised after class • Summary might not be posted until after class – Take notes: materials may not describe everything • Slides in particular are visual aids for me to use • Ask questions, focus on key ideas • Engage actively – Arrive punctually (beginning matters most!) and well-rested • Just like you will for the midterm! – Write down ideas and code as we go – If attending and paying attention is a poor use of your time, one of us is doing something wrong Fall 2011 6 CSE341: Programming LanguagesSection: Ben • Required: will usually cover new material • Sometimes more language or environment details • Sometimes main ideas needed for homework • Will meet this week: using SML Fall 2011 7 CSE341: Programming LanguagesOffice hours • Regular hours and locations on course web [soon] – Changes as necessary announced on email list • Use them – Please visit me – Ideally not just for homework questions (but that’s good too) Fall 2011 8 CSE341: Programming LanguagesTextbooks, or lack thereof • Will mostly use the “textbooks” as useful references – Look up details you want/need to know • Can provide good second explanations, but (because!) they often take a fairly different approach • Some topics aren’t in the texts • Don’t be surprised when I essentially ignore the texts – List on web page what sections are most relevant • Some but not all of you will do fine without using the texts Fall 2011 9 CSE341: Programming LanguagesHomework • Seven total • To be done individually • Doing the homework involves: 1. Understanding the concepts being addressed 2. Writing code demonstrating understanding of the concepts 3. Testing your code to ensure you understand and have correct programs 4. “Playing around” with variations, incorrect answers, etc. We grade only (2), but focusing on (2) makes the homework harder • Challenge problems: Low points/difficulty ratio Fall 2011 10 CSE341: Programming LanguagesNote my writing style • Homeworks tend to be worded very precisely and concisely – I’m a computer scientist and I write like one (a good thing!) – Technical issues deserve precise technical writing – Conciseness values your time as a reader – You should try to be precise too • Skimming or not understanding why a word or phrase was chosen can make the homework harder • By all means ask if a problem is confusing – Being confused is normal and understandable – And I may have made a mistake – Once you’re unconfused, you might agree the problem wording didn’t cause the confusion Fall 2011 11 CSE341: Programming LanguagesAcademic Integrity • Read the course policy carefully – Clearly explains how you can and cannot get/provide help on homework and projects • Always explain any unconventional action • I have promoted and enforced academic integrity since I was a freshman – Great trust with little sympathy for violations – Honest work is the most important feature of a university Fall 2011 12 CSE341: Programming LanguagesExams • Midterm: Monday October 31 (spooky ), in class • Final: Tuesday December 13, 2:30-4:20 • Same concepts, but different format from homework – More conceptual (but write code too) – Will post old exams – Closed book/notes, but you bring one sheet with whatever you want on it Fall 2011 13 CSE341: Programming LanguagesQuestions? Anything I forgot about course mechanics before we discuss, you know, programming languages? Fall 2011 14 CSE341: Programming LanguagesWhat this course is about • Many essential concepts relevant in any programming language – And how these pieces fit together • Use the languages ML, Racket, and Ruby because: – They let many of the concepts “shine” – Using multiple languages shows how the same concept can “look different” or actually be slightly different – In many ways simpler than Java • A big focus on functional programming – Not using mutation (assignment statements) (!) – Using first-class functions (can’t explain that yet) Fall 2011 15 CSE341: Programming LanguagesLet’s start over • For at least the next two weeks, please “let go of Java” – Learn ML as a “totally new way of programming” – Later we’ll contrast with what you know – Saying “oh that is kind of like that thing in Java” will confuse you, slow you down, and make you learn


View Full Document

UW CSE 341 - Lecture Notes

Documents in this Course
Macros

Macros

6 pages

Macros

Macros

6 pages

Macros

Macros

3 pages

Mutation

Mutation

10 pages

Macros

Macros

17 pages

Racket

Racket

25 pages

Scheme

Scheme

9 pages

Macros

Macros

6 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?