CSCI/CMPE 4341 Topics:
Programming in Python
Spring 2015
Instructor: Xiang Lian
Office:
ENGR 3.275
Web: http://faculty.utpa.edu/lianx/
Email: lianx@utpa.edu
Course:
CSCI/CMPE 4341 Topics:
Programming in Python
Prerequisites:
Students are expected to be enrolled in or have
completed CSCI 1380 or Programming Experience in another language and Ability
to develop algorithms.
Note that, this course is a second language course,
which means that it should be taken instead of Java or C#. It cannot be
taken as a CSCI advanced elective in the degree plans, but it can be
taken as a CMPE advanced elective.
Time: TR, 9:10am ~ 10:25am
Location: ENGR 1.290
Course Webpage: http://faculty.utpa.edu/lianx/old_courses/CSCI4341_2015spring.html
Instructor's office
hour: Tuesday and Thursday (4:00pm ~ 6:00pm); or by appointment
Teaching Assistant: Santiago
Pazmiño
Office: ENGR 3.273A
E-mail: sppazmino@broncs.utpa.edu
Phone: TBA
Office Hours: Wednesday and Thursday (11:30 am ~ 1:00 pm);
or by appointment
Textbook
Harvey M. Deitel, Paul J. Deitel, Jonathan
P. Liperi, and Ben Wiedermann.
Python How to Program, 1/e. ISBN-13: 978-0130923615, ISBN-10: 0130923613, 2002.
Catalog Description
The
Python programming language will be introduced with an emphasis on syntax of
Python, the use of objects, and XML. Topics may include control structures,
functions, data structures, object-oriented programming, inheritance and
polymorphism, graphical user interface, database connections, XML, exception
handling, concurrent programming, files and streams, databases, and Web
Services.
Learning Outcomes
1. Declare and use
various data types in the Python environment.
2. Properly use the
different looping structures available in Python.
3. Write an
amortization schedule or the future value of monthly investment program to
demonstrate the capabilities of looping.
4. Develop and use
classes, objects, methods and attributes.
5. Write programs
involving single and multidimensional arrays.
6. Write object
based programs showing proper use of inheritance and polymorphism.
7. Use GUIs
available in Python.
8. Write multi-threaded programs.
9. Write programs using different types of
file structures available to Python.
10. Link Python to a database or XML.
Python programming requires a great deal of time working with the
tools. Students need to spend a minimum of 2 hours a day outside the classroom
working in the lab. If you do not have the time, please do not sign up for this
course.
Tentative Schedule
Week |
Topic |
Notes1 |
Week 1 (Jan. 20) |
|
|
Week 1 (Jan. 22) |
Assignment
1 (Due on Jan. 29) |
|
Week 2 (Jan. 27) |
Jan. 27: Deadline to form study groups
(Please send me [lianx@utpa.edu] name,
student ID, and email of each team member) Assignment
2 (Due on Feb. 5) |
|
Week 2 (Jan. 29) |
|
|
Week 3 (Feb. 3) |
Assignment
3 (Due on Feb. 12) |
|
Week 3 (Feb. 5) |
|
|
Week 4 (Feb. 10) |
Assignment
4 (Due on Feb. 26) |
|
Week 4 (Feb. 12) |
Bonus exercise (3 bonus points for Valentine's Day; please
submit to Blackboard; hard deadline: due on Mar. 3) |
|
Week 5 (Feb. 17) |
|
Feb. 18: Last day to change to
non-credit |
Week 5 (Feb. 19) |
Q/A |
|
Week 6 (Feb. 24) |
EXAM I |
|
Week 6 (Feb. 26) |
||
Week 7 (Mar. 3) |
Group Study Meeting (1) |
Project Report (1) [Introduction, Problem
Description, Background] (Due on March
12) |
Week 7 (Mar. 5) |
|
|
Week 8 (Mar. 10) |
Assignment
5 (Due on Mar. 26) |
|
Week 8 (Mar. 12) |
|
|
Week 9 (Mar. 17) |
-- |
March 15 – 20, Spring break; No classes |
Week 9 (Mar. 19) |
||
Week 10 (Mar. 24) |
Group Study Meeting (2) |
Project Report (2) [Design and
Implementation, Experiments] (Please also include the revised sections of
Project Report (1)) (Due on Apr. 14) |
Week 10 (Mar. 26) |
|
|
Week 11 (Mar. 31) |
|
|
Week 11 (Apr. 2) |
|
|
Week 12 (Apr. 7) |
Assignment
6 (Due on Apr. 23) |
|
Week 12 (Apr. 9) |
|
|
Week 13 (Apr. 14) |
|
|
Week 13 (Apr. 16) |
Q/A |
|
Week 14 (Apr. 21) |
EXAM II |
|
Week 14 (Apr. 23) |
Group Study Meeting (3) |
Project Report (3) (Note: this is
complete final project report, including all sections in Project Reports (1)
and (2)), Python source code package, PowerPoint Slides for Presentation, and
readme file (Hard deadline: Due on May 5) |
Week 15 (Apr. 28) |
Project
Presentation (10 min) &
Demo (5 min) [Session I] (Please prepare Powerpoint slides for the
presentation!) |
Study Group 1:
Data Structures in Python Study Group 2: Visualization
of Sorting Algorithms Study Group 3: Micro
Python Study Group 4: Joe’s
Curiosities Study Group 5: Maze
Game |
Week 15 (Apr. 30) |
Project
Presentation (10 min) &
Demo (5 min) [Session II] (Please prepare Powerpoint slides for the
presentation!) |
Study Group 6: ABC
Phonics Study Group 7: Hangman
Game Study Group 8: Shooter |
Week 16 (May 5) |
Q/A |
Study Group 9: Time
Sheet Online course evaluation (Wednesday, May
6th at 11:59pm): https://my.utpa.edu |
Week 16 (May 7) |
-- |
Study days; No classes |
Week 17 (May 09
- 15) |
Final Exam (8am - 9:45am, Thursday, May 14) |
|
1 Academic calendar:
http://www.utpa.edu/calendar/academic-calendar/
Note: exam dates are tentative, exact dates
will be announced in class!!!
Drops
and drop passes must be handled by you and the admission office; I will sign
the necessary documents. But, I will not place a drop or drop pass on the final
grade sheet.
Resources:
1.
Python IDE software:
·
https://www.python.org/downloads/
·
IPython: http://ipython.org/index.html
·
Python
tools for Visual Studio: https://pytools.codeplex.com/releases/view/109707; IronPython:
http://ironpython.codeplex.com/; Visual Studio Express: https://msdn.microsoft.com/en-us/vstudio//default.aspx
2.
eBooks:
·
Python How to Program,
Deitel et al.
·
Learning to Program Using Python, Cody Jackson
Study Groups
1.
Please
form a team with 3-4 team members.
2.
Each
team needs to finish one programming project, including:
·
A
project report (e.g., problem description, background, solution,
implementation, experimental settings, empirical evaluation, and screen
captures of graphical interface);
·
A
statement of tasks for each team member;
·
Source
code;
·
Demonstration
(5 minutes); and
·
Presentation
(10-15 minutes).
3.
Each
team needs to equally distribute their workloads in the project.
4.
Scores
of team members consist of two parts: team
score (90 points) + individual score
(20 points). All team members will receive the same team scores, and individual
scores are given by other team members, with the scales from 1 to 20.
5.
You
can select one of the specified project categories below, and design your own
projects. Different teams should do distinct
projects. If you want to design your own projects, you should first obtain the
consent from the instructor.
·
Computer
games
·
Data
structure & algorithms
·
Database-related
applications
·
…
Exam I & II …………………. 45%
Final Exam ………………… 25%
Assignments………………… 20%
Attendance
…………………. 5%
Project
………………………
10%
A
= 90 or higher
B
= 80 - 89
C
= 70 - 79
D
= 60 - 69
F
= <60
Guidelines for Programming Assignments
All
programs and other assignments must be submitted to Blackboard AT
THE BEGINNING OF THE CLASS PERIOD (5 minutes grace period). All assignments turned in after the
class begins will be considered late (even if you come to class late).
Late
Penalty: 30% penalty. I will not
accept assignments after one week and one day.
Program Identification Section.
All programs should
begin with a comment section that would include the following:
(IF YOU DO NOT INCLUDE
ANY OF THESE YOU WILL BE PENALIZED 2 POINTS).
PROGRAMMERS NAME:_________________________________________________
STUDENT ID:___________________________________________________________
CLASS:________________________ ASSIGNMENT
#:_________________________
DATE DUE:__________________ DATE TURNED IN:_________________________
Please upload the
*.zip file you created to the Blackboard. The subject of the assignment must
include the following information:
[CSCI 4341] [Assignment #] [Your Name Here] [Your Student ID Here]
GENERAL DESCRIPTION OF THE PROGRAM
(Program inputs, outputs and summary of what the program does).
Each function should be distinctly
identified (block it off using asterisks).
A brief description of its purpose should be given in comments.
Comments should be inserted as
necessary throughout the program to convey the algorithm of the program. All programs must be tested thoroughly
before submission. You should
include program runs to indicate
that every option of the program has been tested. Programs
turned in without any program run will receive a grade of zero.
WHAT TO TURN IN:
1. Pseudo code, structure chart,
flowchart, etc. as directed.
2. Program listing.
3. Program run.
Turn these in a folder.
GRADING:
Programs that do not run 0
points
Comments as explained above 5
points
program
listing 70
points
program
run 25
points
Program correction and
re-submission: up to 70% of missed points.
Attendance in the lecture is mandatory. Students are responsible for all materials covered in class, the textbook, tutorials, and homework assignments. Students are expected to attend lectures, study the text, and contribute to discussions. You need to write your name on attendance sheets throughout the course, so please attend every lecture.
No make-up exams will be given except for university sanctioned excused absences. If you miss an exam (for a good reason), it is your responsibility to contact me before the exam, or soon after the exam as possible.
The University expects a student to maintain a high standard of individual honor in his/her scholastic work. Unless otherwise required, each student is expected to complete his or her assignment individually and independently. Although study together is encouraged, the work handed in for grading by each student is expected to be his or her own. Any form of academic dishonesty will be strictly forbidden and will be punished to the maximum extent. Copying an assignment from another student in this class or obtaining a solution from some other source will lead to an automatic failure for this course and to a disciplinary action. Allowing another student to copy one's work will be treated as an act of academic dishonesty, leading to the same penalty as copying.
Students with
disabilities are encouraged to contact the Disability
Services office for a confidential discussion of their individual needs for
academic accommodation. It is the policy of the University of Texas-Pan
American to provide flexible and individualized accommodation to students with
documented disabilities that may affect their ability to fully participate in
course activities or to meet course requirements. To receive accommodation
services, students must be registered with the Disability Services office (DS),
University Center #108, 665-7005 or disabilityservices@utpa.edu.
· (a) An ability to apply knowledge of computing and mathematics appropriate to the discipline
· (b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
· (c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
· (i) An ability to use current techniques, skills, and tools necessary for computing practice
· (j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
· (k) An ability to apply design and development principles in the construction of software systems of varying complexity
The instructor reserves the right to alter this syllabus as necessary.