SLU logo

CSCI 1060 - Scientific Programming

Spring 2019

Instructor David Ferry, Homepage
Course Web Site http://cs.slu.edu/~dferry/courses/csci1060/
Course meeting times Monday, Wednesday, & Friday from 10:00 - 10:50, McDonnell Douglas Hall Rm. 1066
Midterm Exams
TBD
Final exam
May 8th, 12:00 - 1:50PM
Office hours See my schedule

Contents
  1. Course Description
  2. Prerequisites
  3. Assignments
  4. Course Schedule
  5. Textbooks and Other Resources
  6. Grading
  7. Links
  8. Academic Honesty
  9. Academic Support
  10. Disability Services
  11. Title IX Statement

Course Description

Computing allows scientists and engineers to quantify and analyze problems to a terrific degree. The particulars of how computers are used will vary from field to field and problem to problem, but the process of computer programming (or more generally- computer-aided problem solving) is similar for everybody. Computers are machines that are incapable of original thought or imagination. Using one effectively requires a solid understanding of what a computer is and is not capable of, and then the mental plasticity to transform the real-world problem into a computer model that (hopefully) bears some significance to the original problem that must be solved. The goal of this course is to teach students this process of solving real-world scientific and engineering problems via computer programming.

Learning Outcomes- At the end of this course, students should be able to:

Topical Outline- the topics we will cover in this course (not necessarily in this order) are:

Catalog Description: Elementary computer programming concepts with an emphasis on problem solving and applications to scientific and engineering applications. Topics include data acquisition and analysis, simulation and scientific visualization.


Prerequisites


Textbook

Recommended course textbook: MATLAB An Introduction with Applications by Amos Gilat, Published by Wiley

Note: The textbook is recommended as a supplementary resource for those who wish but is not required. Any recent edition of the book is suitable.

(book's website - supplementary videos, example problems, and errata)


Assignments

There will be approximately 10 assignments for this course and a course project. These are a mix of written and programming assignments whose purpose is to apply course concepts.

Assignments submitted on time will be given full credit. Assignments submitted up to 24 hours late will be given a ten percent penalty. Assignments submitted between 24 hours and 48 hours late will be given a twenty percent penalty. Assignments submitted after 48 hours late will not be given credit, except in the case of extenuating circumstances pre-approved by the instructor.


Course Schedule

A tentative course schedule is below. Note that this schedule may change over the course of the semester. When changes occur, students will be given enough advance notice so that readings and other preparation may be accommodated.

Week Day Topic Class Code Reading Notes
Jan 14-Jan 18 Mon Introduction, Course Overview
Intro Program
intro.m Syllabus (this website)
Wed Overview of MATLAB
Scalars, operators, and precedence
scalars.m Gilat Ch. 1 Homework #1 Assigned
Fri Vectors in MATLAB vectors.m Gilat Ch. 2
Jan 21 3-Jan 25 Mon No Class: Martin Luther King Day
Wed Two-Dimensional Arrays in MATLAB Homework #1 Due
Fri Vectorized Operations Gilat Ch. 3.1 - 3.6 Homework #2 Assigned
Jan 28-Feb 1 Mon Plotting Data plotting.m Gilat Ch. 5.1 - 5.4
Wed Case Study: Rolling Pairs of Dice dicepair.m Gilat Ch. 5.8
Fri Control Structures Gilat Ch. 6.1 - 6.6 Homework #2 Due
Feb 4-Feb 8 Mon Animations
Case Study: The Motion of a Ball
animate_throw.m Homework #3 Assigned
Wed Discrete Simulation
Case Study: Approximate Motion of a Ball
ball_physics.m
Fri Control Structures: Stock Market Analysis stocks.m
Feb 11-Feb 15 Mon Basic Input and Output Commands input_output.m Gilat Ch. 4 Homework #3 Due
Wed More Stock Market Analysis Homework #4 Assigned
Fri Functions peaks.m Gilat Ch. 7
Feb 18-Feb 22 Mon Case Study: Record Rainfall
Wed Exam Review Homework #4 Due by start of class
Fri First Exam
Feb 25-Mar 1 Mon Use of subfunctions
Case Study: Stock Market Analysis solution set
Wed Random Processes
Case Study: the gambler
gambler.m
gambler_analysis.m
Homework #5 Assigned
Fri The gambler simulation and random walks (additional notes)
Mar 4-Mar 8 Mon Iterative Solvers randSqrt.m
directedRandSqrt.m
newtonSqrt.m
optimize.m
Wed More on Iterative Solvers General code for iterative solver Assignment #5 Due
Fri Random Solver Homework #6 Assigned
Mar 11-Mar 15 Mon No Class: Spring Break
Wed
Fri
Mar 18-Mar 22 Mon File I/O fileio.m Gilat Ch. 4.3-4.4
Wed Case Study: DNA to RNA Transcription (code) DNA_transcribe.m
Fri Case Study: Encryption ceasar_cipher.m
encrypt.m
Homework #6 Due
Mar 25-Mar 29 Mon Exam 2 Review Exam review programs: argDemo.m, myAverage.m, convertASCII.m, approxPi.m
Wed
Fri Second Exam (cumulative) (take home - no class) (download inclinedPlane.m, result.txt and warpeace.txt)
Exam Submission Link
Apr 1-Apr 5 Mon Cell Arrays, Structures MATLAB docs (cell arrays, structures) Project Proposal Assigned
Wed Basic sound processing in MATLAB
Fri Synthesized sounds Project Proposal Due
Apr 8-Apr 12 Mon Sound Processing Homework #8 Assigned
Wed Sound Processing
Fri Traversing Mazes
Apr 15-Apr 19 Mon Traversing Mazes Homework #8 Due
Wed Image Data Homework #9 Assigned
Fri No Class: Good Friday
Apr 22-Apr 26 Mon No Class: Easter Monday
Wed Finding components of an image
Fri Digital Watermarking
Apr 29-May 3 Mon An Introduction to C++ Programming Homework #9 Due
Wed
Fri
May 6th Mon
Project Presentations (Presentation and Project Submission Guidelines)
May 8th Fri Project Presentations (12:00-1:50PM)

Grading

Your grade will be determined as follows:

Activity Grade Percentage
Assignments 40%
Project 20%
Midterm Exams 20% each

Grading is done on a straight scale (uncurved). The following scores are guaranteed. The grading scale may be curved upwards (in your favor) at the discretion of the instructor.


Links / Resources

MATLAB

The majority of this course is centered around using MATLAB, an industry standard software for scientific and engineering computing. You can access this software in at least the following ways:

Great reads that deal with computing in an engineering context: