CS 410P: Introduction to Scientific Programming/Python

(Coordinator: Arvind Narayan)

Catalog Description

Introduces the concepts and techniques of computer programming. Particular emphasis on computer programming as a problem-solving technique in science and engineering applications. Good programming style is stressed. Significant out-of-class programming required. Not open to students who have completed CS 415 or the equivalent.

Course Topics and Student Outcomes

Programming (3):

  • Design, implement, test, and debug programs involving basic computation, simple I/O, standard conditional and iterative structures, functions, objects
  • Identify and use good programming style
  • Choose appropriate conditional and iteration constructs for a given programming task and apply them properly
  • Start with smaller programs covering specific areas of the language like iteration, conditions, functions and apply the techniques to solving larger problems
  • Introduce Object Oriented Programming Techniques
  • Understand how to convert a problem-solving technique into a program and apply it specifically to problems in the areas of Math, Science and Engineering

Algorithms (2):

  • Break down the problem solving technique into a series of steps by applying algorithmic techniques
  • Apply the techniques of structured (functional) decomposition to break a program into smaller pieces

Evaluation

  • 18-20 Lab Assignments (20%)
  • 8 Programming Assignments (45%)
  • 5 Quizzes (3% each)
  • 1 Final Exam (20%)

Topics

Syntax, Semantics, Basics

  • Data Types, Operators, Expressions

Program Control

  • Program Control using Conditions
  • Loops and Repetition

Modular Programming

  • Functions, Parameters
  • Multiple modules, Code organizatios

Data Structures

  • Lists, Tuples, Dictionaries
  • Arrays using Numerical Packages

File Processing

Miscellaneous

  • Algorithms, Software Design Life Cycle
  • Apply programming techniques to solve problems in Math, Science, Engineering
  • Object Oriented Design, creation of classes
  • Recursion
  • Use Numerical, Scientific and Visualization Packages

Textbooks

Suggested

  • An Introduction Programming using Python – David I. Schneider
  • Introduction to Programming Using Python – Y. Daniel Liang
  • Fundamentals of Python (First Programs) – Ken Lambert
  • Introduction to Computing and Programming Using Python – John V. Guttag