about this course
This course is a survey of the ethical issues involved in computing. It discusses the way that computers and software pose new ethical questions or pose new versions of standard moral problems and dilemmas. It stresses case studies that relate to ethical theory.
The Staff
instructor
- Edward F. Gehringer
- Office: 450 Monteith Engineering Research Center
- (919) 515-2066
- Office hours:
- M 3:50-4:50, F 2:30-3:30
- efg
ncsu.edu
teaching assistant
- Sampath Krishna
- Office: TBA
- Office hours:
- 2:30-3:30 W
- skrishn3
ncsu.edu
- Xinxin Sheng
- Office: 2259 EB2
- Office hours:
- 2:15-3:15 F
- xsheng
ncsu.edu
Important dates
- First class: Wednesday, August 22
- Last class: Friday, December 7
- No class: 10/12/2007 (Fall Break) & 11/23/2007 (Thanksgiving)
- For more details, see the academic calendar.
Class meetings
Wednesday and Friday 12:50-2:05 in Monteith 313
Catalog entry
Text
REQUIRED
Head First Design Patterns
by Eric Freeman, Kathy Sierra, Bert Bates, Elisabeth Freeman
Publisher: O'Reilly
Paperback
ISBN: 0596007124
Pub. Date: October 2004
REQUIRED
Programming Ruby: The Pragmatic Programmers' Guide (Pragmatic Programmers Series) by Dave Thomas, Andy Hunt, Andrew Hunt, Chad Fowler, Chad Fowler
Publisher: Pragmatic Bookshelf
Textbook Paperback - Revised Edition, Includes 1.8
ISBN: 0974514055
Pub. Date: October 2004
REQUIRED
An Introduction to Object-Oriented Design and Design Patterns Using Java by Dale Skrien (
prepublication copy)
Publisher: McGraw-Hill
Pub. Date: January 2008
RECOMMENDED
Agile Web Development with Rails by Dave Thomas, David Heinemeier Hansson, David Hansson
Publisher: Pragmatic Bookshelf
Paperback
ISBN: 0977616630
Pub. Date: December 2006
Lecture notes
Notes may be downloaded from the Web.
Prerequisites
Officially, CSC 316: Data Structures for Computer Scientists, but an undergraduate degree in computer science, including at least one year of programming in an object-oriented language (e.g., C++) is also sufficient.
Audit requirement
Do one homework, or take one test, before fall break and score at least 50%; then do one homework, or take one test, after fall break and score at least 50%. You can choose which homework or test to take, and if you take one and fail to score 50%, you can try another. If you complete this requirement, you will receive a grade of AU. If you do not fulfill this requirement, your grade will be NR (no recognition).
Homework
Homework will consist of four programming assignments and five peer-reviewed assignments.
The programming assignments will be ...
- A Ruby assignment, illustrating some of the novel o-o features of the language (4% of grade)
- A very simple Web application built using Ruby on Rails (4% of grade)
- A contribution to an open-source programming project (10% of grade)
- A semester project, done in groups of 3 or 4, which may be either a contribution to an open-source project, a project specified by the instructor, or a project of your own choosing (20% of grade)
All programs may use pair programming (but this is not required).
The four peer-reviewed assignments will be ...
- A madeup problem, suitable for a back-of-chapter exercise in the Skrien text (4% of grade)
- Peer review of others' open-source programming projects (this is actually part of the 3rd program, above)
- Peer review of others' design documents for their semester project (this is actually part of the 4th program, above)
- Twice during the semester, a contribution to a class wiki which will serve as a comprehensive treatment of a particular aspect of o-o design (e.g., design principle or design pattern); this should make heavy use of material already on the Web (4% each of grade).
Tests and exams
Two midterm tests (15% each of grade) and a final exam (20% of grade) will be given, spaced equally during the semester.
