Introduction to Programming Systems
Program Overview
Introduction to COS 217
COS 217 is a university program that focuses on developing skills for composing large programs. The program covers modularity, abstraction, programming style, and best practices for code development, testing, debugging, and performance tuning.
Course Description
The course provides an overview of computing environments and architectures through the C programming language, assembly language, and machine language.
Prerequisites
The prerequisites for COS 217 include COS 126, ECE 115, ISC 231-234, or approval by the COS placement officer. COS 217 and 226 may be taken in any order.
Lectures
Lectures meet at 10:40-11:30am on Mondays and Wednesdays in Frist 302. Attendance is required, and laptops, tablets, and phones are prohibited except for activities directly related to lecture.
Precepts
Precepts meet twice per week and cover details pertinent to programming assignments and exams. Students are expected to come prepared to participate in the discussion.
Textbooks and Other Readings
The required textbooks for the course include:
- C Programming: A Modern Approach (Second Edition) by K. N. King
- ARM 64-bit Assembly Language by Larry Pyeatt with William Ughetta
The recommended textbooks include:
- The Practice of Programming by Brian W. Kernighan and Rob Pike
- Linux Pocket Guide by Daniel J. Barrett
The course also uses reference manuals, including:
- ARMv8 Instruction Set Overview
- ARM Architecture Reference Manual
Course Staff
The course staff includes:
- Jaswinder Pal Singh, Lead Instructor
- Christopher Moretti, Co-Lead Preceptor
- Kevin Alarcón Negy, Co-Lead Preceptor
- Amelia Dobis, Preceptor
- Lana Glisic, Preceptor
- Andrew Johnson, Preceptor
- Nicholas Yap, Preceptor
The staff is complemented by a team of undergraduate course assistants.
