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 |
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.
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)
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 | 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 |
|
|||
May 8th | 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. You will need to scroll down the page and expand the tab for "MathWorks and MATLAB". Then click through the link there and you will be taken to a Google Doc with instructions for downloading and installing MATLAB. You will need to use your SLU username and ID to login to this Google Doc.
Computer labs: The computers in McDonnell Douglas 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: