Computer Science
Principles of Programming: COMPSCI 101 Semester 1, 2020
This course is an introduction to programming computers. It is the main introductory course in the Computer Science department and is taken by students from a variety of disciplines wishing to have an understanding of computer programming as well as students wanting to continue on to further studies in Computer Science.
We teach programming using the cross-platform language Python. The main focus is on learning to understand the detailed requirements of a programming task, and writing programs that are well structured, correct, easy to read, and to maintain. In order to do this students need to develop an understanding of how to represent information both as data and algorithms. Students also need to develop the skills of incrementally developing and testing programs.
The course covers simple variables, expressions, input and output, control structures, functions, using standard data structures such as lists and dictionaries, and using standard Python modules.
By the end of the course students who succeed should be able to design and implement a medium-size computer program as well as have some idea of the process of program execution.
Stream 1
Room | ||
---|---|---|
Tuesday | 8am - 9am | HSB1 Lecture Theatre (201N-346) |
Wednesday | 8am - 9am | HSB1 Lecture Theatre (201N-346) |
Friday | 8am - 9am | FPAA Lecture Theatre (Owen G Glenn, Room 115) |
Stream 2
Room | ||
---|---|---|
Tuesday | 5pm - 6pm | HSB1 Lecture Theatre (201N-346) |
Wednesday | 5pm - 6pm | HSB1 Lecture Theatre (201N-346) |
Friday | 5pm - 6pm | OGGB Lecture Theatre (Owen G Glenn, Room 098) |
Please read through the Course Information Document. It outlines the important dates for this semester and gives an overview of the course assessment. Note that this is preliminary and subject to change before the start of the course.
Requirements for Passing the Course
To pass the course, as well as obtaining at least 50% for your overall mark, you are required to pass both the practical invigilated online tests component of the course and the invigilated written final exam.
- Invigilated computer-based tests component:
- Two tests worth 45% in total (20% for the first test and 25% for the second test).
- Tests are practical tests and all questions are answered and validated using CodeRunner.
- Invigilated final written exam component:
- A written exam worth 25% of your final grade
- Exam questions are answered on a Question/Answer booklet.
Notes:
- To pass the invigilated online tests component, you need to achieve a pass (i.e. at least 50%) in the combined total of both tests.
- To pass the invigilated final written exam, you need to achieve a pass (i.e. at least 50%).
- You also need an overall mark of at least 50% out of the full course total of 100%.
- Labs are a compulsory part of the course. They are worth 9% of your final mark.
- Each week you will have one laboratory session.
- All labs are held in Room 303S-279 on Level 2 of the Computer Science building (Building 303S). Take the lift in the black and white tiled area up to Level 2. Room 279 is directly ahead of you when you exit the lift.
- Please locate the tutorial lab room before your first lab and check that your login and password work on our computers.
- Before the first lab you will be given a lab preparation sheet in lectures on either Monday 2nd or Tuesday 3rd March. You are required to complete this worksheet before the start of your first laboratory..
- If you have any problems or queries regarding the labs, please see the lab supervisor, Ann Cameron.
- Each timed CodeRunner question (or set of questions) is worth 1% of your final mark.
- There will be a timed CodeRunner question (or set of questions) after all the lab sessions for a particular lab have finished (i.e. after 7pm on Fridays).
- Each question (or set of questions) is worth 1% but only your best 6 marks will be counted towards your final grade.
- If you have any problems or queries regarding the timed CodeRunner questions, please see one of the teaching staff.
Marks can be checked via the Canvas system. Please check your marks each week and contact Damir Azhar if there are any problems.
- This is a practical computer-based test.
- All questions will be answered and validated using CodeRunner3.
- Worth 20% of your final grade.
- Date and Time: TBA on Saturday, 2nd May.
- Location: Will be emailed to you by Angela Chang on TBA.
- Please arrive at least 15 minutes before the start time.
- The test is 90 minutes long.
- Material covered: Lectures TBA (inclusive) and Labs TBA (inclusive)
- Calculators and mobile phones are not permitted.
- Please turn OFF your phone and leave it in your bag.
- Please bring: pencils or pens and Student ID card.
- There will be no access to any Internet resources, your home drive or any USB devices.
- For security reasons you will not be able to access any of your previous CodeRunner exercises on the day of the test (from about 9am).
- Test questions are password-protected. Your lab supervisor will provide the password for you at the beginning of your session.
- You may access standard Python documentation (python.org)
- You must complete the test without any aids or equipment other than those provided at the test room.
- You may use IDLE to test your code before pasting it into CodeRunner.
- You can create a Python file on the desktop if you wish to develop your code via IDLE before copying it into the CodeRunner answer box.
- Please remember to submit your test on CodeRunner3 before you leave the room.
- Please give your attendance sheet to the test supervisor before leaving the room.
- Please feel free to come and see any of the teaching staff if you need help understanding any of the course material.
- Good luck :)
- This is a practical computer-based test.
- All questions are answered and validated using CodeRunner3.
- Worth 25% of your final grade.
- Provisional Date and Time: TBA on Saturday, 6th June.
- Location: Will be emailed to you closer to the date.
- Please arrive at least 15 minutes before the start time.
- Material covered: Lectures TBA (inclusive) and Labs TBA (inclusive)
- Calculators, watches, and mobile phones are not permitted.
- Please turn OFF your phone and leave it in your bag.
- Please bring: pencils or pens and Student ID card.
- There will be no access to any Internet resources, your home drive or any USB devices.
- Test questions are password-protected. Your lab supervisor will provide the password for you at the beginning of your session.
- You may access standard Python documentation (python.org)
- You must complete the test without any aids or equipment other than those provided at the test room.
- You may use IDLE to test your code before pasting it into CodeRunner.
- You can create a Python file on the desktop if you wish to develop your code via IDLE before copying it into the CodeRunner answer box.
- Please remember to submit your test on CodeRunner3 before you leave the room.
- Please submit your attendance sheet to the test supervisor before leaving the room.
- Please feel free to come and see any of the teaching staff if you need help understanding any of the course material.
- Good luck :)
- The final exam is worth 25% of your final mark.
- The exam is paper-based and your answers will be written on a Question/Answer booklet.
- Date and Time: Available on SSO later in the course.
- It is a 2 hour exam. Please check Student Services Online closer to the exam period for a confirmation of the date and time.
- The exam is closed book, and calculators and watches are not permitted.
- Good luck :)
A student who successfully completes this course will be able to: Understand code, implement algorithms, test code, document code, design solutions using functional decomposition and implement those solutions, and show ethical awareness of issues facing programmers. More specifically, a student who successfully completes this course will be able to:
- determine the state of the program both during and after execution, given a code. listing that may include functions and parameters, loops, conditionals and sequences.
- implement a given algorithm using Python.
- show that a program meets given specifications by writing appropriate tests.
- provide a useful level of documentation, in the form of program comments, for all programs developed.
- decompose a simple problem into several smaller tasks, given a brief textual description of the problem.
- compose functions that perform a specified task into a program that solves a given problem.
-
Related Programmes