Introduction to Computer Science I for majors by James Tam | Return to the course web page |
(I will add information here as we get closer to the exam so you should check back here for updates)
Asking questions during the exam:
Asking questions via email (only send me exam related questions during the day of the exam to allow me to more quickly get through any exam related questions).
The exam can be written within a 24 hour window for the convenience of students. That doesn't mean, of course, that you can ask me questions anytime during that window and expect a timely answer. I will respond to email as best I can during that time, keep in mind however that I am just one person. Unlike a physical exam the drawback is that you cannot see how busy I am with questions. If many of you start sending me questions that I might not be able to get through them all. Keep that in mind, so I don't for instance end up having a single person sending long stream of email questions or send me questions about other things during that time.
Asking questions via Zoom:
- Going into the Zoom link is similar to raising your hand during an exam: you don't raise your hand unless you actually have a question.
- In a similar fashion don't don't go into the Zoom link unless you already have a question otherwise the time wasted letting you into the room and waiting for you to leave will make everyone else's wait longer which is especially detrimental if the queue is long.
One advantage of Zoom is that I can verbally answer questions which is faster than email and I can let all the people waiting in the waiting room know via a single chat message that I am currently busy helping someone. Another advantage is that if you can show me the exam question you are asking about via a screen share.
Here is the URL included here for your convenience: https://ucalgary.zoom.us/j/92187498221?pwd=M0FkK1dwOGxvQ0ZzYXNaaitWNklPdz09). I will be available via my office time Zoom link twice during the day of the exam:
- First session: 10:00 - 10:50 AM i.e. during L01 lecture time
- Second session: 1:00 - 1:50 PM i.e. during the L02 lecture time.
The timing won't be perfect for everyone but holding half the session during each of the lecture times ensures that students in each lecture will have a Q & A session available during a period of time that they are guaranteed to be available (because you had to pick this lecture day/time when you registered for the course). Since I am running my office hour Zoom links during class this of course means that no lecture will be running the day of the exam.
Examination instructions (these are the actual instructions that you should follow when you you start writing so you need to read them beforehand):
For all questions, unless otherwise specified assume that there are no syntax errors in any programs or program fragments.
Open book exam, aids (e.g. course text book, notes) are allowed.
Recording or making captures of the exam in any form is strictly prohibited
The exam must be completed individually, no collaboration is allowed.
The submit feature of D2L:
'Submit' for D2L quizzes is equivalent to you handing in your paper exam in a regular in class exam.
DO NOT submit your quiz until you really are done writing the quiz because, similar to a paper exam, you can't "take back your submission".
DO submit your quiz when you have finished. Similar to a paper exam if you don't hand anything in then you shouldn't expect that it will be marked.
In D2L you will see a submit button twice. When you press one button you will see an option to press the second button. You need to click on both of them to have your exam graded.
The First time you see it is when (I believe) when you get to the last question in your exam you will see the 'Submit Quiz' button outlined (in red in image below).
(The screen capture is from the exam for another lecture so the specific quiz information may not match yours).
Second time after you click on the first button. This time you will see a warning something to the effect that you are now submitting your work for grading and you won't be able go back to your exam if you do so. Click on the second button (again outlined in red) when are really done.
Exam instructions
- Yes you will be asked a question on the exam regarding the [exam instructions] (that means you should read the instructions beforehand but really it should be a given that you are doing this).
Introduction to programming
- Creating, translating programs into binary/machine language and executing programs
- Variables: declaring, assigning values, accessing, naming conventions
- Named constants: difference from variables, naming conventions
- Common arithmetic operators, order of operation
- Print(): displaying string vs. memory (variables, constants) output, format specifiers, escape codes, triple quoted output
- Input()
- Functions that convert types: int(), float(), int()
- Strings: concatenation
- Program documentation: inline and header
- The three types of errors: syntax, runtime, logic. How they differ, when they occur, examples of each
- Random number generation: random.randrange()
Decision making
- Branching structures: IF, IF-ELSE, IF-ELIF and multiple IFs
- Logical operators: AND, OR, NOT (logical expressions formed inside of Python programs and formed outside of coding e.g. truth tables and the other layouts covered in lecture)
- Nested branches
- Minimum test cases for decision making structures
- Drawbacks of floating point variables and the use of an Epsilon
Repetition
- Categories of looping structures: pre-test, post-test
- FOR loops, WHILE loops
- Examples of counting loops: single increment, decrement, increments/decrements in values other than one
- WHILE loops that don't update by a additive amount (e.g. increase by a product)
- FOR loops that iterate through strings
.- Erroneous loops: never end, never run.
- Sentinel controlled loops.
- Nesting: nested loops, branches nested in loops, loops nested in branche.
- Minimum test cases for loops.
- Usability Heuristics (see the pre-recorded lecture Oct.2 - 8 in D2L for the lesson)
Lecture topics covered so far |
Approximate proportion of exam1 |
Examination instructions and information i.e. the information provided on this link. | ~2% |
Introduction to programming (excludes data representations material, I did talk about ASCII character representations in a later section) | 24 |
Branches | 34 |
Repetition | ~38% |
Decomposition | Not on the exam. |
Again: You are expected to be familiar with common functions that have been covered in class such as: print(), input(), int(), float(), str(), randrange().
~30 - 40 multiple choice questions (approximately 75% of the exam weight) |
|
2 short answer questions (approximately 25% of the exam weight) |
|
1 It's based on a near-final version of the midterm (exact proportions may vary *slightly*
Min percent | GPA |
0 | 0 |
15 | 0.1 |
30 | 0.3 |
40 | 0.5 |
45 | 0.7 |
50 | 1 |
51 | 1.1 |
53 | 1.2 |
55 | 1.3 |
56 | 1.4 |
57 | 1.5 |
58 | 1.6 |
60 | 1.7 |
61 | 1.8 |
63 | 1.9 |
65 | 2 |
66 | 2.1 |
68 | 2.2 |
70 | 2.3 |
71 | 2.4 |
72 | 2.5 |
73 | 2.6 |
75 | 2.7 |
76 | 2.8 |
78 | 2.9 |
80 | 3 |
81 | 3.1 |
82 | 3.2 |
84 | 3.3 |
86 | 3.4 |
87 | 3.5 |
88 | 3.6 |
90 | 3.7 |
91 | 3.8 |
92 | 3.9 |
94 | 4 |
98 | 4.1 |
99 | 4.2 |
100 | 4.3 |