CMPT 120 – Introduction to Computing Science and Programming I


Semester: Summer 2021 FT Asynchronous (12 May 2021 - 18 Aug 2021)

Instructor: Dr. Yonas T. Weldeselassie (Ph.D.)

Email: [email protected]

Office Hours: TBD


PREREQUISITES: None


OBJECTIVES

This course will introduce the core ideas of computing science and basics of programming to students with little or no background in computing science or programming. Students will learn the fundamentals of computing science such as representation and storage of information in a computing machine, structured representation of data (data structures) and developing algorithms to solve certain problems. In this course, we will be using the Python Programming LanguagePython is a wonderful high level computer programming language for beginners as it involves little details of the language in order to use it for simple programming works. Thus students will spend less time on worrying about language details and focus more on the science of computing. The topics covered in the course are:

Representation and Storage of information on a computing machine

● Elementary Programming in Python: Data types and simple input/output operations

● Control Structures and Modular Programming with Functions

● Moving from problem statement to computational formulation of a method for solving the problem: Pseudo-code and Algorithm Development

● Recursion

● Fundamental Algorithms and Introduction to Complexity Theory


REQUIRED BOOK

Think CsPy - How to Think Like a Computer Scientist: Interactive Edition. This book is available online through the link on Moodle.


REFERENCE BOOKS

● Python - DS: Interactive Edition. This book is available online through the link on Moodle.

● Think Python – How to think like a computer scientist: Allen Downey, Jeffrey Elkner, Chris Meyers, Green Tea Press, 2012: This book is available online through the link on Moodle.

● CMPT120 Study Guide: Greg Baker, SFU, 2007: This book uses Python 2 and as such we will only use it as a reference material for the information representation and storage topic discussed during Week 1. It available online through the link on Moodle.


COURSE ASSESSMENT

Quizzes:   40%

Assignments:   30%

Midterm Exam:   15%

Final Exam (or Project):   15%

Total:   100%


Course Software

The course will use Python 3 Version 3.8.10 which can be downloaded from https://www.python.org/downloads/windows/


Course Organization and Communication

Considering we will have asynchronous online teaching during the semester, your active engagement with the instructor is of utmost importance. To this end, we will entirely rely on electronic communication during the semester.

This includes:

1. Moodle: Course lecture notes, lecture videos, lab work practice questions, and any other supporting materials will be uploaded on to Moodle.

2. Email: We will use our FIC email accounts for any and all announcements. For this you are required to attend to your FIC email regularly (every day or multiple times a day) in order to get any announcement from the instructor on time. Moreover if you would like to communicate with the instructor, then it must be through your FIC email address sent to my FIC email address. In your email subject, write the course title (CMPT 120) and your class number. Generally, I do not respond to an email sent from a non-FIC email accounts.

3. Zoom Video Meetings: We will use Zoom video conferencing in order to have our regular office hours schedules throughout the semester. The Zoom meeting links are provided on top of the course Moodle page.


Course Assessment Details

Quizzes (40%)

There will be a quiz every week throughout the semester up to a maximum of ten quizzes. These quizzes will be typical problem solving and programming or analysis questions which will be posted onto Moodle and that you need to work on a computer and upload your work onto Moodle. The quizzes will be posted on Moodle and be available for your attempt in a 24 hour window. You will be notified via email every time a quiz is posted on Moodle.

Assignments (30%)

There will be three assignments during the semester. Each assignment problem statement will be uploaded on Moodle with a clearly stated due date for submission.

Assignments are individual work. Each student must write his/her own code and submit. Submitting the same code like any other student, past or present, is prohibited.

You are required to submit your assignment by uploading it onto Moodle. Moodle will not allow you to upload an assignment after the due date and time. So submitting before the due date and time is required.

Late submission of assignments through email or hard copies is not accepted.

Midterm Exam (15%)

There will be an online midterm exam on Week 8 (exact date to be determined).

This midterm exam will test the course materials discussed from Week 1 to Week 7.

This exam may contain a timed exam or a project.

Final Exam (15%)

There will be an online final exam at the end of the semester (exact date to be scheduled by FIC). This final exam will test the course materials discussed throughout the semester.

Notes

● Every student is required to submit his/her own original work for any assessment of the course (quizzes, assignments, midterm exam, and final exam). Even if you are a repeat student, you still are required to submit original work. Any work that is not original comprises academic misconduct. If the instructor suspects any academic misconduct, then the instructor reserves the right to re-examine the student on a one to one basis and take further actions together with FIC administration. In addition, the instructor will randomly interview students in order to track the progress of the students in the class. During such interviews, you may be asked about your quiz, assignment, or any other assessment answers in addition to chatting about the course and your progress during the semester.

● I will record your marks on Moodle in a timely manner. Please check your marks regularly. If there is any error, let me know as soon as possible. All mark concerns should be resolved before the end of the last week of the semester.


GRADE DISTRIBUTION

Grade distribution is not pre-determined and may vary from semester to semester.


MAKE-UP EXAMS

FIC does not offer any make-up opportunities for missed FINAL exams. Please be sure to check your final exam schedule very carefully. If you miss the final exam for any reason, please see an advisor immediately. You should also see an advisor immediately if you have documented reasons for exam accommodations.

Make-up opportunities for missed Quizzes or Midterm Exam are also not available. In case of extenuating circumstances, the weight of the missed assessment will be transferred to the final exam. However for any weight to get transferred to the final exam, a student must provide written evidence to the instructor within 48 hours. Extenuating circumstances are defined as follows:

1. Circumstances which prevent a student from attending the exam, or

2. Circumstances which have resulted in the student being rendered absolutely unable to write the exam.

Extenuating circumstances do not include:

● Not feeling well, headache, stomach ache, nervousness, cold, etc.,

● Misunderstanding the instructions about the exam date or time,

● Public transit issues,

● Pleasure related travelling,

● Flying back home,

● Commitments scheduled by a student in advance.

The documented evidence must be in English and describe one of the two scenarios above. In case of a death of a family member, a student must provide a death certificate. When medical documents are submitted, they must clearly show the student had visited the medical doctor in person on the day of the exam or before the exam date and they must come from a practicing doctor recognized by the Canadian Medical Association or other relevant organizations and who can be contacted for verification. Documents that cannot be validated will be considered unacceptable.

The instructor reserves the right to decide whether the weight of any missed assessment should be transferred to the final exam in case of extenuating circumstances.


ACADEMIC INTEGRITY POLICY

Academic Integrity refers the values on which good academic work must be founded: honesty, trust, fairness, respect and responsibility. Academic integrity includes a commitment not to engage in or tolerate acts of falsification, misrepresentation or deception. Such acts of dishonesty violate the fundamental ethical principles of the college community and compromise the worth of work completed by others.

Students found to have breached the regulations related to any form of academic misconduct including but not limited to plagiarism and cheating will be subject to the following measures:

● First Offence: Awarded 0 for the assessment and given a permanent record on their file

● Second Offence: Awarded 0 for the course, regardless whether the offence was committed in the same course or another course

● Third Offence: Risk expulsion from FIC and the cancellation of Study Permit

It is solely the student’s responsibility to be aware of Academic Integrity Policy and consequences of violating it. The policy is available at: http://85401dc13f6ba5867f46-aacfababc729cd49a24606938417f53d.r33.cf6.rackcdn.com/FIC_Academic_Integrity_Policy.pdf

In Zoom Meetings Discipline Policy

I expect every student to be considerate for other students and the session and avoid any disturbance during Zoom meetings. In particular, I strictly require you to either silent or switch off your cell phone whenever you joina meeting.Any disturbance during Zoom meetings will be handled as follows

1. First offence: I will give you a verbal warning.

2. Second offence: I will report you to advising with the intention of expelling you from the class if any further disturbance occurs.

3. Third offence: I will request FIC expel you from the class.

Final Exam Information

Please note that the final exam schedule will not be released until later in the semester. Please make sure to check the schedule on your FIC email and student portal. If you do not see your exam scheduled please contact me directly.

How Can I do well in this course?

First and foremost, you need to understand that CMPT 120 is not a programming course. Instead, it is about problem solving with the help of computers. As such it entails three fundamental issues:

1. You need to understand a given problem,

2. You need to know how to solve the problem by hand on paper using pen and pencil, and

3. You need to know the Python programming language in order to solve the problem using a computer.

The first part requires continuous practice with different problems in order to develop problem understanding skills. As such I will provide several practice questions every week and you must solve the problems I provide in order to achieve this. You must also read the reference book and solve the practice problems in the book to help you further in this endeavour.

The second part requires you to have a notebook, pen and pencil ready all the time in order to think and solve problems on paper. It also requires continuous practice in order to develop your problem solving skills infinitesimally; starting with very simple problems and going up to solving very complicated problems by the end of the semester. The practice problems I provide every week start with simple ones and go to more difficult ones. As such you need to solve all the problems in order to climb the ladder of problem solving skills smoothly.

Finally, the third part requires spending quite a lot of time on a computer. Generally speaking the lab computers are available for you whenever the rooms are free.

However, in order to do much more practice at home, I strongly recommend you to have a laptop and install in it Python 3 Version 3.8.10 and use your laptop as your main practice machine.


Good luck and welcome to CMPT 120!