Scripting for Sciences and Business

Course number: 
CIS 5015
Fall 2015


Optional Reference Books:
a)    Programming Python, 3rd Edition by Mark Lutz
b)    Bash Cookbook Solutions and Examples for Bash Users, O’Reily, Cameron/Vossen Newham
c)    The AWK Programming Language: 1st Ed, Algred V. Aho, Brian W. Kernihan, Peter J. Weinberger 
Topics covered: 
Tentative Syllabus:
•    1 week: Introduction: Linux processes and files. Lab1: Hello Linux!
•    1 week: Python Syntax exercises. Lab2: Hello Files
•    1 week: Loops and Conditionals. Lab3: Hello Loops
•    2 weeks: Input/output and parsing. Lab4: Parsing
•    1 week: output formats and integration points. Lab5: Process control
•    Midterm
•    1 week: Linux File System. Lab6: External File Processing
•    1 week: File manipulation using scripts.
•    2 weeks: Awk. Lab7: Parsing2
•    1 week: Linux Process Management. Lab8: Scheduling and Batch Processing
•    1 week: Bash
•    3 weeks: Webification. Lab9: Django
•    2 weeks: Final Exam and Project
Course goals: 
Computing has become an indispensable tool for scientific research and for businesses. The ability to integrate numerical computation with experimental results becomes a necessary condition for a productive researcher and business operators. The proposed course aims to bridge the gaps between current CS (computer science) graduate programs and the emerging scientific computing needs. In particular, this course focuses on scripting languages for scientific computing and for businesses. Historically, scripting languages have been the “second-class citizens” amongst CS curriculum designers. Formal languages are preferred. Today, the paradigm has shifted. Driven by increasingly sophisticated data needs, scripting languages have emerged from obscurity to prominence for their versatility and ease of use. For practical scientific computing projects, scripting has become critical for integrating computational results with scientific research formulations and for delivering market insights for businesses.

We focus on
a)    Differences between a compiler and an interpreter and what to choose and when?
b)    Basic process and file controls
c)    Input/output formats and parsing
d)    Error handling
e)    Execution environments and integration with other systems
Attendance policy: 
Class Times and Location:

Wednesdays 5:30-8:00pm,  TL401A.

Office Hour: By Appointment.

Attendance to all meetings of the class is mandatory
Accomodations for Students with Disabilities: 
Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. I will work with DRS to coordinate reasonable accommodations for all students with documented disabilities. (
Student and Faculty Academic Rights and Responsibilities: 
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following