Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 COURSE SYLLABUS CMPT 140-01: INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Catalogue Description: Introduces basic concepts of computer science through the study of traditional elementary programming, object-oriented programming, debugging, design of objects, and standard algorithms with their analysis. [Programming will be done in Eclipse’ C++ development environment. Prerequisite(s): Mathematics B30 or Foundations of Mathematics 30 or Pre- Calculus 30. Classes (Lectures) and Lab/Tutorial • Lectures – MWF 12:30 PM – 1:20 PM, Arts 263 • Labs/Tutorials: • Sessions start the week of September 9. Lab 01 Tuesdays @ 8:30 – 10:00 AM, Spinks 320 Lab 03 Tuesdays @ 1:00 – 2:30 PM, Spinks 320 Lab 05 Wednesdays @ 5:30 – 7:00 PM, Spinks 320 • Drop-in Help Desk: • In addition to labs, your lab staff (teaching assistants/TAs) will also spend two (2) 2-hour sessions weekly answering questions about assignments and helping you debug your programs. • These sessions will be in the main (central) computer lab on the 3rd floor Spinks Building. Look for your lab assistants. • Times will be announced during first week of classes. Note. Many TAs for other CMPT courses hold office hours in the open lab. Even if you see a TA in the lab who is not your TA, don't hesitate to ask them for help. The University of Saskatchewan's main campus is situated on Treaty 6 Territory and the Homeland of the Métis. We pay our respect to the First Nations and Métis ancestors of this place and reaffirm our relationship with one another. Instructor Information Instructor: Ed Pokraka Email: ed.pokraka@usask.ca Phone: 306-370-4999 Office Hours Spinks 421 Monday’s 3:00 – 4:00 PM Friday’s 2:30 – 3:30 Other times by appointment Class Website: Blackboard (PAWS Course Tools) Online Discussion Forum: Students are encouraged to use the on-line discussion forum in Blackboard CMPT 116-01 Syllabus September 3, 2019 Page 1 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 Who Is This Course Intended For? Course Restrictions: Course is intended primarily for students in Electrical Engineering and Engineering Physics. Students who receive good marks in this course will be permitted to take CMPT 145 (a course required for a CMPT major). For more information, contact the Computer Science department. While this course can count as credit toward programs in Arts & Science and other Colleges, students from those colleges should talk to the instructor before taking this course. Students who have credit for CMPT 111 or CMPT 113 may not receive credit for CMPT 116. Contact the Computer Science if you have questions. Course Overview Course contents will be presented in lectures. Lab/Tutorial times will provide opportunity to put materials taught in lectures into practice on a computer under the guidance of a teaching assistant. There will be 5-6 assignments and about 9 sets of Codelab exercises. There will also be one midterm exam and one final exam. Additional information about each of these components can be found in the sections below. Course Objectives After completing this course, students will be expected to: • Read and write simple algorithms using pseudo-code and flowcharts. • Design and implement simple C programs from scratch. • Test and debug simple C programs. • Translate a simple pseudo-code or C program into a flowchart. • Employ conditionals and loops in simple C programs. • Employ variables, arrays and records in simple C programs. • Define and call C functions in C programs. • Design and implement simple recursive functions in C. • Trace through the execution of simple C programs by hand. • Compare linear search and binary search in terms of runtime and memory costs. • Compare bubble sort, insertion sort, and selection sort in terms of runtime and memory costs. • Perform simple arithmetic on binary numbers. • Convert integer numbers between binary and decimal representation • Describe 2’s compliment notation for representing numeric quantities in binary Classes (Lectures) Students are expected to read assigned chapters within the textbook (and other sources) prior to class (approximately 1 - 2 chapters per week). Chapters are short so reading times will not be long. Class (lecture) time will be spent on discussion, questions, problem solving and developing programs relating to the assigned class readings. The textbook content will not be reviewed (“read”) in a class. Assignments There will be about 6 assignments - assigned at roughly weekly intervals with about a week to complete each assignment. CMPT 116-01 Syllabus September 3, 2019 Page 2 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 Lab/Tutorials Sessions • Primary purpose of these sessions is to enable you to ask questions about assignments and obtain assistance debugging your programs. • Sessions may also provide additional information related to course topics. • Sessions will be in Spinks 320 beginning the week of September 9. See Classes (Lectures) and Lab/Tutorial, above, for times. Laboratory sessions will be guided by teaching assistants; contact information for the teaching assistants will be made available on the course webpage on Blackboard (PAWS Course Tools). Codelab Codelab consists of 9 “labs” (about 250 short exercises) designed to help you learn various aspects of the C++ programming language. About 20 – 40 questions will be assigned weekly. The questions are presented and answered online. You have an unlimited number of attempts to get the correct answer (Codelab provides hints after each attempt). Completion of the Codelab exercises contributes toward the final mark. CodeLab is provided by an external company (Turingscraft) that is not affiliated with the University of Saskatchewan. You are required to purchase access to CodeLab. The procedure for registering for CodeLab will be posted on the course website on Blackboard (PAWS Course Tools). Registration for CodeLab is $25 US; payment must be made via a credit card. This registration is NON-REFUNDABLE, so only register if you are sure you will not be withdrawing from CMPT 116. If you do not have a credit card with which to purchase access, then you can purchase a pre-loaded credit card purchased from most grocery stores. We suggest purchasing a $50 card if you have to use a prepaid credit card. Note: The balance on a prepaid credit card can be used at most stores to partially pay for something; for example, if you have $4.21 left on a prepaid credit card, and buy something for $10 then you can use the card to pay for $4.21, and then pay the remainder by cash/debit/etc. Your lab assistants (TAs) and instructors can help you with C++ exercises within Codelab. While lab assistants (TAs) and instructors will try to help you with Codelab account problems (e.g., I paid but cannot access my account), you may have to contact Turingscraft directly to resolve those problems (Turingscraft is an external company not affiliated with the U of S). Student Computer Lab A large open-access lab (on the 3rd floor of Spinks) is available for student use. Students are highly encouraged to work in the Spinks labs instead of at home. TAs hold regular office hours in the Spinks labs, and are there to provide one-on-one consultations as you work on assignments and exercises. You won’t find a more helpful instructional team anywhere! When you are unable to work in the lab physically, you can access the lab facility remotely from your personal computer (either from elsewhere on campus or from home). Instructions for doing so are provided on the course website (Blackboard – PAWS Course Tools). While you can install and use Eclipse C++ on your personal computer, we recommend you use the Department of Computer Science’s computer lab facility. Since every personal computer is CMPT 116-01 Syllabus September 3, 2019 Page 3 of 9 CMPT 116-01 Fall 2019-2020 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 configured differently, installing and maintaining Eclipse C++ on your personal computer may be troublesome. While some instructions for installing Eclipse C++ on your personal computer will be posted on Blackboard, lab assistants and instructors may not be able to offer much assistance if you encounter problems (in other words, try at your own risk). Note. The course markers will use the Eclipse C++ development environment to test/mark your assignments. If your program does not operate within this environment, your assignment will be given a mark of zero (0). This may happen if Eclipse C++ is not installed correctly on your computer or if you are using a C++ development environment different than Eclipse. Textbook and Other Course Materials The textbook, Introduction to Computer Science and Programming (Course Readings for CMPT 111 and CMPT 116), Daniel Neilson and Michael Horsch, was developed by faculty at the Computer Science department (University of Saskatchewan) and will be available online (Blackboard) at no charge to students. You will be assigned readings from the textbook and other sources to complete prior to class. Class (lecture) time will be spent on discussion, questions, problem solving and programming relating to the assigned reading(s) for a given class. Textbook content will not be reviewed (“read”) in a class. The course website will also contain links to other reference/tutorial information relating to programming using Eclipse (C++) – again, at no direct cost to students. While not required for class, some students may want to purchase a C++ book. Any beginning/mid-level C++ book is acceptable. The bookstore has several copies of C++ for Everyone 2nd Edition, Cay Horstmann, Wiley 2011. ISBN: 978-0-470-92713-7 Student Evaluation Grading Scheme Assignments (approx. 5-6) CodeLab (approx. 9 online labs) Midterm Exam Final Exam In-class Quizzes Total 40% 9% 16% 30% 5% 100% Criteria that must be met to Pass Students must be properly registered in order to attend lectures and receive credit for this course. For exams, students will be expected to know information in the textbook and other assigned readings, discussed during lectures and labs, and, presented via Blackboard and email. In the case where a student has a passing percentile grade calculated, as outlined above, but obtained less than 50% on the weighted combination of the Midterm and Final Exam grades (i.e. less than 25 of the 50 possible percentage points for exams), the student will receive a final grade no higher than 55%. In other words, if you do really well on the assignments, but CMPT 116-01 Syllabus September 3, 2019 Page 4 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 bomb the two exams, you can still pass the course, but probably only with a 55% no matter what the grading scheme says. Students must write the final exam. A student who does not write the final exam will receive a grade of at most 49 in the course. University regulations concerning grading and examinations are at https://students.usask.ca/academics/exams.php Attendance Expectations Attend every class, ask questions and participate actively. Students who miss a class: • will not be able to complete in-class quizzes and thus will lose the marks that the quizz contributes toward the final grade. Note, students will be able to miss 10% of the quizzes without penalty. • are responsible for acquiring the material covered in the missed class. Note. Some topics covered in class may not have corresponding notes on Blackboard (PAWS Course Tools). Students are expected to make their own notes in these cases. Students who miss a class in which such topics are covered are responsible for obtaining notes from other students. Attend all lab/tutorial sessions. Students who miss a session: • are responsible for acquiring the material covered in that session. Remember these sessions are opportunities to practice the course material with the guidance of a teaching assistant. Midterm Exam The midterm exam is scheduled for Monday Oct. 28th. Room to be announced. Exam will be 50 minutes long and will be written during the normal class time on that day. Students should take extra care to attend class on this day. If a student is unable to write the mid-term exam through no fault of his or her own for medical or other valid reasons, documentation must be provided and an opportunity to write the missed exam may be given. Final Exam (3 hours in duration) Final examinations may be scheduled at any time during the final examination period (determined by the registrar’s office): • Saturday, December 7, 2019 to Saturday, December 23, 2019. You must write the final examination on the date and in the location scheduled. Students must avoid making prior travel, employment, or other commitments during this period until your exam schedule is posted. If you miss a final exam, you have three days to contact your College, along with the appropriate documentation outlining the reason for your absence, and to request a deferred exam. CMPT 116-01 Syllabus September 3, 2019 Page 5 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 Students are encouraged to review all examination policies and procedures: http://students.usask.ca/academics/exams.php Policies Recording of Lectures Video or audio recording of lectures is not allowed, except with explicit permission of the instructor. Late Assignments Late assignments or Codelab exercises will only be accepted under exceptional circumstances by the permission of the instructor. Otherwise, late assignments will be graded as a zero . Contact your instructor if you need an extension to complete an assignment or Codelab exercise. Indicate the reason for the extension. Missed Assignments Students are expected to attempt (and hopefully complete!) all assignments, and all Codelab exercises. It’s better to submit partially completed assignments than to submit nothing at all. A missed assignment will receive a score of zero. If you miss an assignment for medical or compassionate reasons, contact your instructor as soon as possible. Missed Examinations 1. The mid-term exam date is known at start of term (see above). Students should make the necessary plans to attend class on that date. 2. Students must avoid making prior travel, employment, or other commitments during the final exam period (see above) until your final exam schedule is posted. 3. Students who miss a mid-term exam should contact the instructor as soon as possible. If it is known in advance that the exam will be missed, the instructor should be contacted before the exam. 4. A student who is absent from a final examination due to medical, compassionate, or other valid reasons, may apply to their College for a deferred exam. Application must be made within three business days of the missed examination and be accompanied by supporting documents. Check with your college for details to avoid problems. Incomplete Course Work and Final Grades “When a student has not completed the required course work, which includes any assignment or examination including the final examination, by the time of submission of the final grades, they may be granted an extension to permit completion of an assignment, or granted a deferred examination in the case of absence from a final examination. Extensions past the final examination date for the completion of assignments must be approved by the instructor and Department Head (or Dean in non-departmentalized Colleges), and may exceed thirty days only in unusual circumstances. The student must apply to the instructor for such an extension and furnish satisfactory reasons for the deficiency. Deferred final examinations are granted as per College policy. In the interim, the instructor will submit a computed percentile grade for the class which CMPT 116-01 Syllabus September 3, 2019 Page 6 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 factors in the incomplete coursework as a zero, along with a grade comment of INF (Incomplete Failure) as a failing grade. In the case where the student has a passing percentile grade but the instructor has indicated in the course outline that failure to complete the required coursework will result in failure in the course, a final grade of 49% will be submitted along with a grade comment of INF (Incomplete Failure). If an extension is granted and the required assignment is submitted within the allotted time, or if a deferred examination is granted and written in the case of absence from the final examination, the instructor will submit a revised assigned final percentage grade. The grade change will replace the previous grade and any grade comment of INF (Incomplete Failure) will be removed. A student can pass a course on the basis of work completed in the course provided that any incomplete course work has not been deemed mandatory by the instructor in the course outline and/or by College regulations for achieving a passing grade.” (http://policies.usask.ca/policies/academic-affairs/academic-courses.php) For policies governing examinations and grading, students are referred to the Assessment of Students section of the University policy “Academic courses: class delivery, examinations, and assessment of student learning” (http://policies.usask.ca/policies/academic-affairs/academiccourses.php) Plagiarism / Academic Honesty The University of Saskatchewan is committed to the highest standards of academic integrity and honesty. Academic dishonesty is a serious offence. Penalties can range from a "0" on an assignment to a reduced mark (including failing mark) for the course to suspension or even expulsion from the University depending on the severity of the misconduct and previous offences. Infractions may appear on your academic record in your college on a temporary basis (e.g., several years) or on permanent basis on your academic transcript. Students should also avoid any behavior that could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Plagiarism includes the submission of computer programs and other assignments that are – in part or in whole – the work of others. In the past, plagiarism in CMPT courses has been high. However, detecting plagiarism among computer programs is relatively easy; there are many unique computer programs to any assignment so similar solutions are easy to detect. Additionally, the University – including the Computer Science department, uses software to detect plagiarism of computer programs, essays and other assignments. Note, the student(s) that enables their computer program, essay and other assignment to be plagiarized, and the students who plagiarized the work, are both guilty of an academic misconduct. Additional information regarding academic honesty as it relates to Computer Science can be found at https://www.cs.usask.ca/students/current-students/academic-honesty.php CMPT 116-01 Syllabus September 3, 2019 Page 7 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 All students should also read and be familiar with the policies and procedures relating to academic misconduct (including plagiarism), non-academic misconduct and appeals for academic matters: https://secretariat.usask.ca/student-conduct-appeals/academic-misconduct.php, https://secretariat.usask.ca/student-conduct-appeals/non-academic-misconduct.php, and https://secretariat.usask.ca/student-conduct-appeals/appeals-in-academic-matters.php. In general, you are plagiarizing if you present words or thoughts from the web, from other students, or from published sources as if they were your own — exceptions are proverbial sayings or common knowledge — or if you submit without approval of the instructor any work for which credit has previously been obtained or is being sought in another course. In essays, avoid the perception of plagiarizing by acknowledging your sources and including them in the list of works cited. When quoting, make sure that all words and phrases from the source are in quotation marks. When paraphrasing, acknowledge the source of the idea but rewrite in your own language. Less serious instances of plagiarism may be handled by instructors; more serious offenses will be investigated by a College committee. Copyright Course materials are provided to you based on your registration in a class, and anything created by your professors and instructors is their intellectual property, unless materials are designated as open education resources. This includes exams, PowerPoint/PDF slides and other course notes. Additionally, other copyright-protected materials created by textbook publishers and authors may be provided to you based on license terms and educational exceptions in the Canadian Copyright Act (see http://laws-lois.justice.gc.ca/eng/acts/C42/index.html). Before you copy or distribute others’ copyright-protected materials, please ensure that your use of the materials is covered under the University’s Fair Dealing Copyright Guidelines available at https://library.usask.ca/copyright/general-information/fair-dealingguidelines.php. For example, posting others’ copyright-protected materials on the open web is not covered under the University’s Fair Dealing Copyright Guidelines, and doing so requires permission from the copyright holder. For general information about copyright, please visit https://library.usask.ca/copyright/index.php. Information about students’ rights regarding copyright is available at https://library.usask.ca/copyright/students/rights.php. You can also contact the University’s Copyright Coordinator at mailto:copyright.coordinator@usask.ca or 306-966-8817. Access and Equity Services (AES – formerly Disability Services for Students) Students who have disabilities (learning, medical, physical, or mental health) are strongly encouraged to register with Access and Equity Services (AES) if they have not already done so. Students who suspect they may have disabilities should contact AES for advice and referrals. In order to access AES programs and supports, students must follow AES policy and procedures. For more information, check https://students.usask.ca/health/centres/access-equityservices.php or contact AES at 966-7273 or at aes@usask.ca. CMPT 116-01 Syllabus September 3, 2019 Page 8 of 9 Department of Computer Science 176 Thorvaldson Building 110 Science Place Saskatoon, SK S7N 5C9 Canada Telephone: (306) 966-4886 Facsimile: (306) 966-4884 CMPT 116-01 Fall 2019-2020 Students registered with AES may request alternative arrangements for mid-term and final examinations. Students must arrange such accommodations through AES by the stated deadlines. Instructors shall provide the examinations for students who are being accommodated by the deadlines established by AES. You may record lectures, but please inform the instructor if you intend to do so. Student Supports Student Learning Services (SLS) offers assistance to undergrad and graduate students. For information on specific topics, please see the SLS web site https://library.usask.ca/studentlearning/. The web site https://students.usask.ca contains links to a wide range of services, programs and other information (including policies) that will be of interest to students. The web site https://students.usask.ca/#Studentservices outlines a variety of services available to students. Topic Schedule (Tentative) Topic Introduction (2hrs) Details • • • Administrative details Course Overview What is Computing? Algorithms (4hrs) • • • • • What is an algorithm? Pseudo-code and flowcharts Encapsulation and abstraction Basic data, variables and types Compound data C++ Fundamentals (20hrs) • • • • • • • • • • Variables & Console IO Expressions Conditional branching Functions While loops One-dimensional arrays For-loops, and do-while loops Multi-dimensional arrays Records and record types Recursion Topics in Computing (5hrs) • • • • Linear search, Binary search Insertion sort, Selection sort, Bubble sort Computational complexity Binary numbers CMPT 116-01 Syllabus September 3, 2019 Page 9 of 9