| Instructor: | Jerod Weinman |
| Office: | Noyce 3825 |
| Phone: | x9812 |
| E-mail: | [weinman] |
| Mentors: | Tiffany Nguyen |
| E-mail: | [nguyenti] |
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 |
| Lab Held | Writeup Due |
| Monday | Wednesday |
| Tuesday | Friday |
| Wednesday | Monday |
| Friday | Tuesday |
| Exam | Week | Date |
| 1 | 4 | Friday 25 September |
| 2 | 8 | Friday 30 October |
| 3 | 12 | Wednesday 25 November |
| Final | - | Wednesday 16 December, 9 am |
Wray, S. (2010). How pair programming really works. IEEE software, 27(1), 50-55.You may also be interested in the flow of activities actually used by pair programmers in industry. For that, you can read the following helpful patterns.
Zarb, M. (2015). Pair Programming Guidelines.
| Discussion and participation | 5% |
| Lab writeups | 15% |
| Homework problems | 15% |
| Projects | 15% |
| Midterm Exams | 30% |
| 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.