CMPT 135 – Introduction to Computing Science and Programming II


Semester: Spring 2021 Full Term Asynchronous (11 Jan 2021 - 16 Apr 2021)

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

Email: [email protected]

Office Hours: Wednesdays 6:00PM – 8:00PM and Thursdays 8:00PM – 10:00PM


PREREQUISITES

CMPT130 (with a minimum grade of C-)


OBJECTIVES

This course is a rigorous introduction to object-oriented programming and data structures using C++, intended for students who have already taken CMPT 130 as an introduction to algorithms and programming. Students will learn basic principles of algorithm design and basic and intermediate techniques for object-oriented software development. It is expected that students already know C++ or C programming language.


Topics:

  Object-oriented programming and software design

●  Inheritance and Polymorphism

●  Program design, specification, testing, and problem solving

●  Abstract data types, elementary data structures, and fundamental algorithms

●  An informal introduction to computability and complexity analysis

●  Generic Programming and the C++ Standard Template Library (STL)

  File input and output

●   Recursion


REQUIRED TEXT

Problem Solving with C++, 9th Edition, Walter Savitch, Addison-Wesley, 2012, 9780133591743

Reference book: Absolute C++, 5 th Edition, Walter Savitch, Addison Wesley, 2012


COURSE ASSESSMENT

Quizzes: 50%

Assignments: 20%

Midterm Exam: 15%

Final Exam (or Project):      15%

Total: 100%


Course Software

The course will use Microsoft Visual C++ 2010 Express Edition IDE that is already installed on the FIC lab computers.

Therefore you are required to download the software from Microsoft website and install it on your computers.

For detailed steps on how to download and install Microsoft Visual C++ 2010 Express on your own computer, please refer to the course Moodle page.

In addition FIC has organized for you to have remote desktop access of the FIC computers. This means you can remotely log into the FIC computers and do your work on these computers. More details on how to access the FIC computers remotely is provided on the course Moodle page.

Of course, you may also use a different compiler (such as xcode for Mac or a different version of Visual C++) if you cannot use the course software for any reason; however any course assessment work will be tested and marked using Microsoft Visual C++ 2010 Express Edition compiler and therefore it is your responsibility to always test your work on Microsoft Visual C++ 2010 Express Edition compiler before submission.


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 135) 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 (50%)

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 (20%)

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 [possibly a project] (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. This exam may contain a timed exam or a project.


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.

  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 join a 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 135 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 C++ 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 Microsoft Visual C++ 2010 Express Edition and use your laptop as your main practice machine. If you need help with installing Microsoft Visual C++ 2010 Express Edition, consult the IT SQUAD available at the front desk.


Good luck and welcome to CMPT 135!