COSC 111 syllabus
COSC 111 syllabus
Not to be copied, used, or revised without express written permission from the copyright owner
Course Description
Academic Calendar Entry: Introduction to the design, implementation, and understanding of computer programs.
Topics include problem solving, algorithm design, and data and procedural abstraction, with emphasis on the
development of working programs. This course should be followed by COSC 121. [3-2-0]
Prerequisites: A score of 70% of higher in one of Math 125, Math 12, Prec 12.
Students who lack the prerequisites should not be registered for this course and will receive a failing grade if they rem
ain in it. Any exceptions must be brought to the attention of the instructor immediately.
Learning Outcomes: Upon successful completion of this course, students will be able to:
• Algorithmic Problem Solving: design, develop, and analyze algorithms to solve basic programming problems.
• Programming Fundamentals: demonstrate proficiency in using data types, arrays, operators, and expressions.
• Programming Logic: implement basic programming logic using conditionals, decisions, and loops.
• Modular Programming: effectively employ methods (functions) to modularize programs.
• Object-Oriented Programming: apply basic object-oriented programing aspects.
• Testing and Debugging: identify and fix different types of errors in computer programs.
Assessment
• Lecture quizzes 7 % (Using clickers. Full mark for correctly answering 80% of all questions)
• Lab work:
o In-lab Exercises 7%
o Assignments 16 %
• Exams
o Two Midterms 30 % (80 minutes each, in-person during scheduled lecture time)
o Final 40 % (150 minutes, cumulative, in-person)
Passing criteria: to pass the course, a student must receive: (1) an overall course grade of at least 50%, and
(2) at least 50% on weighted sum of all exams (midterms and final). Failure to do so will result in a 45% grade,
or the resulting grade, whichever is the lower. Students will not be able to receive a passing grade if they are
not registered to the required lab section.
Final Grade: Final grades will be based on the evaluations listed above, and the final grade will be assigned
according to the standardized grading system outlined in the UBC Okanagan Calendar.
Grievances and Complaints: A student who has a complaint related to this course should follow this
procedure: The student should attempt to resolve the matter with the instructor first. Students may talk first
to someone other than the instructor if they do not feel, for whatever reason, that they can directly approach
© Dr. Abdallah Mohamed. Not to be copied, used, or revised without express written permission from the copyright owner
the instructor. If the complaint is not resolved to the student's satisfaction, the student should e-mail the
Associate Head, Dr. Abdallah Mohamed, at abdallah.mohamed@ubc.ca or the Department Head Dr. Sylvie
Desjardins, cmps.depthead@ubc.ca
Course Format
Lectures: This course is given in-person, i.e., all lectures are given in class as shown on page 1 of this syllabus.
Lecture Quizzes: We will have MCQs questions in almost every lecture:
- Questions displayed during the lecture, and they can only be answered using iClickers.
- Your iClicker responses will be counted towards your grade.
- Create an iClicker Cloud account using these Instructions: https://lthub.ubc.ca/guides/iclicker-cloud-
student-guide. Because the registration data is stored in the US, you can use a pseudonym name and
email address. However, you must link your iClicker account to Canvas.
- You can submit your responses through the web interface (must sign-in to your iClicker account) or
phone app (search for iClicker Reef on our play/app store). Whether you use the web interface or
phone app, you must “join” class on the clickers system after the class starts.
© Dr. Abdallah Mohamed. Not to be copied, used, or revised without express written permission from the copyright owner
Labs
• Labs will be offered in-person as indicated on page 1 of this syllabus.
• A student must be registered in one lab for his/her assignments to be accepted.
Exams
• Platform: Exams will be held in-person: Midterms in the same classroom used for the lectures, during the
scheduled lecture times. Location for final exam will be announced later.
• Scope: Exam will focus on material discussed in the lectures. Only language accepted for coding in the
exams is Java.
• Format: The examinations in this course are all closed-book, so you are NOT permitted to access any of
the course materials, including your notes, during the exam. You are also NOT to communicate with
anyone about the exam during the scheduled write time or after the examination – you are to work
independently. Communication with other students (written, text, verbal, etc.) is not permitted and will
constitute Academic Misconduct.
Expectations
It is my best day when all my students pass the course, receive good grades, and feel the course was useful.
For that to happen, help me by putting enough effort for the course. I expect that you will attend all classes
and participate in class discussions, read the lecture notes before the lecture, attend all labs, finish all your
assignments on time, and practice on the course materials. I also expect that you will spend (in average) at
least 7 hours per week in out-of-class relevant activities (homework, preparation, practicing).
Important Dates
http://www.calendar.ubc.ca/okanagan
NO GROUP WORK IS ALLOWED: For all lab work, you may talk with others about the given problems and
which parts of the course they are related to, but in all cases, you must write your own code and never share
your code! Please note that we use special software to detect plagiarism within all submitted code.
The only two excepts to this policy are: 1) Lab Exercises E1, E2, etc., and 2) Lecture clickers. For both, feel
free to discuss with others.
No AI-Generated Lab Solutions: The use of artificial intelligence (AI) assistance for any assessed portions of
this course is not permitted and will be considered plagiarism if detected. I understand that AI tools can be
powerful and tempting, offering quick solutions to complex problems. However, the lab work in this course is
designed to serve a purpose beyond mere evaluation! It provides you with hands-on experience and an
opportunity to apply the concepts you just learned in lectures, leading to improved programming skills and
problem-solving abilities.
DUE DATES: The due dates of the assignments are usually one or two weeks from YOUR LAB day. All due
dates are at 11:59 pm. The due dates are written in the schedule below in the form: “due in Wn”, where W
stands for “week” and n is the week number. For example, A1 is “due in W3” means that A1 is due in the
third week, which is one week after YOUR lab section at 11:59 pm. There are some exceptions where one
specific due date is given for all students as shown below.
© Dr. Abdallah Mohamed. Not to be copied, used, or revised without express written permission from the copyright owner
Suggested
Lectur
Week Topics Readings Lab Work
e
Based on 12th Ed.
L1 Course overview, Computers’ HW and SW Sect. 1.1-1.8, 1.12 Tue:
First Java Program (printing on the console) First lab cancelled
L2 Programming errors, Software Dev. Process Sect. 1.10, 2.4-
W1 More about Java
data types, variables
2.10
, 2.17
Thu: Basics:
E1: no need to submit
May 14, 15, 17 L3 Reading input from keyboard, constants Chapter 2 A1: due May 23
Operators: arithmetic, Numeric conversion
L4 Formatting output (printf), Predefined classes: Sect. 4.1-4.3,4.6
Math, Character
L5 Predefined classes: String Sect. 4.4 Tue: Variables, data, and I/O:
L6 Intro to control statements Chapter 3 E2: no need to submit
W2 Operators: Relational & Logical, Truth tables A2: due May 26
Selection: ‘if’
May 21, 22, 24 L7 Selection: ‘switch’, conditional expression Chapter 3 Thu: Operators and printf:
Operator precedence E3: no need to submit
L8 Loops: ‘while’, ‘do-while’ Chapter 5 A3: due May 30
L9 Loops: ‘for’, Nested loops, ‘break’ and ‘continue’ Chapter 5 Tue: Selection:
E4: no need to submit
L12 Intro to Methods Chapter 6 A4: due June 2
W3 Revision for Midterm #1
May 28, 29, 31 Thu: Loops:
Midterm Exam #1, in-class MAY 31 @9:00 am E5: no need to submit
(“L7: operator precedence” is last topic A5: due June 6
included)
L13 Methods overloading, Variable Scope, call stacks Chapter 6 Tue:
Debugging in Eclipse Midterm #1 review with TAs
W4 L14 1D Arrays, Loops: for-each Chapter 7
Thu: Methods:
June 4, 5, 7 L15 Primitive vs. reference types Chapter 7 E6: no need to submit
Arrays and methods, Predefined class: Arrays
A6: due June 13
L16 Practice
L17 Multidimensional arrays Chapter 8 Tue: 1D arrays:
L18 OOP – part A (intro) Sect. 9.1-9.6 E7: no need to submit
W5 L21 OOP – part B (constructors, garbage collection, Sect. 9.7-9.9 A7: due June 16
visibility modifiers, encapsulation, ‘this’)
June 11, 12, 14 Revision for Midterm Exam #2 Thu: n-D arrays:
Midterm Exam #2, in-class. JUNE 14 @9:00 am E8: no need to submit
(“L15: 1D Arrays” is last topic included) A8: due June 19
L22 OOP – part C (‘static’, passing Objects to Sect. 9.10, 9.11, Tue: OOP:
methods, array of objects) 9.13, 9.14 E9: no need to submit
L23 Inheritance (tentative) Sect. 11.1-11.6 A9: no need to submit (only used for
W6 L24 Final Revision practice) – TAs will solve them with
you during this and next lab.
June 18, 19
Thu:
Midterm #2 review with TAs +
general revision.
© Dr. Abdallah Mohamed. Not to be copied, used, or revised without express written permission from the copyright owner
Safewalk: Don’t want to walk alone at night? Not too sure how to get somewhere on campus? Call Safewalk at 250-
807-8076. For more information, see: www.security.ok.ubc.ca
Copyright Disclaimer
All materials of this course (course handouts, lecture slides, assessments, course readings, etc.) are the intellectual
property of the Course Instructor or licensed to be used in this course by the copyright owner. Redistribution of these
materials by any means without permission of the copyright holder(s) constitutes a breach of copyright and may lead
to academic discipline.