| Instructor: | Jerod Weinman |
| Office: | Noyce 3825 |
| Phone: | x9812 |
| E-mail: | [weinman] |
| Mentors: | Tiffany Nguyen and Evan Bruns |
| E-mail: | [nguyenti], [brunseva] |
A continuation of CSC 151, bringing in some concepts more closely tied to the architecture of computers, compilers, and operating systems, such as macro processing, compilation and linking, pointers and memory management, data representation, and software development tools. This section of CSC 161 will utilize robotics as an application domain in studying imperative problem solving, data representation, and memory management. Additional topics will include assertions and invariants, data abstraction, linked data structures, an introduction to the GNU/Linux operating system, and programming the low-level, imperative language C. The course will utilize a workshop style, in which students will frequently work collaboratively on a series of problems. Includes formal laboratory work.This means that you'll be introduced to the C programming language, learning how to adequately describe and decompose problems of a computational nature so that you can effectively tell a computer the steps it should take to solve the problem. We will study some beginning concepts that make this process possible, easier to undertake, and often elegant. Our major objectives for this course include:
| Week | Topic | Week | Topic | |
| 1 | Introduction | 8 | Input/output | |
| 2 | C and robot programming | 9 | Images, sorting | |
| 3 | Variables, conditionals, loops | 10 | Pointers, linked lists | |
| 4 | Functions | 11 | Stacks | |
| 5 | Arrays, testing | 12 | Queues, bash | |
| 6 | Data representation | 13 | Stacks, files | |
| 7 | Characters and strings | 14 | Files and review |
| C Quiz | Week 4 | Tuesday 10 February |
| Midterm Exam 1 | Week 7 | Friday 6 March |
| Midterm Exam 1 | Week 12 | Wednesday 22 April |
| Final Exam | - | Thursday 14 May, 9 am |
Wray, S. (2010). How pair programming really works. IEEE software, 27(1), 50-55.
| Discussion and participation | 5% |
| Lab writeups | 15% |
| Homework problems | 20% |
| Projects | 15% |
| C Quiz | 5% |
| Midterm Exams | 20% |
| Final exam | 15% |
| Best of homework and midterms | 5% |
| Average % | Receives | Grade Points | Definition |
| 93-100 | A | 4.00 | Excellent |
| 88-92 | A- | 3.67 | Excellent |
| 85-87 | B+ | 3.33 | Good |
| 81-84 | B | 3.00 | Good |
| 78-80 | B- | 2.67 | Good |
| 74-77 | C+ | 2.33 | Satisfactory |
| 68-73 | C | 2.00 | Satisfactory |
| 55-67 | D | 1.00 | Passing |
| 0-54 | F | 0.00 | Failing |
"[Person X] helped me to do [thing Y] by [explaining Z]."
This work is licensed under a Creative
Commons Attribution-Noncommercial-Share Alike 4.0 International License.