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 |
October 5th and November 2nd |
Final exam |
December 17th, 12:00 - 1:50PM |
Office hours | See my schedule |
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.
This course owes a debt of gratitude to Prof. Michael Goldwasser, from whom I took the original course material and format.
Recommended course textbook: MATLAB An Introduction with Applications by Amos Gilat, Published by Wiley
Note: The textbook is recommended for your benefit as a supplementary resource but is not required. Any recent edition of the book is suitable.
(book's website - supplementary videos, example problems, and errata)
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.
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 | Reading | Notes |
---|---|---|---|---|
Aug 27-Aug 31 | Mon |
Introduction, Course Overview Intro Program |
Syllabus (this website) | |
Wed |
Overview of MATLAB
Scalars, operators, and precedence |
Gilat Ch. 1 | Homework #1 Assigned | |
Fri | Vectors in MATLAB | Gilat Ch. 2 | ||
Sep 3-Sep 7 | Mon | No Class: Labor Day | ||
Wed | Two-Dimensional Arrays in MATLAB | Homework #1 Due | ||
Fri | Vectorized Operations | Gilat Ch. 3.1 - 3.6 | Homework #2 Assigned | |
Sep 10-Sep 14 | Mon | Plotting Data | Gilat Ch. 5.1 - 5.4 | |
Wed | Case Study: Rolling Pairs of Dice | Gilat Ch. 5.8 | ||
Fri | Control Structures | Gilat Ch. 6.1 - 6.6 | Homework #2 Due | |
Sep 17-Sep 21 | Mon |
Animations
Case Study: The Motion of a Ball |
Homework #2 Due Homework #3 Assigned |
|
Wed |
Discrete Simulation
Case Study: Approximate Motion of a Ball |
|||
Fri | Control Structures: Stock Market Analysis | |||
Sep 24-Sep 28 | Mon | Basic Input and Output Commands | Gilat Ch. 4 | Homework #3 Due |
Wed | More Stock Market Analysis | Homework #4 Assigned | ||
Fri | Functions | Gilat Ch. 7 | ||
Oct 1-Oct 5 | Mon | Case Study: Record Rainfall | ||
Wed | Exam Review | Homework #4 Due by start of class | ||
Fri | First Exam (includes material through Sep 26) | |||
Oct 8-Oct 12 | Mon |
Use of subfunctions
Case Study: Stock Market Analysis solution set |
||
Wed |
Random Processes
Case Study: the gambler |
Homework #5 Assigned | ||
Fri | The gambler simulation and random walks (additional notes) | |||
Oct 15-Oct 19 | Mon | Iterative Solvers | ||
Wed | More on Iterative Solvers General code for iterative solver | Assignment #5 Due | ||
Fri | Random Solver | Homework #6 Assigned | ||
Oct 22-Oct 26 | Mon | No Class: Fall Break | ||
Wed | File I/O | Gilat Ch. 4.3-4.4 | ||
Fri | Case Study: DNA to RNA Transcription (code) | |||
Oct 30-Nov 2 | Mon | Case Study: Encryption | Homework #6 Due | |
Wed | Exam 2 Review | Exam review programs: argDemo.m, myAverage.m, convertASCII.m, approxPi.m | ||
Fri | Second Exam (cumulative) (take home - no class) (download inclinedPlane.m, result.txt and warpeace.txt) | |||
Nov 5-Nov 9 | Mon | Cell Arrays, Structures | MATLAB docs (cell arrays, structures) | Project Proposal Assigned |
Wed | Basic sound processing in MATLAB | |||
Fri | Synthesized sounds | Project Proposal Due | ||
Nov 12-Nov 16 | Mon | Sound Processing | Homework #8 Assigned | |
Wed | Sound Processing | |||
Fri | Traversing Mazes | |||
Nov 19-Nov 23 | Mon | Traversing Mazes | Homework #8 Due | |
Wed | No Class: Thanksgiving Break | |||
Fri | No Class: Thanksgiving Break | |||
Nov 26-Nov 30 | Mon | Image Data |
Homework #8 Due Homework #9 Assigned |
|
Wed | Finding components of an image | |||
Fri | Digital Watermarking | |||
Dec 3-Dec 7 | Mon | An Introduction to C++ Programming | Homework #9 Due | |
Wed | ||||
Fri | ||||
Dec 10th | Mon |
|
||
Dec 17th | Fri | Project Presentations (12:00-1:50PM) |
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.
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:
You can install MATLAB on your personal machine and use it via SLU's license via the instructions here.
Computer labs: The computers in McDonnell Hall should all have access to MATLAB.
Departmental server: You can use MATLAB from most personal machines by connecting to the Computer Science department server called Hopper. When you are enrolled in this course you should automatically be emailed login credentials. (If not, contact Dennis Thomas.) You can then login by: