SLU logo

CSCI 1060: Scientific Programming

Fall 2024

Instructor David Ferry, Homepage
Course Web Site http://cs.slu.edu/~dferry/courses/csci1060/
Course meeting times Monday, Wednesday, & Friday from 11:00 am - 11:50 am, MDD 1066L
Midterm exams
October 4th and Nov 1st, both in class
Final exam
Wednesday, Dec. 11th, 8:00 am to 9:50 am
Office hours See my schedule
Contact You may contact me in person during office hours or during class time, or you may email me at dferry@slu.edu. I am also available to meet by appointment, 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

Please see the instructor if you're missing a prerequisite or uncertain about your preparation for this course.


Textbook

No textbook is required for this course.


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.
Date Day Topic Class Code Readings Notes
Aug 21 Wed Introduction, Course Overview intro.m Syllabus
(this website)
Aug 23 Fri Overview of MATLAB
Scalars, operators, and precedence
scalars.m Homework #1 Assigned
(Homework Submission Link)
Aug 26 Mon Vectors in MATLAB vectors.m GitHub Classroom Submission Tutorial
Aug 28 Wed Two-Dimensional Arrays in MATLAB matrices.m
Aug 30 Fri Sick Day
Sep 02 Mon Labor Day - No Class
Sep 04 Wed Vectorized Operations Homework #1 Due
Homework #2 Assigned
(Homework Submission Link)
Sep 06 Fri Plotting Data plotting.m
Sep 09 Mon Rolling Pairs of Dice dicepair.m
Sep 11 Wed Control Structures controlflow.m Homework #2 Due
Sep 13 Fri Animation Case Study
The Motion of a Ball
animateThrow.m Homework #3 Assigned
(Homework Submission Link)
Sep 16 Mon Discrete Simulation Case Study
Approximate Motion of a Ball
ball_physics.m
Sep 18 Wed Control Structures:
Stock Market Analysis
stocks.m
Sep 20 Fri Basic Input and Output Commands input_output.m Homework #3 Due
Sep 23 Mon More Stock Market Analysis monthly_gain.m
daily_downturn.m
Homework #4 Assigned
(Homework Submission Link)
Sep 25 Wed Wellness Day - No Class
Sep 27 Fri Functions peaks.m
Sep 30 Mon
Oct 02 Wed HW4 Discussion
Oct 04 Fri Exam Review Homework #4 Due
Oct 07 Mon First Exam
Oct 09 Wed Case Study: Random Processes
The Gambler
gambler.m
gambler_analysis.m
Homework #5 Assigned
(Homework Submission Link)
Oct 11 Fri The gambler simulation and random walks
Additional Notes
Oct 14 Mon Sick Day
Oct 16 Wed Sick Day
Oct 18 Fri Iterative Solvers randSqrt.m
directedRandSqrt.m
newtonSqrt.m
Oct 21 Mon Random Solver
Oct 23 Wed HW #6 Discussion Homework #6 Assigned
(Submission Link)
Oct 25 Fri Fall Break - No Class
Oct 28 Mon File I/O fileio.m Assignment 5 Due
Oct 30 Wed Case Study: DNA to RNA Transcription DNA_transcribe.m
Nov 01 Fri Case Study: Caesar Cipher ceasar_cipher.m
Nov 04 Mon Case Study: Random Shift Stream Cipher encrypt.m Homework #6 Due
Nov 06 Wed Exam Review argDemo.m
myAverage.m
convertASCII.m
approxPi.m
addLineNumbers.m
Nov 08 Fri Second Exam
(Submission Link)
Nov 11 Mon Cell Arrays, Structures cells.m
structures.m
MATLAB docs:
Cell Arrays
Structures
Project Proposal Assigned
Nov 13 Wed Sound processing in MATLAB
Nov 15 Fri Sound processing in MATLAB Project Proposal Due
Nov 18 Mon Sound processing in MATLAB Homework #8 Assigned
Nov 20 Wed Sound processing in MATLAB
Nov 22 Fri Traversing Mazes
Nov 25 Mon Traversing Mazes Homework #8 Due
Nov 27 Wed Thanksgiving - No Class
Nov 29 Fri Thanksgiving - No Class
Dec 02 Mon Image Data image_processing.m Homework #9 Assigned
Dec 04 Wed Digital Watermarking digital_watermarking.m
Dec 06 Fri Finding components of an image
Dec 09 Mon An Introduction to C++ Programming Homework #9 Due
Dec 11 Wed Project Presentations Presentation and Project Submission Guidelines
Dec 13 Fri Project Presentations
Dec 11 Wed
8:00AM
Project Presentations

