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:
Late 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.
Academic Integrity:
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]
struct
type.
[outline]
[shell recording]
[15au slides]
make
and gdb
.
[outline]
[15au slides]
[example makefile]
[gdb recording]
[original reverse.c, final reverse.c]
git
.
[outline]
[15au slides]
[shell recording]
[hw5 partner form]