uwloo

CS 115Introduction to Computer Science 1

Units
0.50
Faculty
Mathematics
Subject
Computer Science

When it runs

  1. F24
  2. W25
  3. S25
  4. F25
  5. W26
  6. S26
  7. F26
  8. W27
  9. S27

Ran in 7 of the last 7 terms. Winter 2027: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.

An introduction to the fundamentals of computer science through the application of elementary programming patterns in the functional style of programming. Function definition and application. Tracing via substitution. Design, testing, and documentation. Recursive data definitions. Lists and trees. Functional and data abstraction.

Prerequisites

None listed.

Antirequisites

  • Complete all of the following
    • Not completed nor concurrently enrolled in any of the following:
      • BME121 - Digital Computation (0.50)
      • CIVE121 - Computational Methods (0.50)
      • CS135 - Designing Functional Programs (0.50)
      • CS137 - Programming Principles (0.50)
      • CS138 - Introduction to Data Abstraction and Implementation (0.50)
      • CS145 - Designing Functional Programs (Advanced Level) (0.50)
      • ECE150 - Fundamentals of Programming (0.50)
      • ME101 - Introduction to Mechanical Engineering Practice 2 (0.75)
      • MSE121 - Introduction to Computer Programming (0.50)
      • MTE121 - Digital Computation (0.50)
      • NE111 - Introduction to Programming for Engineers (0.25)
      • SYDE121 - Digital Computation (0.50)
    • Not completed any of the following:

Leads to

Fall 2026 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 001615184 / 92TTh 08:30–09:50
LEC 0026152121 / 120TTh 10:00–11:20
LEC 0036519119 / 120TTh 11:30–12:50
LEC 004652089 / 90TTh 13:00–14:20
LEC 005652196 / 92TTh 13:00–14:20
LEC 0066522104 / 104TTh 14:30–15:50
LAB 101615332 / 32F 08:30–09:50
LAB 102615432 / 32F 08:30–09:50
LAB 103615532 / 32F 08:30–09:50
LAB 104593232 / 32F 08:30–09:50
LAB 105650631 / 32F 10:00–11:20
LAB 106650729 / 32F 10:00–11:20
LAB 107650828 / 32F 10:00–11:20
LAB 108650926 / 32F 10:00–11:20
LAB 109651032 / 32F 11:30–12:50
LAB 110651132 / 32F 11:30–12:50
LAB 111651231 / 32F 11:30–12:50
LAB 112651332 / 32F 11:30–12:50
LAB 113651431 / 32F 13:00–14:20
LAB 114651531 / 32F 13:00–14:20
LAB 115651632 / 32F 13:00–14:20
LAB 116663633 / 32F 13:00–14:20
LAB 117663731 / 32F 14:30–15:50
LAB 118663832 / 32F 14:30–15:50
LAB 119667530 / 32F 14:30–15:50
LAB 120911824 / 25F 14:30–15:50
TST 2016517613 / 609Nov 2 19:00–20:50

Winter 2027 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 00161130 / 260Online or by arrangement
LEC 701238373 / 9999Online or by arrangement

Resources

Around the web

Found by uwloo’s link finder, which checks that each page names CS 115.

Suggest a resource.

Reviewed on UW Flow

27% liked it12% easy22% useful

From 2,309 ratings and 148 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.

  • Racket is one of the most unclear, inaccessible, and idiotic languages ever created.
    This was supposed to be an introduction to computer science, so someone explain to me why they would choose such a remote language. It is difficult to code in, not intuitive, and because no credible institution (outside of a few universities) uses it, you can't find good resources online, so you can't teach yourself, or clarify concepts.
    I was also surprised how unresponsive the tutors are at UW.
    Furthermore, I got yelled at when I went to the cs help center.
    Do not take this course if you have little experience with coding and this is not a required course.

    Oct 2022 · didn’t like it · 4 found this helpfulOn UW FlowRemove this

  • so difficult for beginners

    Oct 2020 · 4 found this helpfulOn UW FlowRemove this

  • The only way to do bad in this course is by not managing ur time properly. This is a mistake I made when we had to work with modules. As long as u properly manage ur time and do assignments and concept checks well before the due date, you will have a great time in this course. Also try finding connections between assignments and try finding some real world applications of racket. Trust me Racket is very useful. The only criticism I have of this course is how the course is taught because it wasn't taught. (this is when I did online.) I had to understand all concepts by myself by basically reading texts. Although There was plenty of opportunity like office hours to ask for help, I only…

    Dec 2021 · liked it · 3 found this helpfulOn UW FlowRemove this

  • It's the worst course ever, online especially. They are least interested to teach. They just provided the content to read by ourselves. I wouldn't suggest anyone to take this course online.

    Apr 2021 · didn’t like it · 2 found this helpfulOn UW FlowRemove this

  • The education quality is significantly impaired with no doubt since we are doing it online. Reviews before COVID was mostly positive. But after COVID-19, a lot of them are negative. I think that reflects something. Assignment were thrown into your face like you just have one class for the whole term. For me, I believe the material we learn and the assignment we need to do is inconsistent in terms of difficulty level. The gap between them is just huge. It often took me eight to twelve hours to finish the assignment. Don't take this if you are doing online.

    Dec 2020 · didn’t like it · 2 found this helpfulOn UW FlowRemove this

