Imperative Problem Solving (Section 01)

Instructor
Meeting Times
  • MWF 8:30–9:50am in Noyce 3815
Office Hours
  • Make an appointment I look forward to meeting with you to discuss any aspect of our course, so please do not hesitate to book an appointment. Times for office hours are tentatively set as follows but I will add times in calendly as things fill up: Mondays 2pm - 3:45pm; Wednesdays 10am - 12pm; Thursdays 2:30pm - 4:00pm. If available times in calendly don’t work for you, please send me a quick email with some times that do work for you so we can find a time to meet. If my door is closed, please assume that I am either in an in-person meeting or an online meeting.
Textbook
Mentors
  • Chloe Kelly (section 01)
  • Gabriela Roznawska (section 02)
Mentor Sessions
  • TBD from TBDpm in Noyce TBD
Evening Tutor Hours
  • Sunday, 3–5pm and 7–10pm in Noyce 3813 and 3815
  • Monday–Thursday, 7–10pm in Noyce 3813 and 3815

About this course

Welcome to the Fall 2024 session of CSC 161: Imperative Problem Solving. In this course, we’ll build on your experience solving computational problems in CSC 151 using a new approach. This course website will be your primary source for the course schedule (which includes readings and daily labs), weekly lab reports, weekly homework, and general course policies listed on the syllabus.

This class uses the C programming language, a classic and influential example of an imperative language still in widespread use today. Imperative programming languages, and C in particular, sit quite close to the hardware that runs the programs we write; as a result, solving problems in C requires us to think carefully about the structure of our computation solutions and the resources we use. The reward for this extra effort is that C programs can be extremely fast, and can run on practically any computing device. Building your imperative problem solving skills in C will prepare you for CSC 207: Object-Oriented Problem Solving, Data Structures, and Algorithms. You’ll also be prepared to pick up many of the C-inspired languages on your own, and of course you’ll be better at developing computational solutions that mix approaches from both functional and imperative styles.