Introduction and Logistics Assignments Course
Course Introduction
University of Illinois at Urbana-Champaign Department of Computer Science
Copyright By PowCoder代写 加微信 powcoder
Introduction and Logistics Assignments Course
Welcome to CS 421!
Topics for discussion:
Logisitics—instructor,courseobjectives Whystudylanguages?
Majorthemesforthecourse
Introduction and Logistics Assignments Course
Name Mattox PhD,Fall2003,UniversityofIllinoisatUrbana-Champaign
Lecturer 2003–2015 Illinois Institute of Technology
ResearchAreas CSEducation,ProgrammingLanguages,MathematicalFoundationsof Computer Science
Specialty PartialEvaluation,FunctionalProgramming
ProfessionalInterests Teaching;ComputerScienceEducation;FunctionalProgramming;
Semantics and Types; Category Theory
PersonalInterests Cooking;Go(Baduk,Wei-Qi,Igo);Philosophy;Evolution;Meditation; Kerbal Space Program; Home-brewing; … and many many more …
Introduction and Logistics Assignments Course
Mastery Grading
The first thing: your grade is not based on points in this course! WeuseMasteryGrading.
Yourabilitytodemonstratemasteryofaconceptiswhatcounts. 20(ish)LearningModules
Eachmodulehassomeobjectives
Advantages:
OnceyouhavetheLM,you’redonewithit.
Youwillknowpreciselywhattostudyforonthefinal!
Youwillknowpreciselywhatyouneedtodoforaparticulargrade!
Introduction and Logistics Assignments Course
Activities
Thisisaflippedclassroom!
Pleasewatchthelecturevideobeforecomingtoclass!
Inclassactivities(TPSorPOGIL)toreinforcelearning.
Post-classprairielearnactivitiestoconsolidate/applylearning.
TheseoftenfulfillpartofanLM.
Thereisnotnecessarilyapost-classactivityforeachday.
Introduction and Logistics Assignments Course
Machine Problems
MachineProblems
Designedtohelpyoustudyfortheexams,andtoachievemajorcourseobjectives
Youareallowedonepartnerfortheprogrammingpart,butyoumustciteyoursources! (Place partner netids in a comment at the top.)
Don’tusethe“perturbationmethod”ofsolvingmachineproblems!Weexpectyouto understand the solution and the process very well.
Seethesyllabusformoredetails.
Introduction and Logistics Assignments Course
Exams/Quizzes
Thepurposeofanexamistomeasuremasteryofmaterial.
ExamsaresubdividedintoproficiencyunitsthatcorrespondtoLMs.
Examsare“secondchanced”.Midterm2willhaveallofmidterm1foraretry.
Weexpectthreemidterms.
Introduction and Logistics Assignments Course
Why Study Languages?
Blub – see Beating the Averages by . [Gra03] Languagefamilies
Introduction and Logistics Assignments Course
Different languages can express different concepts efficiently! A story from human languages: pai sei
Introduction and Logistics Assignments Course
Different languages can express different concepts efficiently!
A story from human languages: pai sei
Languagesandculturesgrowtogethertoshapeeachother.
Introduction and Logistics Assignments Course
Different languages can express different concepts efficiently!
A story from human languages: pai sei
Languagesandculturesgrowtogethertoshapeeachother. It’sdifficulttoreasonaboutsomethingwithoutvocabulary!
Introduction and Logistics Assignments Course
Different languages can express different concepts efficiently!
A story from human languages: pai sei
Languagesandculturesgrowtogethertoshapeeachother.
It’sdifficulttoreasonaboutsomethingwithoutvocabulary!
See Politics and the English Language by . [Orw46]
Introduction and Logistics Assignments Course
FromBeatingtheAveragesbyPaul and Logistics Assignments Course
FromBeatingtheAveragesbyPaulGraham
Thedifferencebetweenaknownpowerfullanguagetoalesspowerfullanguageiseasyto see.
Introduction and Logistics Assignments Course
FromBeatingtheAveragesbyPaulGraham
Thedifferencebetweenaknownpowerfullanguagetoalesspowerfullanguageiseasyto
Thedifferencebetweenaknownlesspowerfullanguagetoamorepowerfullanguageis not easy to see!
Introduction and Logistics Assignments Course
The course has four major parts:
1. FunctionalProgramming
You will learn functional programming by learning how to build interpreters in Haskell.
Introduction and Logistics Assignments Course
The course has four major parts: 1. FunctionalProgramming
You will learn functional programming by learning how to build interpreters in Haskell.
2. Parsing
You will learn how text becomes a data structure we can use to represent a program.
Introduction and Logistics Assignments Course
The course has four major parts:
1. FunctionalProgramming
You will learn functional programming by learning how to build interpreters in Haskell.
2. Parsing
You will learn how text becomes a data structure we can use to represent a program.
3. MathematicalFoundations
You will learn some of the mathematical theory that lets us reason about programming languages and the programs written in them.
Introduction and Logistics Assignments Course
The course has four major parts:
1. FunctionalProgramming
You will learn functional programming by learning how to build interpreters in Haskell.
2. Parsing
You will learn how text becomes a data structure we can use to represent a program.
3. MathematicalFoundations
You will learn some of the mathematical theory that lets us reason about programming languages and the programs written in them.
4. Pragmatics
You will learn some of the design decisions available to you when choosing (or creating!) a language.
Introduction and Logistics Assignments Course
So, what should you learn?
Understand major classes of programming languages: techniques, features, styles. Howtoselectanappropriatelanguageforagiventask.
Howtoreadaformalspecificationofalanguageandimplementit.
Howtowriteaformalspecificationofalanguage.
SomePowerfulIdeas: 1. Recursion
2. Abstraction
3. Transformation 4. Unification
The emphasis is on learning the theory, knowing why the theory is valuable, and using it to implement a language.
Introduction and Logistics Assignments Course
Bibliography
[Gra03] [Orw46]
. “Can Programming Be Liberated from the von ? A functional Style and Its Algebra of Programs.” In: ACM Turing Award Lecture (1997).
. Beating the Averages. Apr. 2003. URL: http://www.paulgraham.com/avg.html.
. “Politics and the English Language.” In: Horizon 13.76 (Apr. 1946), pp. 252–265. URL: http://www.resort.com/~prime8/Orwell/patee.html.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com