Discussed on r/uwaterloo

1,454 posts and comments in 932 threads mention CS 115, April 2011 to December 2024. Quoted word for word, newest first; each reply sits under the post and the comment that started its branch. Search r/uwaterloo for newer posts.

Fall 2024

Failed 1 course with 2 withdrawal out of 5 during 1A, 25 points, 7 comments

“Honours Math student, failed an elective course, withdrawal Math137 and CS135, and also a Math135 that’s between 50% and 60%. Probably retaking the whole term in 1B. …”

u/Realistic-Stomach956: “… Also if you do decide to stay here I would recommend taking cs 115 instead of 135, you learn the same content but the assignments were so much more manageable and scoring really well on that is way easier. best of luck to you and don't beat urself up !! …”

View on RedditRemove this

Failed CS 135 54 points, 28 comments

“Grades just came out and I got like a 46 final on CS 135. I’m extremely disappointed and lowkey considering switching out of CS. Came into 1A with high 90s in highschool. …”

u/davidnguyen55535: [deleted]

u/Famous_South_2519: “How do you do a regrade request? I got 46 on my cs115 final”

View on RedditRemove this

46% on CS115 Final 4 points, 7 comments

u/This_Faithlessness26: “I just got my CS115 mark back and it turned out to be a 46. I heard it’s the default mark if you didn’t meet the weighted exam average. Is that true or is it possible that they made some sort of error? …”

u/Radiant-Science36: “Yes, it generally means you did not meet the weighted average for exam. You can book an appointment with your professor to see your exam in the first week next term and request remark if you find …”

u/chubbunii: “since exam viewings are after classes start should i add cs 115 to my schedule next term in case? or should i just remain in 116 for now”

View on RedditRemove this

46 percent in cs115 6 points, 7 comments

u/FunRecommendation298: “I got a 46, is there any way they could round up to 50? Has anyone every been Able too? I need to pass this course and I had passing grades until before the exam, where I struggled due some miscommunications about The amount of time I had”

u/iamanaybaid555: “46 is a default mark you get if you didn’t meet the exam requirement. I don’t think it’s reflective of the actual mark you got.”

u/CSplays: “You probably wouldn’t want to do that anyway. But, cs 115 is a requirement cs116”

View on RedditRemove this

Feeling lost and embarrassed 29 points, 14 comments

“I’m a CS major with 0 prior programming experience, only getting in because of my love for math. I decided to drop CS135 to 115 after struggling in order to grasp the concepts at a slower pace. …”

u/Big-Ship4494: “Relax - You're doing fine - I and a few of my friends were in a similar position in 1st yr - cs 115 -> 116 -> 136 is fine - we did it and we're fine - I'm in 4th yr now and it gets btr tbvh - I'm ngl it doesn't get easier immediately and sometimes it'll feel like the end of the …”

u/mmimetamorphosis: “it isn't the end of the world, there's literally a recommended course sequence for students who take CS115 and CS116 and you still graduate on time. …”

u/Informal-Layer2241: “… i took cs 115, then cs 116, then cs 136 over the summer. to be honest, im super happy it worked out this way. 116 allowed me to learn python, and i liked the way the lessons were structured. it was nice having a bit of time to get my feet under me. …”

u/EmotionalYesterday39: “its not ur problem cuz cs115/135 is just a shitass course imo, stuff you learned isn't gonna prepare you for future courses nor careers.”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar