Introductory Programming for Scientists
Ryerson University
Department of Computer Science
Land Acknowledgement
Toronto is in the 'Dish With One Spoon Territory'. The Dish With One Spoon is a treaty between the Anishinaabe, Mississaugas and Haudenosaunee that bound them to share the territory and protect the land. Subsequent Indigenous Nations and peoples, Europeans and all newcomers have been invited into this treaty in the spirit of peace, friendship and respect.
CPS118 - Introductory Programming for Scientists
Course Outline and Course Management Form [Fall 2021]
Dr. Denis Hamelin
01, 02, 03, 04, 05
Dr. Ali Miri
06, 07, 08, 09
Lab Assistants
Khuram Khalid
01, 02, 03
Andrew Duquette
04, 09
Syed Raza Bashir
05, 06, 07, 08
Midterm and Project Markers
Khuram Khalid
01, 02, 03
Andrew Duquette
04, 09
Syed Raza Bashir
05, 06, 07, 08
Calendar Description:
This course is an introduction to computer science, computers and programming for science students. Topics covered include: algorithmic thinking, computational approaches to solving problems, programming fundamentals such as elementary data structures, arrays, and basic constructs provided by high-level programming languages: sequencing, selection, iteration, and functions. Additional topics may include: numerical computation, GUI interface, and case studies of scientific computing. This course uses MATLAB as its programming language along with a brief introduction to Python.
Course Organization:
3 weekly lecture hours and 2 weekly lab hours.
Course Websites:
See the official course website (https://cs.ryerson.ca/~cps118/), and your Professor's website (or Brightspace™ shell) for specific section information (details provided during the first class).
Compulsory Textbook:
Gilat, Amos (2017). MATLAB: An Introduction with Applications, 6th Edition. Wiley.
Important Notes: The text is available in both hard copy (ISBN : 978-1-119-25683-0) and e-text (ISBN : 978-1-119-29925-7) formats. The text is mandatory and is used for all lab and homework activities.
Lab References:
For the Computer Science Department labs: User's Guide to the CS Depratment Labs
For the general Ryerson labs: Academic Computing Labs
Learning Objectives:
At the end of the course, a successful student will be able to:
1. Have an understanding of what is Computer Science as part of the modern sciences.
2. Use the basic and advanced functionalities of the MATLAB software.
3. Create algorithms to solve scientific problems.
4. Write programs in the MATLAB scripting language to solve simple and complex scientific and mathematical problems.
5. Use MATLAB to create plots in two and three dimensions to illustrate relationships between experimental data sets.
6. Write a complete scientific report with computations and graphics created with MATLAB.
7. Compare MATLAB with an another popular scientific programming language (Python).
8. Make a simple web page to present scientific results using a popular content management system (like WordPress).
Course Evaluation:
Practical Midterm: 30%
Term Project: 35%
Lab Practice & Assessment: 35%
Grading Variation:
Cheating and plagiarism are a serious offenses. In accordance with the revised Policy 60 on academic integrity, a 5% penalty against your final course grade will be applied if submitted projects are found not to be original work in addition to the 0 (zero) mark which will be assigned for a non-original assignment.
Missed Evaluations:
Students are required to inform their instructors of any situation which arises during the semester which may have an adverse effect upon their academic performance, and must request any considerations and accommodations according to the relevant policies and well in advance. Failure to do so will jeopardize any academic appeals.

Medical certificates: If a student misses the deadline for submitting an assignment, or the date of an exam or other evaluation component because of illness, he or she must submit a Ryerson Health Certificate AND an Academic Consideration Form within 3 working days of the missed date.

Religious observance: If a student needs accommodation because of religious observance, he or she must submit a Request for Accommodation of Student Religious, Aboriginal and Spiritual Observance AND an Academic Consideration Form within the first 2 weeks of the class or, for a final examination, within 2 weeks of the posting of the examination schedule. If the required absence occurs within the first 2 weeks of classes, or the dates are not known well in advance as they are linked to other conditions, these forms should be submitted with as much lead time as possible in advance of the required absence. If you are a full-time or part-time degree student, then you submit the forms to your own program department or school (FYCSO). If you are a certificate or non-certificate student, then you submit the forms to the staff at the front desk of the Chang School.

Students who need academic accommodation support should register with the Academic Accommodation Support office (formerly called the Access Centre). Before the first graded work is due, registered students should inform their instructors through an Accommodation Form for Professors that they are registered with Academic Accommodation Support and what accommodations are required.
Communication with Students:
Ryerson's Email Policy states that only Ryerson e-mail accounts are to be used for communication with students. All students, including continuing education students, have access to Ryerson email through their my.ryerson.ca site, and this is the official way in which they receive communication. All students are required to register for and maintain this account. Emails sent from other accounts may not be answered!
Course Content (Schedule of Activities):
Note that Ryerson weeks run from Tuesdays to Mondays
Week #ContentsLecture
Sep 7-13
Introduction to Computer Science. History of Computer Science. LESSON #1 - NO LAB
Sep 14-20
Algorithms. Computer systems. Internal representations. Programming languages. Problem solving. Program development. LESSON #2 - NO LAB
Sep 21-27
MATLAB ❯ Starting with MATLAB. Arithmetic operations. Display formats. Variables. Script files. LESSON #3 Chapter 1 LAB #1
Sep 28-Oct 4
MATLAB ❯ Arrays (Vectors, matrices and simple mathematical operations). LESSON #4 Chapters 2 and 3 LAB #2
Oct 5-18*
MATLAB ❯ Using script files and managing data. LESSON #5 Chapter 4 LAB #3
Oct 19-25
MATLAB ❯ Plotting vectors and functiona in two dimensions. LESSON #6 Chapter 5 LAB #4
Oct 26-Nov 1
MATLAB ❯ Formatting plots. Creating specialized and three dimensional plots. LESSON #6 Chapters 5 and 10 LAB #5
Nov 2-8
MATLAB ❯ Programming logical operators and selection statements. LESSON #7 Chapter 6 PRACTICAL TEST
Nov 9-15
MATLAB ❯ Programming repetition and loops. LESSON #8 Chapter 6 LAB #6
Nov 16-22
MATLAB ❯ Modular programming and functions. LESSON #9 Chapter 7 LAB #7
Nov 23-29
MATLAB ❯ Polynomials, curve fitting and interpolation. Introduction to numerical analysis. LESSON #10 Chapter 8 TERM PROJECT DUE
Nov 30-Dec 6
Introduction to WordPress and Python. LESSONS #11, #12 - LAB #8
*Includes study week Oct 11-15
Evaluation Guidelines and General Information:
The two term tests will be practical in nature and will consist of specific tasks to be accomplished using the MATLAB software during a prescribed amount of time. The practical tests can be closed book (no notes or books allowed but integrated MATLAB help remains available). Submission of the tests are done electronically using a secure proprietary system. The term tests take place in the lab room during the scheduled lab time.

The lab grade depends upon attendance and your complete devoted attention to the activities specified in the lab manual: that is, no surfing, texting, emailing, tweeting, etc. The lab manual will detail the activities to perform (the activities themselves will come from the mandatory textbook). The more advanced labs will have small projects to choose according with your chosen major and preference.

The term project will consist of a larger scale project using most of the concepts covered during the course. It is required that the project be worked on in teams of three or four students (no more, no less, no exceptions). Projects are due during the last week of classes (date to be announced). Late projects will not be accepted for marking. Projects must be submitted in the format detailed in class, and are to be submitted as directed by your Professor. Projects submitted in any other fashion are deemed void.

It is important to know your CPS118 section number. Marks will be lost on any evaluation missing proper identification, i.e. Family/Last Name, Given/First Name and Section Number. Student numbers MUST NEVER appear on submissions UNLESS they are specifically requested.

Students are responsible for logging on to the course website at least weekly, and for following all course related instructions so transmitted. Students must also check their email (the ryerson.ca email as per academic policy) daily for any notices from the Professors and are responsible for following any directives so sent.

As course topics typically develop based on material from previous lectures, students are strongly urged to attend ALL classes. If you miss any material due to illness or other unavoidable circumstance be sure to catch up before the next class. Falling behind is the typical cause of course failure.

Grades on assignments, tests and labs will be available on the D2L Brightspace™ system or other means specified by your Professor. As per Ryerson regulation, final grades will be disclosed only by the registrar's office.

Tests and exams have specific rules and you must abide by them, that may include limited washroom access. It is forbidden to have at your desk or wear on your person any electronic devices (including watches) during the tests and exam.
Academic Policies:
a. Ryerson Policies of Interest
Ryerson Senate Policies - https://www.ryerson.ca/senate/policies/
Ryerson Academic Integrity - https://www.ryerson.ca/academicintegrity/
Policy 46 - Undergraduate Grading, Promotion and Academic Standing
Policy 60 - Student Code of Academic Conduct
Policy 61 - Student Code of Non-academic Conduct
Policy 134 - Undergraduate Academic Consideration and Appeals
Policy 135 - Examination Policy
Policy 150 - Accommodation of Student Religious Observance Obligations
Policy 157 - Student Email Accounts for Official University Communication

b. Obligations: Students need to inform faculty of any situation arising during the semester which may have an adverse effect upon their academic performance; they must request any necessary considerations (e.g. medical or compassionate), or accommodations [e.g. religious observance, disability (should be registered with the Access Center), etc.] according to policies and well in advance. Failure to do so will jeopardize any academic appeals.

c. Re-grading and Re-calculation: Must be requested within 10 working days of the return of the graded assignment to the class.
Academic Conduct:
In order to create an environment conducive to learning and respectful of others' rights, phones and pagers must be silenced during lectures, lab sessions and evaluations. Students should refrain from disrupting the lectures by arriving late and/or leaving the classroom before the lecture is finished.
Academic Misconduct:
According to the Ryerson policy 60 (see link above), academic misconduct includes, but not limited to: Plagiarism which is the claiming of words, ideas, artistry, drawings or data of another person. This also includes submitting your own work in whole or in part for credit in two or more courses.
Misrepresentation of personal identity or performance
Submission of false information
Contributing to academic misconduct
Damaging, tampering, or interfering with the scholarly environment
Unauthorized copying or use of copyrighted materials
Violations of departmental policies or professional behavior
Violations of specific departmental or course requirements
Committing academic misconduct will trigger academic penalties, including failing grades, suspension and possibly expulsion from the University. As a Ryerson student, you are responsible for familiarizing yourself with Ryerson conduct policies.
Automatic Plagiarism Detection:
Project markers may check the originality of the submissions using a plagiarism detection service. Students who do not want their work submitted to the plagiarism detection service must, by the end of the second week of class, consult with the instructor to make alternate arrangements.
Non-Academic Conduct:
Ryerson's Student Code of Non-academic Conduct is described in Senate Policy 61 (see link above). Among many other infractions, the code specifically refers to the following as a violation: "Disruption of Learning and Teaching - Students shall not behave in disruptive ways that obstruct the learning and teaching environment".
Diversity and Inclusion Statement:
In this course I would like to create a learning environment that supports a diversity of thoughts, perspectives and experiences, and honors your identities (including race, gender, class, sexuality, religion, ability, etc.). For more information about our University's resources and services on Equity, Diversity, and Inclusion please visit ryerson.ca/equity/
Copyright 2022 Ryerson University. Toronto, Ontario, Canada. All Rights Reserved.