Anh Pham
0 followers · 827 views
on the atlas — 31
- CSC 151 - Analyzing procedures1 savers
- CSC 151 - Coding Challenge 81 savers
- CSC 151 - A computer scientist's perspective on data science1 savers
- CSC 151 - Coding Challenge 71 savers
- CSC 151 - Higher-order design, recursive and other1 savers
- CSC 151 - Tail Recursion1 savers
- CSC 151 - Recursion over Numbers1 savers
- Mail - Pham, Anh - Outlook1 savers
- CSC 151 - Coding Challenge 61 savers
- CSC 151 - Recursion Over Lists1 savers
- Syllabus for Fall 2025 Birds: Nature, Joy, Belonging (TUT-100-23)1 savers
- CSC 151 - Pattern matching1 savers
- CSC 151 - Coding Challenge 51 savers
- Mail - Pham, Anh - Outlook1 savers
- CSC 151 - Reading data from files1 savers
- CSC 151 - Coding Challenge 41 savers
- Past Winners | Pioneer Weekend1 savers
- CSC 151 - Naming values with local bindings1 savers
- CSC 151 - Hypothesis-driven debugging1 savers
- CSC 151 - Unit Testing1 savers
- CSC 151 - Documenting Your Code1 savers
- CSC 151 - Code Formatting and Style1 savers
- CSC 151 - Decomposition1 savers
- CSC 151 - The "big three" list operations1 savers
- CSC 151 - Anonymous procedures2 savers
- CSC 151 - Transforming lists1 savers
- CSC 151 - List basics1 savers
- CSC 151 - Conditional evaluation in Scheme1 savers
- CSC 151 - Coding Challenge 11 savers
- CSC 151 - Functional Problem Solving1 savers
- Mary Oliver Wild Geese12 savers
highlights — 298
ref cell to keep track how many times each procedure is called
CSC 151 - Analyzing proceduresdocument every procedure
CSC 151 - Coding Challenge 8document every procedure t
CSC 151 - Coding Challenge 7it only “knows” one element at a time
CSC 151 - Higher-order design, recursive and othercontinuation-passing style (CPS)
CSC 151 - Tail RecursionDefinition (Tail-Recursive Form)
CSC 151 - Tail Recursionrecursive definition for the natural numbers:
CSC 151 - Recursion over Numbersdocument every procedure
CSC 151 - Coding Challenge 6we assume that we can solve our problem for the tail of the list in question.
CSC 151 - Recursion Over Listsmatches anything but doesn’t bind
CSC 151 - Pattern matchingOther Absences. You will be docked 5 points for every unexcused absence.
Syllabus for Fall 2025 Birds: Nature, Joy, Belonging (TUT-100-23)Authorized/Excused Absence. Everyone gets a day off from the course while still getting full credit for full attendance and participation. Since this is a free day for you, you do not have to notify me of your absence.
Syllabus for Fall 2025 Birds: Nature, Joy, Belonging (TUT-100-23)readability and conciseness
CSC 151 - Pattern matchingbetter reflects our recursive definition for list
CSC 151 - Pattern matchingmatch value or scrutinee.
CSC 151 - Pattern matchingrequired to document every procedure that you write
CSC 151 - Coding Challenge 5Bring in a printed copy of this short writing exercise to class on Tuesday, with your name at the top.
Mail - Pham, Anh - OutlookThe contents of the file will be unavailable to you outside of the call to with-file
CSC 151 - Reading data from filescomplete documentation for every procedure,
CSC 151 - Coding Challenge 4Code is well formatted with appropriate indentation.
CSC 151 - Coding Challenge 1In problem 3b, expressions round correctly.
CSC 151 - Coding Challenge 1In problem 3a, all values are computed correctly.
CSC 151 - Coding Challenge 1one can use a let- or let*-expression to create a local name for a procedure.
CSC 151 - Naming values with local bindingswhenever possible, move your bindings outside the lambda!
CSC 151 - Naming values with local bindingssequentially so that later bindings can refer to earlier bindings
CSC 151 - Naming values with local bindingsndependently and in parallel.
CSC 151 - Naming values with local bindingsIf one writes let* rather than let, each binding specification in the binding list is completely processed before the next one is taken up:
CSC 151 - Naming values with local bindingsWithin one binding list, all of the expressions are evaluated before any of the names are bound.
CSC 151 - Naming values with local bindingsoutside the body of the let, so we do not substitute for it
CSC 151 - Naming values with local bindingsevaluating the substituted let-body as normal.
CSC 151 - Naming values with local bindingssubstitute the body of the let for the overall let-expression.
CSC 151 - Naming values with local bindingsevaluate the expression of each binding
CSC 151 - Naming values with local bindingswe use let to override the value associated with a name, as soon as the let binding is finished, the previous association is restored.
CSC 151 - Naming values with local bindingsvalues named by let are available only within the let expression
CSC 151 - Naming values with local bindingsit begins by evaluating all of the expressions inside its binding specifications. Then the names in the binding specifications are bound to those values.
CSC 151 - Naming values with local bindingsRewrite procedures that do a sequence of steps by using one procedure for each step.
CSC 151 - Naming values with local bindingsOften, it’s these “edge cases” that help us find the most subtle bugs in a procedure
CSC 151 - Unit TestingAlso, a good set of tests of the form “this expression should have this value” can serve as a form of documentation for the reader, explaining through example what the procedure is to do.
CSC 151 - Unit Testinga popular style of software engineering, called test-driven development (TDD), in which you always write the tests first.
CSC 151 - Unit Testingy writing documentation first, you develop a clearer sense of what you want your procedures to accomplish
CSC 151 - Unit Testingzero-argument function
CSC 151 - Unit Testingstring literal describing the test.
CSC 151 - Unit TestingAnd how do you group test cases into suites?
CSC 151 - Unit TestingHow do you group checks into test cases?
CSC 151 - Unit TestingHow do you check for expected results?
CSC 151 - Unit Testingknow what the correct answers should be
CSC 151 - Unit Testingyou have to manually look at the results to make sure that they are correct
CSC 151 - Unit TestingIf you need a comment to remember how the innards of a function work, this is a strong sign you have made the function too complicated.
CSC 151 - Documenting Your Codefunction’s behavior t
CSC 151 - Documenting Your CodeA description of the computation
CSC 151 - Documenting Your Code