CSC 233 Selected Language Programming: Python

Dr. Glenn Wiggins
MCC 205
601) 925-3467
http://www.mc.edu/~gwiggins
gwiggins@mc.edu


COURSE CREDIT: 3 hrs. credit PREREQUISITES: CSC 220 or instructor's consent

OFFICE HOURS: M, T, W ,R 11:30-12:3)

TEXT: Core Python Programming, by Wesley J. Chun, Published by Prentice Hall, 2001

OTHER MATERIALS: A blank writable CD on which to burn Python language interpreter, tutorials, libraries and other course materials.

DESCRIPTION: A study of the syntax and feature of a selected special purpose language such as LISP, Prolog, Ada, Pascal, Fortran, Assembly, BASIC, or COBOL, (Python) Other languages may be included as needed. May be repeated for credit if a different language is offered.

RATIONALE: This course is an elective for all Computer Science and Computing and Information Systems majors as well as Computer Science minors. It allows students to be proficient in languages other than those learned in CSC 116, 216, and 220. It also allows for more in-depth study of a language.

LEARNING OBJECTIVES: After successfully passing this course, the student will be able to write well-designed programs using the Python language. They will also have experience with Python extension for networking, web cgi programming and gui development.

EVALUATION: The instructor reserves the right to make adjustments as necessary.
Tests: There will be a one midterm exam worth 150 points.
Assignments: There will be 5-10 assignments worth a total of 500 points.
Final Exam: There will be a comprehensive final examination given at the time specified by the college. This examination will be worth 200 points. Friday, June 29, 2001 at 9:50 am. The last day to drop this course is Wednesday June 13, 2001.

Grading Scale: 765- 850 points A    510 - 594 points D
                      680 - 764 points B        0 - 509 points F
                      595 - 679 points C

CLASS ATTENDANCE: The student is expected to attend classes. Regulations for class attendance are given in the Class Schedule. Remember in a MWF class 12 absences is an automatic F. Three tardies counts as one absence in this class. (See the Mississippi College catalog).

MAKE-UP WORK & TESTS: Students are expected to take tests on the day they are assigned. However, it is the student's responsibility to contact the instructor in case of an emergency illness or death in the family before the test. At that time the student and instructor will agree on a time for the make-up exam. This time should be within 2 days of the missed test. Assignments are to be turned in on the day they are due!! All work is due at the beginning of the class period. Any work not turned in will lose 10% credit for each school day until the third day. The due date at the beginning of class is day 1. No work will be accepted after the third day. Under no circumstances will work be accepted after the assignment has been graded and handed back in class. Exceptions to this may be made at the instructor's discretion.

ACADEMIC INTEGRITY: This statement on academic honesty in computer science courses is an addendum to the Mississippi College policy 2.19 found at http://www.mc.edu/publications/policies/ 219.html. In a computer science class individual effort is expected. Student misconduct not only includes cheating on tests, but also extends to copying or collaborating on programming assignments, projects, lab work or research unless otherwise specified by the instructor. Using other people's accounts to do your work or having others do your work is prohibited. Close proximity in lab does not mean collaboration is permitted. NOTE: Discussing logical solutions to problems is acceptable, exchange of code, pseudocode, designs, or procuring solutions from the Web, other texts, the Internet or other resources on or off campus is not acceptable.

First offense: grade of 0 for **all** parties involved unless the "guilty" party can be determined as well as any punishment deemed necessary under policy 2.19
Second offense: grade of F in the course as well as any punishment deemed necessary under policy 2.19

SPECIAL ACCOMMODATIONS: If you need special accommodations due to learning, physical, psychological, or other disabilities, please contact Dr. Buddy Wagner in the Counseling and Career Development Center. He may be reached by phone at (601) 925-3354 or by mail at P. O. Box 4016, Clinton, MS 39058.

