CSCE 155T: Python Programming for Data Science
Syllabus
Fall 2017
CS1 offers introduction to computers and problem solving with computers. Topics include problem solving methods, software development principles, computer programming, and computing in society.
This specific course introduces Python programming with focus on data collection, management, and analytics, where students will get exposure to classical methods and core skills for application development. At the end of this course, a broad array of topics will be given through the context of web crawling and search engine, including recursion, regular expressions, depth-first search, Google’s MapReduce framework, GUI widgets, HTML parsers, SQL, database, and multicore programming. This course is highly recommended for students who are interested in data processing in various informatics fields, such as library, online commerce, and bioinformatics.
Lectures & Labs
Lecture: MWF 2:30-3:20pm, Avery Hall 108
Lab: Thursday 9:30-10:45am, Avery Hall 20
Instructor
Name: Juan Cui
Office: Avery 122B
Tel: 402.472.5023
E-mail: jcui@unl.edu
Homepage: http://sbbi-panda.unl.edu
Office Hours: M W F 3:30-4:30 pm or by appointment
Teaching Assistant
Name: zeynep hakguder
Office: Avery 122C
E-mail: zeynep.hakguder@huskers.unl.edu
Prerequisites
Appropriate score on the CSE Placement Exam or CSCE101; MATH 103 or equivalent; or instructor permission
Text Book
Introduction to Computing Using Python: An Application Development Focus, 2nd Edition, by Ljubomir Perkovic (http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP003201.html)
Resources
- Python Website (includes software, tutorials, reference, etc.)
- Python Books:
- The Quick Python Book, 2nd ed. by Ceder.
- Python Pocket Reference, 4th ed. by Lutz.
- Cracking the Coding Interview by Laakman.
- Learn Python the Hard Way
- Videos, etc. from a similar course at MIT
- Practical Data Science in Python http://radimrehurek.com/data_science_python/
- Problem Solving with Algorithms and Data Structures Using Python 2nd Ed. by Miller and Ranum (free online version).
Homework Assignments
The assignments are posted on the class webpage on the Canvas system https://canvas.unl.edu/ and are due on the indicated dates. You will be required to submit an on-line copy of your assignment through Web Handin system https://cse-apps.unl.edu/handin on the due date. You are expected to write well-documented, modular code. Programs that do not run will lose significant credit. Programs are graded as follows:
10% Documentation: program heading (authorship info, date, description) and other comments.
15% Programming Style: proper indentation, clear program flow, sensible variable names, etc.
15% Testing: if program takes correctly-formatted input and produces correctly-formatted output.
45% Program Correctness
15% Program Design
Mid. and Final Exam
- Midterm: October (TBD)
- Final: December 13, Wednesday. 1:00-3:00pm (http://registrar.unl.edu/final-exam#tab1)
Grading
Attendance: 10 %
Homework Assignments (written and programming): 30 %.
Midterm: 20 %
Lab: 10 %
Final Exam: 30 %
Disabilities
Students with disabilities are encouraged to contact the UNL Office of Services for Students with Disabilities (SSD) for a confidential discussion of their individual needs for academic accommodation. It is the policy of the University of Nebraska-Lincoln 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 SSD Office, 132 Canfield Administration, 472-3787 voice or TTY.
Academic Integrity
The CSE Department has a policy to promote and enforce academic integrity. Violations of academic integrity will result in automatic failure of the class and referral to the proper university officials. The work a student submits in a class is expected to be the student’s own work and must be work completed for that particular class and assignment. Students wishing to build on an old project or work on a similar topic in two classes must discuss this with both professors. Academic dishonesty includes: handing in another’s work or part of another’s work as your own, turning in one of your old papers for a current class, or turning in the same or similar paper for two different classes. Using or otherwise obtaining another’s answers for an examination also represents a breach of academic integrity. Those who share their code and those who copy other’s code will be penalized in the same way; both parties will be considered to have plagiarized.
Tentative Course Schedule
Wk 1. Introduction to Computer Science
Wk 2. Python Data Types
Wk 3. Imperative Programming
Wk 4. Text data, Files, and Exceptions
Wk 5. Execution Control Structures
Wk 6. Execution Control Structures-2
Wk 7. Containers and Randomness
Wk 8. Namespaces
Wk 9. Object-Oriented Programming
Wk 10. Object-Oriented Programming-2
Wk 11. Graphical User Interfaces
Wk 12. Recursion
Wk 13. Recursion-2
Wk 14. The Web and Search
Wk 15. Databases and Data Processing
Wk 16. More Informatics Topics
Wk 17. Final Exam