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. |
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.
Please see the instructor if you're missing a prerequisite or uncertain about your preparation for this course.
No textbook is required for this course.
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.
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 |
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.
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:
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 to the entry for "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.
Online Access: Mathworks supports a browser-based version of MATLAB at matlab.mathworks.com. This version of MATLAB will work for this course, but the interface is somewhat different and I am less familiar with how it works. I would suggest installing the local version of MATLAB if you are able, but I have had students do the entire course with this version of MATLAB without difficulty.
Computer labs: The computers in McDonnell Douglas Hall should all have access to MATLAB.
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.
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 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]
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]
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 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]
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]
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]
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]