DROPPING A COURSE: LAST DROP DATE - June 13, 2001
Students cannot withdraw after this date with a W (passing) unless the three following criteria are met:
- Extenuating circumstances (clearly outside the student's control)
- Passing the course at the time of withdrawal
- Does not have excessive absences at the time of withdrawal

NOTE: Dropping after the THIRD (3rd) WEEK will result in a grade of W appearing on your permanent record (transcripts). See http://www.mc.edu/publications/policies/213.html.

INCOMPLETE GRADES: An Incomplete may be given to a student who has been providentially hindered from completing work required in a course, provided that:
1. semester attendance requirements have been met;
2. most of the required work has been done;
3. the student is doing passing work; and
4. the student has made prior arrangements with the professor to complete the remaining work at a later date.
The grade of I must be removed promptly or it becomes an F; it cannot be removed by repeating the course.
 


TENTATIVE COURSE OUTLINE

I. CORE PYTHON.
1. WELCOME TO PYTHON!
 What Is Python? History of Python. Features of Python. Obtaining Python. Obtaining Python. Installing Python. Running Python. Python Documentation. Comparing Python.
 JPython and Some Nomenclature. Exercises.
2. GETTING STARTED.
 Program Output, the print Statement, and "Hello World!" Program Input and the raw_input() Built-in Function. Comments. Operators. Variables and Assignment. Numbers. Strings.
 Lists and Tuples. Dictionaries. Code Blocks Use Indentation. if Statement. while Loop. for Loop and the range() Built-in Function. Files and the open() Built-in Function. Errors and
 Exceptions. Functions. Classes. Modules. Exercises.
3. SYNTAX AND STYLE.
 Statements and Syntax. Variable Assignment. Identifiers. Basic Style Guidelines. Memory Management. First Python Application. Exercises.
4. PYTHON OBJECTS.
 Python Objects. Standard Types. Other Built-in Types. Internal Types. Standard Type Operators. Standard Type Built-in Functions. Categorizing the Standard Types. Unsupported
 Types. Exercises.
5. NUMBERS.
 Introduction to Numbers. Integers. Floating Point Real Numbers. Complex Numbers. Operators. Built-in Functions. Related Modules. Exercises.
6. SEQUENCES: STRINGS, LISTS, AND TUPLES.
 Sequences. Strings. Strings and Operators. String-only Operators. Built-in Functions. String Built-in Methods. Special Features of Strings. Related Modules. Summary of String
 Highlights. Lists. Operators. Built-in Functions. List Type Built-in Methods. Special Features of Lists. Tuples. Tuple Operators and Built-in Functions. Special Features of Tuples.
 Related Modules. *Shallow and Deep Copies. Exercises.
7. DICTIONARIES.
 Introduction to Dictionaries. Operators. Built-in Functions. Built-in Methods. Dictionary Keys. Exercises.
8. CONDITIONALS AND LOOPS.
 if statement. else Statement. elif (a.k.a else-if) Statement. while Statement. for Statement. break Statement. continue Statement. pass Statement. else Statement Take Two.
 Exercises.
9. FILES AND INPUT/OUTPUT.
 File Objects. File Built-in Function open(). File Built-in Methods. File Built-in Attributes. Standard Files. Command-line Arguments. File System. File Execution. Persistent Storage
 Modules. Related Modules. Exercises.
10. ERRORS AND EXCEPTIONS.
 What Are Exceptions? Exceptions in Python. Detecting and Handling Exceptions. *Exceptions as Strings. *Exceptions as Classes. Raising Exceptions. Assertions. Standard
 Exceptions. *Creating Exceptions. Why Exceptions (Now)? Why Exceptions at All? Exceptions and the sys Module. Related Modules. Exercises.
11. FUNCTIONS.
 What are Functions? Calling Functions. Creating Functions. Passing Functions. Formal Arguments. Variable-length Arguments. Functional Programming. Variable Scope.
 *Recursion. Exercises.
12. MODULES.
 What are Modules? Modules and Files. Namespaces. Importing Modules. Importing Module Attributes. Module Built-in Functions. Packages. Other Features of Modules.
 Exercises.
13. CLASSES AND OOP.
 Introduction. Object-oriented Programming. Classes. Class Attributes. Instances. Instance Attributes. Binding and Method Invocation. Composition. Subclassing and Derivation.
 Inheritance. Built-in Functions for Classes, Instances, and Other Objects. Type vs Classes/Instances. Customizing Classes with Special Methods. Privacy. Delegation. Related
 Modules and Documentation. Exercises.
14. EXECUTION ENVIRONMENT.
 Callable Objects. Code Objects. Executable Object Statements and Built-in Functions. Executing Other (Python) Programs. Executing Other (Non-Python) Programs. Restricted
 Execution. Terminating Execution. Related Modules. Exercises.
II. ADVANCED TOPICS.
15. REGULAR EXPRESSIONS.
  Introduction/Motivation. Special Symbols and Characters for REs. Res and Python. Regular Expression Adventures. Exercises.
16. NETWORK PROGRAMMING.
I  ntroduction. Sockets: Communication Endpoints. Network Programming in Python. Related Modules. Exercises.
17. MULTITHREADED PROGRAMMING.
  Introduction/Motivation. Threads and Processes. Threads and Python. thread Module. threading Module. Exercises.
18. GUI PROGRAMMING WITH TKINTER.
  Introduction. Tkinter and Python Programming. Tkinter Examples. Related Modules and Other GUIs. Exercises.
19. WEB PROGRAMMING.
  Introduction. Web Surfing with Python: Creating Simple Web Clients. Advanced Web Clients. CGI: Helping Web Servers Process Client Data. Building CGI Application. Advanced
  CGI. Web (HTTP) Servers. Related Modules. Exercises.