CSCI 220 Syllabus – Spring 2013

Instructor

Aspen Olmsted

Course website : http://blogs.cofc.edu/olmsteda

Tel: 843.953.6600

Email: Please use aspen.olmsted@cs.cofc.edu with Subject = CSCI220

Office: J. C. Long Building 226

Office hours: MWF 10:00 – 11:00 AM

Class place and time

Classroom: J C Long 219

Time: MWF 12:00 – 12:50 PM

Catalog description

CSCI 220 Computer Programming I  An introduction to programming and problem solving using Python. Topics include data types, variables, assignment, control structures (selection and iteration), arrays, methods, classes and an introduction to object-oriented programming.

Prerequisite: CSCI 120 or CSCI 180 or CSCI 210 or MATH 111 or permission of the department;

Co-requisite: CSCI 220L..

Course Outcomes

  1. To analyze the Execution cycleand apply its phases in program development (e.g., executing pre-compiled class files)
  2. To apply the software development process (problem definition, requirements specification, design, implementation, testing, and maintenance) in program development. Maintenance. [2] Other steps.
  3. To apply numeric and string data types torepresent information(including knowing when to use which data type, and the range and precision of each  numeric data type)
  4. To apply variables in program development
  5. To analyze assignment (semantics of LHS versus RHS) and apply its components in program development
  6. To apply basic I/O operations with  different data types
  7. To apply text file I/O operations with different data types
  8. To design expressions using arithmetic operations (including understanding their limitations, such as integer truncation, round-off error, division by zero, narrowing and widening conversions, casting, precedence, and standard math library functions)
  9. To design expressions using relational operators (including understanding floating point equality)
  10. To design expressions using logical operators (including short-circuit)
  11. To design selection statements (including nested selection)
  12. To design repetition statements (including count-controlled versus event-controlled, sentinel-controlled)
  13. To design simple data structures using lists (including using loops with lists, , parallel lists, multi-dimensional lists, shallow versus deep comparison, common task such as finding max/min, summing, and other aggregate operations)
  14. To apply non-recursive searching in program development and to understand the notion of run-time complexity for linear and binary search
  15. To apply non-recursive sorting in program development and to understand the notion of run-time complexity for O(N2) sorting algorithms
  16. To design methods (including pass-by-value versus pass-by-reference, formal versus actual parameters, void versus value-returning and when to use which, preconditions and postconditions)
  17. To apply top-down design in program development (functional decomposition for algorithmic design) as a mechanism for handling problem complexity as well as facilitating team programming and software reuse
  18. To analyze classes and apply their components in program development (including instantiation of objects, system drivers, types of methods (get, set, string conversion, constructors, renderers), use of the “self” reference)
  19. To explain object-oriented design as a mechanism for handling problem complexity as well as facilitating team programming and software reuse (introduce a simplified UML notation)
  20. To explain naming, functional and data abstraction (including information hiding and encapsulation) in program development
  21. To work with basic graphics objects and operations in implementing simple graphical user interfaces

Professor Assumptions

I am assuming because you are in this class you want to learn about object-oriented

programming.  Therefore, it is my job to use the 40 hour long classes and 80 hours of outside

work to get you there.

Required text

Python Programming: An Introduction to Computer Science 2nd Edition, by John Zelle

2010. Retail Price $45.00.  This book is available electronically from the library at http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418/ref=sr_1_1?ie=UTF8&qid=1345561775&sr=8-1&keywords=python+programming

Grading scale
100-90 (A); 87-89 (A-); 86-84 (B+); 83-80 (B); 79-77 (C-); 76-74 (C+); 73-70 (C); 69-67 (C-); 66-60 (D); else (F)

Evaluation schedule
40% Final
40% Quizzes
20% Programming Exercises

Programming Exercises
Each chapter will have several short programming exercises from the back of the book. These will be assigned in Oaks under dropbox.

Quizzes

Each chapter of the book has a series of exercises that builds on previous chapters from the book.  You are encourages to work through the exercises by the class time on the following Monday after the material has been covered.  A small subset of the homework will be used as a basis for a 15 minute quiz at the beginning of the Monday class.  We will have 13 quizzes and the lowest grade will be dropped automatically.  There will be no makeups for any reason.  So if you miss class during quiz time this will become your lowest grade.

Final

We will have one comprehensive final during finals week covering the material for the whole course.

Disabilities

Any student who feels he or she may need an accommodation based on the impact of
a disability should contact me individually to discuss your specific needs. Also, please
contact the College of Charleston, Center for Disability Services http://www.cofc.edu/~cds/
for additional help.

Student Honor Code
I expect you to abide by the Honor Code and the Student Handbook: A Guide to Civil and
Honorable Conduct. If you have a question about how to interpret the Honor Code, ask before
acting! I encourage collaboration, but you must document it. Thus, each student will submit
their own homework and, when collaborating, provide a reference to those people and
documents consulted.

Attendance
Attendance at regular classes is not mandatory, but is a great way to engage the
course material and to ask questions. Attendance for tests and the exam is expected
(rescheduling for sickness is accommodated). Please do not attend class if you are sick
or believe you are becoming ill. It is best to document your absence through an absence
report in Undergraduate Academic Services. ATTENDANCE WILL BE TAKEN AT ALL
CLASS SESSIONS.

Electronic Devices
The use of electronic devices, both stand-alone and network capable, will play an
increasingly important roll in teaching and learning at the College of Charleston, including
their use in our classrooms. Just be respectful about unnecessary distractions to you and
to others seated around you.

How to report an absence

Students should…

Come to 67 George Street (white house next to Stern Center) to discuss absences and
fill out the appropriate forms. Or get forms online at: http://www.cofc.edu/studentaffairs/general_info/absence
Forms can be faxed to the College at 953-2290.

Students will need documentation for health, personal or emergency situations.
Athletic Teams and school-sponsored trips will have documented lists of students
participating on our letterhead as early in the semester as we get the information from the
organization. We would like all information on scheduled outings to reach us at least two
full weeks in advance. We will then turn the information back to the coach or advisor.

Academic Integrity
Lying, cheating, attempted cheating, and plagiarism are violations of our Honor Code
that, when identified, are investigated. Each incident will be examined to determine the
degree of deception involved.

Incidents where the instructor determines the student’s actions are related more to a
misunderstanding will be handled by the instructor. A written intervention designed
to help prevent the student from repeating the error will be given to the student. The
intervention, submitted by form and signed both by the instructor and the student, will be
forwarded to the Dean of Students and placed in the student’s file.

Cases of suspected academic dishonesty will be reported directly by the instructor and/
or others having knowledge of the incident to the Dean of Students. A student found
responsible by the Honor Board for academic dishonesty will receive a XF in the course,
indicating failure of the course due to academic dishonesty. This grade will appear on
the student’s transcript for two years after which the student may petition for the X to
be expunged. The student may also be placed on disciplinary probation, suspended
(temporary removal) or expelled (permanent removal) from the College by the Honor
Board.

Students should be aware that unauthorized collaboration–working together without
permission– is a form of cheating. Unless the instructor specifies that students can
work together on an assignment, quiz and/or test, no collaboration during the completion
of the assignment is permitted. Other forms of cheating include possessing or using
an unauthorized study aid (which could include accessing information via a cell phone
or computer), copying from others’ exams, fabricating data, and giving unauthorized
assistance.

Research conducted and/or papers written for other classes cannot be used in whole
or in part for any assignment in this class without obtaining prior permission from
the instructor. Students can find the complete Honor Code and all related processes in the Student  Handbook at http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php