Grading

Your grade will be determined as follows:

Activity Grade Percentage
Attendance 10%
In-Class Participation 10%
Assignments 40%
Project 20%
Midterm Exams 10% 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, a widely used 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.

Attendance grade will be determined by taking roll call at the start of class. For credit, you must be in class and respond when your name is called. This will happen approximately 10 times over the course of the semester.

In-Class Participation grade will be determined by responses to online surveys or submissions of in-class work to Canvas. Such activities can only be submitted during class time. Once the submission window closes these activities can no longer be submitted and cannot be made up. Please make sure to participate and click "submit" on all such activities!

Note that in-class assignments such as group work, discussion groups, or attendance assignments cannot be made up outside of class without prior approval from the instructor. Major activities such as quizzes or tests will be listed on the 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.


Generative Artificial Intelligence (ChatGPT, LLMs, etc.)

Three really important points:

Recent surveys of student behavior suggest that 80% of computing students are using GenAI as a replacement for internet searches, to learn course concepts, or to help troubleshoot faulty code. These informational purposes are allowed and encouraged! GenAI has a wonderful ability to immediately provide you relevant and personalized information in a way that internet searches do not. Searching an error code on Google, for example, will return dozens of results about dozens of people all with their own individual problems, and then you have to sift through all that information to find the one answer that is meaningful to you. In that sense, GenAI can be thought of as a super search engine. As a student, this helps you learn things faster. That's good!

However, GenAI can also be used to cheat. You can ask GenAI to write your program for you, or copy-paste your program and ask it to fix your bugs. That's bad! You won't understand the problems, you won't understand the solutions, and if I ask you to explain your code you won't even be able to tell me how your code works. As a student, this is self-destructive and prevents you from learning.

In general, you are permitted to use GenAI to help yourself learn faster. You are forbidden using GenAI to do your work for you. This is not actually a complicated policy! At the risk of horribly anthropomorphizing technology, imagine GenAI is a human friend sitting next to you. You already understand what kinds of questions are acceptable and which are not. Asking your friend to explain a programming language feature is not cheating. Asking your friend what an error message means is not cheating. Asking your friend to write code for you is cheating. Giving your friend your code and asking them to fix the bugs is cheating. Asking to see your friend's solution and writing your own version is cheating. The fact that you may be asking a GenAI system instead of a human friend does not change whether those things are acceptable or cheating. 

If it would be OK to ask a human friend, it's OK to ask ChatGPT. If it would be cheating to ask a human friend, then it's cheating to ask ChatGPT (or Google Gemini, or Github Copilot, etc.). 

A few explicit rules:

If you have any questions or want any clarifications to this policy, then please ask me. If you find yourself in an uncertain situation, then please ask me and let me give you advice. This is a brave new world for all of us, and I'm not pretending that I have everything already figured out. I am very willing to be lenient with well-intentioned students who are upfront about how they're using the technology.


Academic Integrity/Honesty

Academic integrity is the commitment to and demonstration of honest and moral behavior in an academic setting. Since the mission of the University is "the pursuit of truth for the greater glory of God and for the service of humanity," acts of integrity are essential to its very reason for existence. Thus, the University regards academic integrity as a matter of serious importance. Academic integrity is the foundation of the academic assessment process, which in turn sustains the ability of the University to certify to the outside world the skills and attainments of its graduates. Adhering to the standards of academic integrity allows all members of the University to contribute to a just and equitable learning environment that cultivates moral character and self-respect. The full University-level Academic Integrity Policy can be found on the Provost's Office website at: https://www.slu.edu/provost/policies/academic-and-course/academic-integrity-policy.pdf.  

