<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CS135</title>
    <link>https://student.cs.uwaterloo.ca/~cs135/index.html</link>
    <description>Description CS135 is one of several introductory CS courses1 at University of Waterloo. It is aimed at CS majors and other motivated learners. Previous computing background is not required nor assumed.&#xA;CS135 uses a functional programming approach. Functional programming has a lot in common with math you already know: functions. It differs from procedural programming (the approach most often taught in high schools). For example, variables are a common starting point in procedural programming but won’t appear at all in CS135.</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 15 Jul 2021 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://student.cs.uwaterloo.ca/~cs135/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Read Me First</title>
      <link>https://student.cs.uwaterloo.ca/~cs135/readfirst/index.html</link>
      <pubDate>Thu, 15 Jul 2021 00:00:00 +0000</pubDate>
      <guid>https://student.cs.uwaterloo.ca/~cs135/readfirst/index.html</guid>
      <description>Welcome to CS135! Thank you for setting out on a learning journey with us. No matter whether you’ve never programmed before or have considerable programming experience, we have a place for you. We hope to guide you through a carefully designed curriculum that introduces you to core concepts in computer science. More than 11,000 students have successfully made this journey with us in the past.</description>
    </item>
    <item>
      <title>Help</title>
      <link>https://student.cs.uwaterloo.ca/~cs135/help/index.html</link>
      <pubDate>Fri, 07 Jun 2019 06:41:19 -0400</pubDate>
      <guid>https://student.cs.uwaterloo.ca/~cs135/help/index.html</guid>
      <description>There are many sources of help for CS135 students in particular and UWaterloo students in general. This section is one starting point. See the subsections for details.</description>
    </item>
    <item>
      <title>Calendar</title>
      <link>https://student.cs.uwaterloo.ca/~cs135/calendar/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://student.cs.uwaterloo.ca/~cs135/calendar/index.html</guid>
      <description>Notation (by example):&#xA;“L01” means that Lecture 01 will be covered that day. “A01 out” means that Assignment 01 will be released that day. “A01 Due” means that A01 will be due at 9:00pm that day. Please note the other CS135-specific dates such as the midterm and various deadlines for removing yourself from the course. The calendar is also available in 1 month/page , 2 months/page , and 4 months/page . The 2 months/page version needs to be scaled to fit the page before printing for an unknown reason.</description>
    </item>
    <item>
      <title>Course Notes</title>
      <link>https://student.cs.uwaterloo.ca/~cs135/slides/index.html</link>
      <pubDate>Thu, 06 Jun 2019 17:16:21 -0400</pubDate>
      <guid>https://student.cs.uwaterloo.ca/~cs135/slides/index.html</guid>
      <description>The course notes have changed and are not the same as Fall 2024, or previous years. Older course material may appear similar but many details are different this term. If in doubt, ask us.&#xA;Course notes will appear here 1-3 weeks in advance of lectures.&#xA;Slides Description L00 Welcome Overview of the course, tools, assignments and grading. L01 Values and expressions Prefix notation, exact numbers, Boolean expressions, constants L02 Functions Function definitions, inexact numbers, substitution rules, comments L03 Conditional expressions Expressions with cond and else, symbols, testing, contracts L04 Recursion Recursion on a natural number, names, scope L05 Lists List values and expressions, composite data, data definitions L06 Recursion on lists Recursion on a list, consuming lists, predicates over lists L07 Producing lists Filtering lists, transforming list, ordered lists L08 Big-O notation Mathematical background, list abbreviations, measuring efficiency L09 Efficiency Linear, quadratic, and exponential functions L10 Finalizing the rules Indexing, recursion on two lists, accumulators L11 Lists of lists Polygons, tables, subsets L12 Strings Characters, string processing, dictionaries, association lists L13 Binary trees Trees as a data abstraction, paths, binary search trees L14 General recursion Euclid, Fibonacci, Collatz, setting limits, mutual recursion, merge sort L15 General trees Arbitrarily nested lists, expression trees, atoms, quote notation L16 Local definitions Heron&#39;s formula, benefits of local definitions, merge sort (again) L17 Lambda Anonymous functions, producing and consuming functions, contracts L18 First-class functions Functions in lists, stable sorting L19 Functional abstraction Abstract list functions, build-list, map, foldr, foldl L20 Directed graphs Graphs as a data abstraction, paths in directed graphs, backtracking L21 Randomness True randomness, generating pseudorandom numbers, simulation L22 History Lovelace, Hilbert, Chuch, Turing, von Neumann, Backus, Hopper, McCarthy, ChatGPT</description>
    </item>
    <item>
      <title>Assessment</title>
      <link>https://student.cs.uwaterloo.ca/~cs135/assess/index.html</link>
      <pubDate>Fri, 07 Jun 2019 10:17:45 -0400</pubDate>
      <guid>https://student.cs.uwaterloo.ca/~cs135/assess/index.html</guid>
      <description>Your work in CS135 will be assessed in a variety of ways. L00 in the course notes provides details of the assessment methods. The marking scheme is as follows:&#xA;Work Points Assignments 20 Midterm Exam 25 Final Exam 45 Class participation 10 To pass the course you must&#xA;earn at least half the available assignment points (10/20), and earn at least half of the available exam points (35/70).</description>
    </item>
    <item>
      <title>Assignments</title>
      <link>https://student.cs.uwaterloo.ca/~cs135/assign/index.html</link>
      <pubDate>Fri, 28 Jun 2019 13:25:24 -0400</pubDate>
      <guid>https://student.cs.uwaterloo.ca/~cs135/assign/index.html</guid>
      <description>Assignments are where the rubber hits the road for CS135. Putting lecture content into practise is the best way for you to learn and one of the primary ways we assess your learning.&#xA;This section of the web site is concerned with the assignments themselves and resources for doing them. There are also a number of assignment policies .&#xA;Advice:&#xA;Begin early. Submit as soon as you have some results. Submit again every time you have a substantive improvement. Submit using the submission button for the appropriate assignment in the table, below. We don’t accept assignments any other way. Submit on time; there are penalties for being late. late policy Submit well before the due date; the servers get busy and slow as the due date/time approaches. Due date/time is the time in Waterloo; assuming your computer’s date/time is set correctly for your locale, Waterloo’s date and time are displayed in the upper left corner of every CS135 web page. Ask questions on Piazza . When release of assignment marks is announced on Piazza, check your marksheet (website -&gt; Assignments -&gt; View Submissions) to see what you did right, what you did wrong (if anything) and to see if there are any marking errors. Also check the post mortem (Assignments page) for common errors to avoid. After assignment 01, for each function we ask you to write, you must have a purpose, contract, function definition, and comprehensive tests. The basic tests only check for a contract and function definition, so it is your responsibility to make sure you have the other portions. For any helper functions you write, you don’t need any design recipe, but tests should still provide full coverage. Your tests should run all of your code ideally, there should be no highlighting left when you run them. You can never test too much.</description>
    </item>
  </channel>
</rss>