## 07:48 plmw notes ### where do you want to make an impact? - where are you goyng to focus now? - what interests are most valuable to explore now? what shuold be tabled for later? - the grass is not greener over there - need to produce research at some point! find wnat you're doing now useful! - churning through a bunch of things without publishing is bad - define a scope for your research topic and work at a point, and use that as a jumping off point to learn. - you have to fully commit! can look around a bit but have to punch in on one topic and finish. ### ensuring learning - to learn, try to use it! hold yourself accountable. can you prove a theorem? can you write some code? make sure to do something formal. - research: just as much a topic as it is about the person behind the work to guide someone with learning. - make the best decisions locally and understand how they pan out globally ### managing 'drinking from the firehose' - avoid being overwhelmed! do not go to every session! - not worth trying to understand everything - try to optimize what you take in; if you want to understand anything you can't worry about that! ### getting most ouf of your advior! - need an undergrad montor - need to learn more about pl faculty, even just in a few minutes! - poke around at the conference to find out what you're interested in! - contact the faculty to learn what others are planning to do/ email, connect with, reach out to others! - make sure research interestss match! you'll have a much worse time otherwise. - what are your own missions? what do you aspire to be? what questinos should you be asking these future advisors? - financial incentives; funding in the long run matters much less so long as basic needs are met. biggest factro is advisor fit - don't worry about prestige - do what you want! work with the advisor who is the perfect fit for you! - count of papers have no importance - what *impact* did they have? should have a sense of other students being productive. - getting involved: can start in year 2! intro CS course - teach things at the end of the course to introduce ideas; run a reading group in the spring and see where things go from there! - ask to spend a semester just reading papers without actually doing any work! just a bit of time showing up and reading. build up a relationship. follow up! - very good to have research experience, though publication is by no means necessary. looking for testimony - what are you like? - always keep good notes on research interests and questions. always follow up on them! these are things to be explored more! - watch conferences for everything - understand what others take for granted and don't! - department is a safe space to make mistakes and learn - discuss! talk about work in progress! ask questions! these things are needed to grow. - don't let the urgent trump the important - put research before classes. your job is to work on a daily basis, and doing work daily is the most important - moreso than working in bursts. you're in it for the long haul! - don't avoid advisor - much slower progress! take time to make lab friends to expand support and learning network. - help pick the starter project! make sure people care about it. should help develop technical skills; not just 'go read papers and find a problem' - your advisor is not just your boss - the biggest product of a phd is you! they're your mentor, collaborator, evaluator, promoter, source of support and more. it's your wirk; advisor is just here to support it along the way. - develop strategies for engaging so that your needs are met. keep following up! keep planning the future! what's the next step? what's the next work? what do I want? ### learning to use editors better 1. add some keyboard shortcuts with semantic knowledge of the code 2. write those shortcuts down on paper or in a document that will be readily available 3. consciously practice them until they stick! i don't know enough of them yet. ### metatheory cannot pattern match on functino bodies in agdaa, ocaml - functions are 'black box'. must examine inputs and outputs contextual modal type theory: model context and holes in our language! give a hole a name: a contextual variable. can instantiate with a contextual texm, reifying LF typing derivations! build a proof system for manipulating these contextual objects - to get proofs as functional programs! abode the water, we have induction, case analysis, quantification; allowed to pattern match on contextual objects in beluga instead! write as recursive program; abstract over contexts, higher order pattern matching Learn more about Beluga! meta programming fox contextual types: allowing system f to match on itself. contextual types provide high level framework; broad, logical foundation for working with well scoped programs. learning theorem provieg: skills are transferable; just pick one to learn and roll with it! the most important thing, like all things, is to start - without starting nothing can be done. ### emotional machines turns out feelings are very important indications of what we want, need and believe in! we have certain biological needs and require emotional maintenance! mental health is fundamentally a social endeavor - talk to others!! get stuck in 'loops of distraction' instead of dealing with what you want do deal with; avoiding using whatever vice you have access to. unhealthy 'fawn response' - keeping safe through appeasing others. contrarily develops aversion to saying no and ending up deeply overcommitted to others! freeze response: procrastinate, isolate, withdraw, narrowing life, dissassociation; anything but engage with the topic that gives you this emotional struggle tolerating your feelings: listen to all of them, then decide how to respond to them. making new choices than what we're comfortable with is profoundly difficult - but the more we resist our instant emotional responses, the better we can rationalize and make decisions that are better for ourselves. the first step to fixing these behaviors is identifying these behaviors and working on them, navigating those feelings and behaviors so that you become more accustomed to these healthy responses. combining this with management and leadership roles: these things are even more important when you're responsible for others! cannot project your on feelings onto those you're trying to support! ### writing papers come back to this! talk and essay by derek dryer. ### pl for expressing data structures! abstraction to allow linking to single implementation of ADS, proven correct with a standard language toolkit contains a language extension or expressing these data structures, a type system, and a type safety guarantee that only a hash collision can invalidate the security of the data structure parsing away sql solutions for security verifying data planes: network misconfiguration can make things unreachable, poorly route packets and decrease quaiytl of service p4: language for programming data planes on routers. verifying the p4 language - guarded command language to express and model p4 programs - define control interface and preconditions for programs barriers to entry: PL expressive notation! difficult to understand and therefore use. need better education, tutorials, and other things (like distill.pub) and others. standardize notation! many use their own curtomized notation rather than a general one - still. there are far more building builders than brickmakers; but this makes working in developer tools far more important. working on tools others use has this multiplicative, compounding factor; a compiler optimization optimizes every program written with that compiler! This power to have a disproportionate impact on programming and program development is incredibly valuable. ### Teaching functional programming - wadler: scheme is a terrible approach! doesn't support typing or pattnrs matching like miranda! (frequent fallacy: i like the language == we should use the language to teach) - cognition is fundamentally different early and late in training (The Children's Machine: instructionism vs constructionism: accesss to information = learning???? nice to believe in self determinism, but in practice this is not feasible.) - biggest mistakes: - studentr are like us - what i love must be great for teaching - students will 'figure things out' given the right toolsz - excitement is or leads to copetency or equitable learning