[last updated: May 2024]


Disability Accommodations

Students with a documented disability who wish to request academic accommodations must formally register their disability with the University. Once successfully registered, students also must notify their course instructor that they wish to use their approved accommodations in the course.

Please contact the Center for Accessibility and Disability Resources (CADR) to schedule an appointment to discuss accommodation requests and eligibility requirements. Most students on the St. Louis campus will contact CADR, located in the Student Success Center and available by email at accessibility_disability@slu.edu or by phone at 314.977.3484. Once approved, information about a student’s eligibility for academic accommodations will be shared with course instructors by email from CADR and within the instructor’s official course roster. Students who do not have a documented disability but who think they may have one also are encouraged to contact to CADR. Confidentiality will be observed in all inquiries.

Note: due to accreditation requirements, regulatory differences, and/or location-specific resources, the School of Law, the School of Medicine, and SLU Madrid have their own standard language for syllabus statements related to disability accommodations. Faculty in those units should seek guidance for syllabus requirements from their dean’s office.

[last updated: August 2023]


Student Success Center

The Student Success Center (SSC) supports students in reaching their goals in and out of the classroom. Providing a variety of resources, the Student Success Center houses both the Center for Accessibility and Disability Resources (CADR) and Academic Support, which includes Tutoring, Supplemental Instruction, University Writing Services, and Student Success Coaching. The Student Success Center is located in the Busch Student Center, Suite 331, and students can make an appointment with any SSC resource via EAB Navigate. To learn more about the Student Success Center and its resources, please visit: https://www.slu.edu/life-at-slu/student-success-center/index.php.

[last updated: August 2023]


University Writing Services

University Writing Services offers one-on-one consultations with trained writing consultants from different disciplines who help with everything from brainstorming, outlining, and proposing research questions to documenting sources, revising, and implementing feedback. These consultations can take place in-person, asynchronously, or via Zoom and can be scheduled through EAB Navigate – StudentLinks to an external site.. Getting feedback benefits writers at all skill levels on different writing projects (including but not limited to class assignments, conference papers, cover letters, dissertations, group projects, multimedia assignments, personal statements, senior capstone projects, short answer questions on applications, speeches, and theses). For additional information, visit https://www.slu.edu/life-at-slu/student-success-center/academic-support/university-writing-services/index.php or send an email to writing@slu.edu.

[last updated: August 2023]


University Counseling Center

The University Counseling Center (UCC) offers free, short-term, solution-focused counseling to Saint Louis University undergraduate and graduate students. UCC counselors are highly trained clinicians who can assist with a variety of issues, such as adjustment to college life, troubling changes in mood, and chronic psychological conditions. To make an appointment for a wellness consultation, call 314-977-8255 (TALK), or visit the clinic on the second floor of Wuller Hall. For after-hours needs, please press #9 after dialing the clinic number.

 [last updated: April 2024]


Wellness

With our Jesuit commitment to cura personalis, the University sees your academic success as connected to your health and well-being and provides resources to support your holistic wellness.

All students experience stressors and challenges at some point, and seeking support is both normal and beneficial. Such challenges may be the result of academic concerns (such as those related to particular assignments or content in a course), or they may be more personal in nature (such as concerns related to relationships, mental health, medical issues, loss, identities, alcohol or drugs, housing or food security, finances, or local/world events, among other things). If you experience these or other difficulties that are impacting your well-being and/or academic work, please consider seeking support from the resources available to you.

If you or someone you know is experiencing a crisis: please consult Crisis Support and Warning Signs on the University Counseling Center website or call the University Counseling Center at 314-977-TALK (8255) and press #9 to be connected to a behavioral health nurse 24/7.

[last updated: April 2024]


Basic Needs Security

Students in personal or academic distress and/or who may be specifically experiencing challenges such as securing food or housing, or having 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.

[last updated: August 2023]