Snefru: Learning Programming with C#

Welcome to the first edition of Snefru: Learning Programming with C!

This book is the textbook for APS105: Computer Fundamentals at the University of Toronto. It is a textbook that teaches programming using the C programming language. It can serve as a resource for students who have no prior programming experience.

Authors: This book is based on course notes generated by Salma Emara, Baochun Li, Jonathan Rose, John Carter and Greg Steffan, who are current and past professors at the University of Toronto. Together they created years of intellectual contributions to the course content. The quizzes are prepared by Xiaochong Wei, a Ph.D. candidate at the University of Toronto. The framework to embed the quizzes was developed by Riya Bansal, a second-year student at the University of Toronto. The primary author of this textbook is Salma Emara, who used the course notes as a starting point and then wrote this textbook from scratch. Many parts of this textbook was written with help from GitHub Copilot, GPT-3.5 and GPT-4. The textbook is currently maintained by Salma Emara.

We would like to acknowledge the help of Yvonne Yang, an undergraduate student at University of Toronto. Her meticulous efforts helped in transforming static code blocks into interactive, editable, and runnable segments that aim at enhancing the learning experience for our readers. The library that made interactive code blocks possible was developed by Jared Van Valkengoed, and is available https://github.com/MarketingPipeline/Code-Runner-Web-Component.

The current semantic search engine was developed by Jiahan (William) Wen, an undergraduate student at the University of Toronto. It helps in finding closely relevant information in the textbook, instead of searching for keywords.

If you have been utilizing this textbook in your teaching, we kindly invite you to share your experiences via email salma@ece.utoronto.ca. Whether it be success stories from your classroom, constructive feedback, or suggestions for improvement, we are eager to hear from you.

The textbook is being referred to in ELEX 2125: C Programming for Electronics at British Columbia Institute of Technology. Thanks to Joselito Laguio for adopting the textbook in his course.

Copyright 2022–2024 Salma Emara. Released under the GNU General Public License version 3.0 (GPL-3.0).

GNU General Public License version 3.0 (GPL-3.0)