COMP1126 Course Information
COMP1126 Course Information
Department of Computing
COMP1126- Introduction to Computing I
Semester I, 2020
Lecturer: Dr. Gunjan Mansingh
Course Information
This course will be offered entirely online in Semester I 2020/2021. In order to fully participate in this course it is
expected that each student will have access to the following:
Others may be added as needed but students should ensure that they have access to the above on the laptops they
are using for the course.
Communication
Office Hours: Tue: 11-12 noon and Wed: 12-1 pm in the Department of Computing BbC Room
Course Assessment
The course will be assessed as follows:
Final Exam (2 hours long) 60%
Coursework 40%
Programming assignments 15%
1 in-course test (1 hr) 10%
5 labs 10%
1 quiz 5%
You must pass both the coursework and the exam components separately in order to pass the course .
Basic Rules
• Lab Attendance is mandatory
• Tutorial Attendance is mandatory
• Collaboration on projects and labs is allowed:
• Discuss problems with collaborators, clarify issues, and discuss approaches.
• Write up (code, annotation, text) must be your own
• Must acknowledge your collaborators
Collaboration
You may collaborate on assignments but any work turned in must be your own and you must acknowledge all
persons with whom you collaborate. .
Collaboration while taking exams (both mid-semester and final) is prohibited and will be dealt with accordingly when
discovered.
Any texts used or sources outside of course notes should be acknowledged in the write up for your assignments.
Failure to give proper credit may be construed as cheating. Please note that The UWI has very strict guidelines for
the punishment for plagiarism and all such detected cases are dealt with by a Campus committee (not within the
department).
Handing in Work
All work for this course will be submitted through OurVLE.
Please follow the instructions indicated on each assignment as failure to adhere to the instructions may result in
your assignment not being accepted or graded.
Due Dates
Assignments/Projects are due before the final time and date indicated on them. Unless permission is requested and
granted in advance of the due date, late submissions will not be accepted.
Course Outline
Rationale
This course is intended to lay the foundations for developing good problem solving skills within students of Computing.
It is not aimed at teaching any particular programming language or paradigm per se. The ideas covered in this course
will be revisited in more detail in a variety of courses in the subsequent part of the Information Technology/Computer
Science major. As a consequence, no knowledge of programming is assumed as a prerequisite to this course, yet a t
the end of the course students would have been exposed in a concrete way to computation, and the tools that have
been developed to control its complexity as well as implement its processes in physical devices. This course therefore
serves as one of the cornerstone courses of the entire curriculum for the Information Technology programme and the
Computer Science major, and requires only that students come to it prepared to think in ways unfamiliar to them.
Course Description
The style of programming used is functional, and the language used is Python. The choices of programming style and
language are intended to encourage students to think about solutions to problems in terms of the requirements of
those solutions, rather than the mechanics of how to fulfil them. This entry level course into both the Computing sub-
disciplines of Computer Science and Information Technology leans more towards the functional-first approach
although basic concepts of Object-Oriented Programming are introduced. It is a first programming course and focuses
attention on basic programming concepts (such as computation, function, operation) and structures (such as basic
and structured data, procedures).
Learning Outcomes
At the end of the course the students should be able to do the following:
• describe the concept of a function and implement functions to perform simple mathematical
operations.
• explain the concept of tail recursion and its use in implementing iterative processes with recursively
written procedures.
• design and implement iterative and recursive processes in a functional language;
• process data stored in tuple and list data structures;
Content
1. History of programming languages. Brief survey of programming paradigms
2. Building Abstractions
a. Computational Processes
• Primitive Operations
• Special Forms for naming, conditional execution
• Procedures as sequences of operations
• Recursion and Iteration
• Lexical scoping and Nested Procedures
b. Higher-order procedures
• Customising Procedures with procedural arguments
• Creating new functions at run-time
c. Compound Data: Pairs and Lists
Reading List
1. Think Python, How to Think Like a Computer Scientist, Version 1.1.22. Allen Downey. Green Tea
Press, 2009.
2. Practical Programming, An Introduction to Computer Science Using Python. Campbell J., Gries P.,
Montojo J., Wilson G., Pragmatic Bookshelf, 2009
Lectures
Lectures slides will be posted online. Virtual lectures will be recorded and you can download them from Backboard
collaborate. Instruction of downloading lectures can be see accessed by using the following link
https://www.mona.uwi.edu/fpas/e-learning-students#staff
Tutorials
Two tutorials worksheets are going to be posted every week. At the time of your tutorial use the COMP1126 Virtual
Class Room to access your tutorial session. You should attempt the questions before your tutorial session.
Labs
At the time of your Lab session use the COMP1126 Virtual Class Room. Lab exercises are posted every week on
OurVLE.
1. Create your account. You may also utilize the available OAuth options (signing in via Google, GitHub or
Facebook).
2. To create your new workspace, select the “+ New repl” button located on the menu located on the left.
3. Select the language you intend to write your solution in. If you’re a COMP1126 or COMP1127 student, select
“Python”.
4. Ensure you name your repl in the format “Lab<lab number> - <ID number>”. See example in image below.
5. After appropriately naming your repl, click the “Create repl” button.
6. After your repl has been successfully created, you will be presented with the screen shown below. Write your
solutions in the section highlighted in GREEN, this is your workspace. The section highlighted in PURPLE simulates
a terminal/shell/command prompt and allows you to execute the code you have written. After writing your
solution, click the “Run” button at the top of the screen then instantiate your sanctions in the simulated terminal.
Is your output what you expected it to be?
Getting assistance from a Lab Tech and Getting your Solution Graded
To get assistance from a Lab Tech, you will need to share your workspace.
1. Select the “Share” button located in the top-right of your screen. In the pop-up window, click the “Copy”
button. This link will allow the Lab Tech to get access to your workspace in real time.
2. Return to BbC in your lab session and “raise your hand” by clicking the right-most icon located in the bottom-
center of the web application to indicate that you need assistance (see image below). An available Lab Tech
will create a private room with you where you’ll be able to get one-on-one assistance.
3. After the private session is created, share the link you had copied with the Lab Tech in the private chat.
4. Return to your Repl workspace. Your Lab Tech is now able to both see and edit the code you’ve written in real
time.
Submitting your solution
The final submission of your lab will be made to OurVLE. You must get your lab graded by a Lab Tech and your files
submitted to OurVLE in the appropriate section.
1. Select the vertical ellipses located on the right of the left-most pane and select the “Download as zip” menu
item.