|Soumya||Mondays 16.00 - 17.00||CSE 220|
|Jane||Tuesdays 14.00 - 15.00||CSE 021|
|Donny||Wednesdays 10.00 - 11.00||CSE 218|
Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies.This is a very practical, skills-oriented course. The goal is to gain exposure to a wide variety of useful concepts and tools. Lecture will introduce these, and the homework will provide an opportunity to practice. There will be a strong emphasis on independent learning, as it will not be possible to cover each topic comprehensively in class. Topics will likely include:
Here is the breakdown:
Extra Credit Policy:
Deadlines will be given with each assignment. These deadlines are strict. There will be no credit for late work. It is exceedingly unlikely that skipping class or being late to class because of homework is in your interest. For the entire quarter, you may have four "late days". You are strongly advised to save them for emergencies. You may not use more than two for the same assignment. On group projects you may only use late days if all members of the group have them available, and all members of the group will be charged for each late day used. They must be used in 24-hour (integer) chunks. This policy may not be the same as in your other classes. You are responsible for understanding it if you choose to submit late work.
You are encouraged to discuss the material in this course, including homework problems. We all learn better when we trade ideas with others, including course staff and fellow students. But you must produce your own homework solutions and you must not look at other students' solutions or other information that takes away the intellectual challenge of the homework.
Unless specifically told otherwise, you are to complete assignments individually. You may discuss assignments in general terms with other students including a discussion of how to approach a problem, but the code and other work you submit must be your own. The intent is to allow you to get some help when you are stuck, but this help should be limited and should never involve details of how to write a solution. You may not have another person (current student, former student, tutor, friend, anyone) "walk you through" how to solve an assignment.
If you are ever unclear about how to represent what work you have done, (a) ask and (b) describe clearly what you have done. If you do, the worst that will happen is you will lose some credit on an assignment. This is much better than the alternative. If you are at all in doubt about whether your collaboration was appropriate, include a description of your collaboration with your homework submission. If the course staff receives homework submissions that are too similar to have been created independently, or are derived from other sources, we will pursue the maximum penalty allowed by the University.
emacs, scripting. [outline] [shell recording] [15au slides]
sed. [outline] [shell recording] [15au slides]
printf, declarations, preprocessor. [outline] [line_count.c] [15au slides]
structtype. [outline] [shell recording] [15au slides]
gdb. [outline] [15au slides] [example makefile] [gdb recording] [original reverse.c, final reverse.c]
git. [outline] [15au slides] [shell recording] [hw5 partner form]