5 ms·
Principles of Imperative Computation
- tempodox 3y agoIt's only about the course, not about principles of imperative programming.
- 082349872349872 3y agoIt links to the individual lectures' notes and slides, as well as tutorial and documentation for the "C0" language...
- noobdev9000 3y agoIt's not really complex enough to require a full university course, is it now.
- noelwelsh 3y agoTeaching programming alone usually takes up several courses in a Computer Science programme. Why would reasoning about programming be any simpler? This course is about reasoning techniques for imperative programming. E.g. loop invariants, preconditions, postconditions, and so on. I imagine you could fill many University courses with all the verification community has to say about this topic.
- _a_a_a_ 3y agoWhat is 'it'
- wheelerof4te 3y agoStep 1: Go from the top. Step 2: See a function. Step 3: Ctl+Click on it. Step 4: Read the code. Step 5: Go to step 1.
- andrepd 3y agoIf your codebase has zero documentation, yes indeed.
- loagis 3y agoAh yes, that's exactly my working situation.
- andrepd 3y agoDo you work at my firm :) the "documentation" is "ask the guy who wrote it, if they're still employed" ahaha
- BigJono 3y agoDocumentation isn't a substitute for reading the code, and the best place for documentation is in the same file as the code.
- wheelerof4te 3y agoOnly Jira ticket numbers. Sometimes even a ticket title.
- kweingar 3y agoThis is a bit of a tangent, but I read the prerequisites for this course and felt the same annoyance that I did when I was in college. I didn’t major in CS, but I wanted to take some CS classes. Several times I had to go back and forth with the course instructor and the director of undergraduate studies in the department, trying to convince them to let me take the class, or at least audit it or get access to the course materials if it was filling up. I was mostly successful, but there were a couple times where I was told I simply could not take the class because I didn’t take the prerequisite. As a lifelong computer nerd and capable programmer, I could have sat the exam for the prerequisite classes without preparation and passed, but they did not allow this. If there are open spots in the classes after all the CS majors signed up for it, then why not just let anyone take it if they’re up for the challenge? You can warn them about the prerequisite knowledge, so if they fail it’s completely on them.
- sgeisenh 3y agoThere is an option to circumvent the prerequisites as a non-major: You may also get permission from an advisor if you performed very high on the CS Assessment on Canvas. I took the course over the summer as a music major and subsequently took several other CS courses as a music major after having a discussion with an advisor in the CS department. I ended up finishing a CS degree a year after my music degree. CMU was really great about providing opportunities for students to explore courses outside of their majors, especially over the summer.
- SoftTalker 3y agoThis varies by school. Some will allow you to skip prereqs with instructor or advisor permission, some make that almost impossible. Some may allow you to audit the course but not take it for credit. Honestly for the larger CS classes I took, there were enough people in the class that I doubt anyone would have noticed a person slipping in to a back row seat and just quietly watching. More than once I sat in on classes that I thought I might want to take, to get a better sense of the content and the professor's teaching style.
- oslac 3y ago
- sgeisenh 3y ago"Principles of Imperative Programming" is a misnomer. The course is really about developing techniques for reasoning about low-level software. You build up abstractions in C by leveraging contracts and writing proofs of correctness based on those contracts. Explore the "Learning Objectives" section to read about what the course really entails: https://www.cs.cmu.edu/~15122/about.shtml#LO https://www.cs.cmu.edu/~15122/about.shtml#LO This was the first computer science course that I took at CMU and it was absolutely mind blowing for me. I had previously taken AP CS and had played around with making games in flash and writing little programs for my graphing calculator. But this course taught me how to reason about my programs (and why that might be valuable, to begin with).
- hgsgm 3y agoHow is it a misnomer?
- layer8 3y ago> You build up abstractions in C by leveraging contracts and writing proofs of correctness based on those contracts. […] this course taught me how to reason about my programs That seems like an essential part of what programming should be about? And imperative programming has it’s own considerations on how to go about it. I don’t see how it is a misnomer.
- sdkgames 3y agoIs this about Design by contract? [0] But why do they force students to use an imperative language? [0] https://en.wikipedia.org/wiki/Design_by_contract https://en.wikipedia.org/wiki/Design_by_contract
- emorning3 3y agoIt's not about generating code from contracts, it's about formally verifying that the associated C0 code satisfies those contracts.