SLU logo

CSCI 1060 - Scientific Programming

Spring 2020

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
February 21 and March 27, regular class time
Final exam
May 6th, 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. Getting MATLAB and Resources
  8. Attendance Policy
  9. Academic Integrity
  10. Title IX Statement
  11. Academic Support
  12. Disability Services
  13. Writing Services
  14. Basic Needs Support

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 13-Jan 17 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
Snow Day Lecture
Submitting Homework with Git
Jan 20 3-Jan 24 Mon No Class: Martin Luther King Day
Wed Two-Dimensional Arrays in MATLAB matrices.m Homework #1 Due
Fri Vectorized Operations Gilat Ch. 3.1 - 3.6 Homework #2 Assigned
Jan 27-Jan 31 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 control.m Gilat Ch. 6.1 - 6.6 Homework #2 Due
Feb 3-Feb 7 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 10-Feb 14 Mon Basic Input and Output Commands input_output.m Gilat Ch. 4 Homework #3 Due
Wed More Stock Market Analysis monthlyGain.m Homework #4 Assigned
Fri Functions peaks.m Gilat Ch. 7
Feb 17-Feb 21 Mon Case Study: Record Rainfall
Wed Exam Review Homework #4 Due by start of class
Homework #4 Solution
Fri First Exam
Feb 24-Feb 28 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 2-Mar 6 Mon Iterative Solvers randSqrt.m
directedRandSqrt.m
newtonSqrt.m
Wed More on Iterative Solvers General code for iterative solver Assignment #5 Due
Fri Random Solver Homework #6 Assigned
(Video Walkthrough)
(PDF from video)
Mar 9-Mar 13 Mon No Class: Spring Break
Wed
Fri
Mar 16-Mar 20 Mon No Class: Class Cancelled
Wed
Fri
Mar 23-Mar 27 Mon File I/O
(File Input Output Video)
fileio.m Gilat Ch. 4.3-4.4
Wed Case Study: DNA to RNA Transcription
(Transcription Video)
DNA_transcribe.m
Fri Case Study: Caesar Cipher
(Caesar Cipher Video)
ceasar_cipher.m
Homework #6 Due
Mar 30-Apr 3 Mon Case Study: Random Shift Stream Cipher
(Random Shift Cipher Video)
encrypt.m
Wed Exam 2 Review Video Exam review programs: argDemo.m, myAverage.m, convertASCII.m, approxPi.m, addLineNumbers.m
Fri Second Exam
Apr 6-Apr 10 Mon Cell Arrays, Structures
(Cells and Structures Video)
cells.m
structures.m
MATLAB docs (cell arrays, structures) Project Proposal Assigned
Wed Sound processing in MATLAB
(Sound Representation Video)
Fri No Class: Good Friday
Apr 13-Apr 17 Mon No Class: Easter Monday
Wed Sound processing in MATLAB
(Synthetic Instruments Video)
Project Proposal Due
Fri Sound processing in MATLAB
(Sampled Instruments Video)
Homework #8 Assigned
(Homework 8 Explanation Video)
Apr 20-Apr 24 Mon Sound processing in MATLAB
(Audio Manipulation and Effects Video)
Wed Traversing Mazes
Fri Traversing Mazes Homework #9 Assigned
Apr 27-May 1 Mon Image Data
(Image Processing Video)
image_processing.m Homework #8 Due
Wed Digital Watermarking
(Digital Watermarking Video)
digital_watermarking.m
Fri Finding components of an image
(Image Components Video)
Apr 27-May 1 Mon An Introduction to C++ Programming Homework #9 Due
Wed
Fri
May 4th Mon
Project Presentations (Presentation and Project Submission Guidelines)
May 6th Fri Project Presentations (12:00-1:50PM)

Grading

Grading Modifications Due to COVID-19 Course Changes

The novel coronavirus has completely changed how the second half of this course will be taught, and it has completely rearranged our personal lives as well. I want to be as sensitive to this as possible, while also upholding the original goals and objectives of the course. To that end, the following grading policy still tests your ability to read, write, and test programs in MATLAB while also providing a greater degree of flexibility. It is not possible to do worse under the new grading policy relative to the old grading policy, so the new policy will apply to all students.

However, if you feel you are unable to complete any coursework due to the ongoing crisis please let me know as soon as possible and I may make additional accomodations based on any additional factors you feel are relevant.

Revised Grading Policy

  1. Homework deadlines are now flexible, but you MUST email me at least 24 hours before the original deadline to request an extension and we MUST agree on a reasonable future due date. Of course, exigent circumstances will continue to be considered in all cases.
  2. Homework #9 is cancelled.
  3. The course project is optional, with the two exams and the course project cumulatively counting for 60% of your final grade. If you elect to complete the course project then I will drop the lowest of the three scores. For example, if you score 70% on Exam 1, 80% on Exam 2, and 90% on the Project, then I would drop the Exam 1 score and 60% of your final course grade would be determined by the 80% on Exam 2 and 90% on the Project.

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:


Attendance

Successful students attend all or mostly all class sessions. This is true in my experience and has been demonstrated in large scale studies as well. In that study, even students who attended nine out of ten class periods had measurably lower class performance than those who attended all classes. However, there is no attendance requirement for this class, and you do not need to get permission when you do miss class. You are an adult and have the freedom to manage your time in whatever way you feel is most useful. Job interviews, conferences, tests in other courses, etc. are all reasonable cases for being absent.

Note that in-class assignments such as tests or quizes cannot be made up outside of class without prior approval from the instructor. All such activities will be listed course schedule with ample time to prepare (i.e. there are no "pop quizes").

If you do miss class you should refer to the course schedule to see what was missed and arrange to get course notes from another student. I am always happy to answer questions but I do not repeat full class periods in office hours.


Academic Integrity

Academic integrity is honest, truthful and responsible conduct in all academic endeavors. The mission of Saint Louis University is "the pursuit of truth for the greater glory of God and for the service of humanity." Accordingly, all acts of falsehood demean and compromise the corporate endeavors of teaching, research, health care, and community service via which SLU embodies its mission. The University strives to prepare students for lives of personal and professional integrity, and therefore regards all breaches of academic integrity as matters of serious concern.

The governing University-level Academic Integrity Policy was adopted in Spring 2015, and can be accessed on the Provost's Office website at: https://www.slu.edu/provost/policies/academic-and-course/policy_academic-integrity_6-26-2015.pdf.

Additionally, each SLU College, School, and Center has adopted its own academic integrity policies, available on their respective websites. All SLU students are expected to know and abide by these policies, which detail definitions of violations, processes for reporting violations, sanctions, and appeals. Please direct questions about any facet of academic integrity to your faculty, the chair of the department of your academic program, or the Dean/Director of the College, School or Center in which your program is housed. Specific College of Arts and Sciences Academic Honesty Policies and Procedures may be found here.


Title IX Statement

Saint Louis University and its faculty are committed to supporting our students and seeking an environment that is free of bias, discrimination, and harassment. If you have encountered any form of sexual misconduct (e.g. sexual assault, sexual harassment, stalking, domestic or dating violence), we encourage you to report this to the University. If you speak with a faculty member about an incident of misconduct, that faculty member must notify SLU's Title IX coordinator, Anna R. Kratky (DuBourg Hall, room 36; akratky@slu.edu; 314-977-3886) and share the basic fact of your experience with her. The Title IX coordinator will then be available to assist you in understanding all of your options and in connecting you with all possible resources on and off campus.

If you wish to speak with a confidential source, you may contact the counselors at the University Counseling Center at 314-977-TALK. To view SLU’s sexual misconduct policy and for resources, please visit the following web addresses: www.slu.edu/here4you and https://www.slu.edu/general-counsel.


Supporting Student Success

In recognition that people learn in a variety of ways and that learning is influenced by multiple factors (e.g., prior experience, study skills, learning disability), resources to support student success are available on campus. The Student Success Center, a one-stop shop, which assists students with academic and career related services, is located in the Busch Student Center (Suite 331). Students can visit https://www.slu.edu/life-at-slu/student-success-center/ to learn more about tutoring services, university writing services, disability services, and academic coaching.


Disability Services

Students with a documented disability who wish to request academic accommodations must contact Disability Services to discuss accommodation requests and eligibility requirements. Once successfully registered, the student also must notify the course instructor that they wish to access accommodations in the course.

Please contact Disability Services, located within the Student Success Center, at Disability_services@slu.edu or 314-977-3484 to schedule an appointment. Confidentiality will be observed in all inquiries. Once approved, information about academic accommodations will be shared with course instructors via email from Disability Services and viewed within Banner via the instructor’s course roster.

Note: Students who do not have a documented disability but who think they may have one are encouraged to contact Disability Services.


University Writing Services

Students are encouraged to take advantage of University Writing Services in the Student Success Center; getting feedback benefits writers at all skill levels. Trained writing consultants can help with writing projects, multimedia projects, and oral presentations. University Writing Services offers one-on-one consultations that address everything from brainstorming and developing ideas to crafting strong sentences and documenting sources. For more information, visit https://www.slu.edu/life-at-slu/student-success-center/ or call the Student Success Center at 314-977-3484.


Basic Needs Security

Students in personal or academic distress and/or who may be specifically experiencing challenges such as securing food or difficulty navigating campus resources, and who believe this may affect their performance in the course, are encouraged to contact the Dean of Students Office (deanofstudents@slu.edu or 314-977-9378) for support. Furthermore, please notify the instructor if you are comfortable in doing so, as this will enable them to assist you with finding the resources you may need.