teaching
CMSC 226
Principles of Computing Systems
overview | logistics | schedule | assignments | presentations | resources
| |
Class: Mon & Wed 1:30pm-2:50pm (RKC 107)
Office Hours: Tue & Wed 3pm-4pm and by appointment
Required Texts
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook by Michael Kerrisk. No Starch Press. 2010.
- 21st Century C (2nd Edition) by Ben Klemens. O'Reilly. 2015.
- Bite Size Command Line by Julia Evans. Computer Wizard Industries. 2018.
- Bite Size Linux by Julia Evans. Computer Wizard Industries. 2018.
- ARM assembler in Raspberry Pi by Roger Ferrer Ibáñez. 2013.
- C Programming Language (2nd Edition) by Brian Kernighan and Dennis Ritchie. Prentice Hall. 1988. ISBN: 0131103628.
- Operating Systems: Three Easy Pieces (Version 0.90) by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Arpaci-Dusseau Books. 2015.
- Midterms (40%): Two paper & pencil exams
- Assignments (30%): Programming assignments
- Project (20%): A large project worked on for approximately one third of the term
- Quizzes (10%): Short quizzes given approximately every class
- Attend class.
- Be on time.
- Participate.
- Check moodle.
- Come to class prepared. Make sure to have read the required reading BEFORE class.
- Complete all assignments and start early.
- Network outages and other computer problems are not valid excuses for missing deadlines; take this into account in your planning.
- Cooperate, but don't copy.
- Credit work, including all sources you used from the web, other books, etc.
- Sharing ideas is encouraged, but blatantly copying work without attribution will be treated as scholastic dishonesty and receive no credit.
- Be prepared to demonstrate the theory of your program (Peter Naur)
- Keep your assignment and lab work private, a USB flash drive is recommended.