CS146 Spring 2026 (Sessional Lecturer, Section 002)

Number of Respondents: 18/36 (50%)

The instructor(s) helped me to understand the course concepts.

Average: 4.94

Standard Deviation: 0.23

Strongly DisagreeDisagreeNeutralAgreeStrongly AgreeNo Basis for Rating
0001170
0%0%0%5.56%94.44%0%

Comments

[Strongly Agree] Answers student questions effectively and succinctly. As someone with very limited prior knowledge to programing, I was able to understand clearly.

[Strongly Agree] Very clear lectures, also does demos sometimes to show cool stuff.


The instructor(s) created a supportive environment that helped me learn (Supportive environments enable students to feel included and valued regardless of any aspect of their identity).

Average: 5

Standard Deviation: 0

Strongly DisagreeDisagreeNeutralAgreeStrongly AgreeNo Basis for Rating
0000180
0%0%0%0%100%0%

Comments

[Strongly Agree] Funny guy


The instructor(s) stimulated my interest in this course.

Average: 4.94

Standard Deviation: 0.23

Strongly DisagreeDisagreeNeutralAgreeStrongly AgreeNo Basis for Rating
0001170
0%0%0%5.56%94.44%0%

Comments

[Strongly Agree] Very interesting content post midterm.

[Strongly Agree] Ross is an amazing professor who has a great sense of humour.

[Strongly Agree] The additional demos gave me some directions in terms of what to study next.


The intended learning outcomes were identified (Learning outcomes/objectives articulate what students should be able to know, do, and/or value by the end of a course).

Average: 4.61

Standard Deviation: 0.76

Strongly DisagreeDisagreeNeutralAgreeStrongly AgreeNo Basis for Rating
0104130
0%5.56%0%22.22%72.22%0%

Comments

[Strongly Agree] Would be better if the 5 modules were outlined before the end of module 1 so we can get a bigger picture and understand why we’re learning the stuff in module 1

[Disagree] i still don't really understand the point of learning these languages (SIMPL, PRIMPL, A-PRIMPL, MMIX).


The course activities prepared me for the graded work.

Average: 4.5

Standard Deviation: 0.6

Strongly DisagreeDisagreeNeutralAgreeStrongly AgreeNo Basis for Rating
0017100
0%0%5.56%38.89%55.56%0%

Comments

[Strongly Agree] In-class examples were very useful, but could use more.

[Agree] Give us more assignments pre midterm because some topics barely had any exercises for us to do (aside from the midterm review session)


The intended learning outcomes were assessed through my graded work.

Average: 4.5

Standard Deviation: 0.6

Strongly DisagreeDisagreeNeutralAgreeStrongly AgreeNo Basis for Rating
0017100
0%0%5.56%38.89%55.56%0%

Comments

[Strongly Agree] Assignments reflected lecture content.


The course workload demands were...

Average: 4

Standard Deviation: 0.58

Very LowLowAverageHighVery HighNo Basis for Rating
0031230
0%0%16.67%66.67%16.67%0%

Comments

[Average] First half seemed easier than CS 136, but post-midterm, the difficulty ramped up. Would prefer more examples and help for compilers and assemblers.

[High] The assignments can take some time.


Text Questions

The most important thing I learned in this course was:

Data structures, compilers/assembly (interesting)

Code, Static, Heap, Stack.

And side effects introduce complications.

Better C programming? Honestly I am unlikely to use anything that I learned in this course given the heavy focus on made up languages like Primpl and Racket.

My love for compiler design. Also gave me a deep understanding of how computers and programming languages work.

c memory stuff

Not to be afraid to ask for support or help when I need it! I had a wonderful conversation with you during office hours and I wish I were able to go to them more often if going to lectures already wasn't big enough of an issue for me. The content was stimulating and interesting, and going to lectures definitely would help intuition much better than otherwise.

Low level computing

Being able to reason about how languages actually work and understanding how lower level languages get abstracted higher and higher. It was interesting to see the entire process going up (admittedly less interesting to have to write it all, but it was informative).

Interpreters

Modelling memory and low level programming

All languages aren't real and programming is a lie

How my high-level programs are actually represented & implemented on my computer at the machine level.


What helped me to learn in this course was:

Taking notes, attending lectures, and reading lecture summaries. Also having friends who I can talk to.

Just programming. Really getting my hands dirty with C programming and using Valgrind to check if I was leaking memory or having dangling pointers.

good energy and clarity of the course staff in teaching and helping during office hours and online discussions

Some of the assignments were quite good and helped me to better understand the material (I generally learn CS better through assignments than lectures). Other assignments were tedious nightmares where much of the work taught me little to nothing (C10 and Q8 come to mind)

The assignments help a lot in terms of understanding.

posted lecture notes

Discussing problems with peers, seeking help during office hours, and the attached lecture summaries (bless).

The professor and the assignments

The lecture summaries are great, just sometimes not posted in time for me to peruse before class. I like reading a little before lectures so I'm not completely confused.

Assignment questions

Reviewing course notes that I have written thoroughly and making sure I understood the assignmetn statements

The video game: Human Resource Machine

was very helpful to getting used to the assembly-llke languages and also for working with GOTO statements


What changes, if any, would I suggest for this course?

Would prefer a list of upcoming assignments (Title, Due date), as well as getting more information in marmoset (more info on release tests, showing exact # of tests passed).

Honestly nothing. This course was a introduction to the world of side effects and I believe it perfect.

It seems like a really strange choice to make an introductory CS course lean so far into compilers, especially when we have a required second year course entirely on compilers. I would much prefer CS 146 use the extra time we have over CS 136 to do an overview of various topics in CS (maybe a little compilers, a little operating systems, a little data science, a little front end / UI) to give a better overview and help students find what they are interested in. Not sure that will every happen but I think it would be nice.

There's not enough practice content for midterms and finals, we have no expectations going in.

no style marks

Make the midterm and final exam more approachable. It is almost impossible to interpret what types of questions could show up which makes it very difficult to study and prepare for. I was expecting a midterm biased heavily towards conceptual understanding, however most questions relied on implementation skills and assignment-type questions rather than the abstractions and niche details discussed in lectures. I hope it is easier in future years to differentiate between content that is good for our learning and understanding, and content that is important to fully wrap our heads around and properly comprehend.

Give us more assignments pre midterm and give us a brief outline of the 5 modules in the beginning (helps give the course cohesion)

Maybe a few less assignments toward the end. It's a bit of a busy time looking for jobs which is probably more of a priority than trying to wrangle a compiler. But I'll get on it..

Course notes that aren't fully text-based (e.g. slides)

Give more assignments in the beginning of the course to get familiar with some of the harder concepts

I think we could've skiped SIMPL and went straight to PRIMPL