COSC121-25S1 (C) Semester One 2025

Introduction to Computer Programming

15 points

Details:
Start Date: Monday, 17 February 2025
End Date: Sunday, 22 June 2025
Withdrawal Dates
Last Day to withdraw from this course:
  • Without financial penalty (full fee refund): Sunday, 2 March 2025
  • Without academic penalty (including no fee refund): Sunday, 11 May 2025

Description

An introduction to imperative computer programming using Python. Topics include: expressions, assignment, selection and iteration, structured data (lists, dictionaries, tuples, arrays), functional decomposition, file processing, using library code, and an introduction to object-oriented programming.

Note, if you are enrolling in the BE(Hons) program you must take COSC131. This is an alternative course to COSC121, which is a required course for engineering intermediate and has a special emphasis on numerical computation.

In COSC121 you will learn the fundamentals of computer programming using the Python language and can be taken by students who have no previous programming background.

Programming is the nuts and bolts of computer science; it is an essential tool but only a small part of the overall subject. Programming involves using a special language to issue a series of instructions to the computer in order to have it solve a particular problem. COSC121 is a prerequisite for all 200-level Computer Science, Computer Engineering and Software Engineering courses and is normally required as preparation for COSC122.

* Videos, Not Traditional Lectures *

Learning to program is necessarily a hands-on process, and traditional hour-long lectures poorly support hands-on learning. Lectures also proceed at a fixed rate but some students require a much faster or slower pace. And when students discover gaps in their understanding while programming, videos of hour-long lectures are an inefficient way for students to review the lecture-based theory associated with their problem.

To fix these problems, we have replaced traditional lectures and associated learning activities with dedicated Learning Modules.  Each learning module covers a particular topic (or sub-topic) with a mixture of notes, short videos (10-15 minutes) with examples, and quiz questions to develop and reinforce understanding of a particular programming concept. Students will engage in the learning modules in their own time and place, and preferably they will periodically pause the videos and experiment with the concepts, rewinding as appropriate.

The course is designed with one learning module per week in mind.  It is important not to fall behind in the material.  Each module builds upon earlier modules and it is easy for the work to become insurmountable.

Learning Outcomes

1. Apply with fluency imperative programming to well defined problem definitions [WA1]
2. Apply program reasoning and debugging skill [WA2]
3. Incorporate third-party program code into solutions [WA1]
4. Apply elementary object oriented programming [WA1]
5. Implement simple imperative program design for semi-complex problems [WA3]

University Graduate Attributes

This course will provide students with an opportunity to develop the Graduate Attributes specified below:

Employable, innovative and enterprising

Students will develop key skills and attributes sought by employers that can be used in a range of applications.

Restrictions

Timetable 2025

Students must attend one activity from each section.

Computer Lab A
Activity Day Time Location Weeks
01 Monday 10:00 - 12:00 Jack Erskine 248 Computer Lab
17 Feb - 6 Apr
28 Apr - 1 Jun
02 Wednesday 08:00 - 10:00 Jack Erskine 010 Computer Lab (19/2-2/4, 30/4-28/5)
Jack Erskine 001 Computer Lab (19/2-2/4, 30/4-28/5)
17 Feb - 6 Apr
28 Apr - 1 Jun
03 Tuesday 16:00 - 18:00 Jack Erskine 010 Computer Lab (18/2-1/4, 29/4-27/5)
Jack Erskine 001 Computer Lab (18/2-1/4, 29/4-27/5)
17 Feb - 6 Apr
28 Apr - 1 Jun
04 Friday 12:00 - 14:00 Jack Erskine 001 Computer Lab
17 Feb - 6 Apr
28 Apr - 1 Jun
05 Monday 15:00 - 17:00 Jack Erskine 001 Computer Lab
17 Feb - 6 Apr
28 Apr - 1 Jun
06 Wednesday 10:00 - 12:00 Jack Erskine 133 Lab 2
17 Feb - 6 Apr
28 Apr - 1 Jun
07 Friday 12:00 - 14:00 Jack Erskine 010 Computer Lab
17 Feb - 6 Apr
28 Apr - 1 Jun
Pals S
Activity Day Time Location Weeks
01 Thursday 15:00 - 17:00 Link 309 Lecture Theatre
24 Feb - 6 Apr
28 Apr - 1 Jun
02 Monday 09:00 - 10:00 Ernest Rutherford 141
24 Feb - 6 Apr
28 Apr - 1 Jun
03 Wednesday 13:00 - 14:00 Psychology - Sociology 213
24 Feb - 6 Apr
28 Apr - 1 Jun
04 Friday 10:00 - 12:00 Puaka James Hight 308
24 Feb - 6 Apr
28 Apr - 1 Jun
05 Tuesday 15:00 - 17:00 Psychology - Sociology 413
24 Feb - 6 Apr
28 Apr - 1 Jun

Examinations, Quizzes and Formal Tests

Test A
Activity Day Time Location Weeks
01 Thursday 19:00 - 20:30 Rata 342 CAD Lab
24 Mar - 30 Mar
02 Thursday 19:00 - 20:30 Jack Erskine 131 Lab 1
24 Mar - 30 Mar
03 Thursday 19:00 - 20:30 Jack Erskine 133 Lab 2
24 Mar - 30 Mar
04 Thursday 19:00 - 20:30 Jack Erskine 248 Computer Lab
24 Mar - 30 Mar
05 Thursday 19:00 - 20:30 Jack Erskine 136 Lab 4
24 Mar - 30 Mar
06 Thursday 19:00 - 20:30 Jack Erskine 001 Computer Lab
24 Mar - 30 Mar
07 Thursday 19:00 - 20:30 Jack Erskine 010 Computer Lab
24 Mar - 30 Mar
08 Thursday 19:00 - 20:30 Jack Erskine 134 Lab 3
24 Mar - 30 Mar

Timetable Note

Check your personal timetable on My Timetable. Note that you are welcome to attend extra lab sessions provided there are free machines available.

Depending on final student numbers, some of the advertised lab/tutorial streams may not run. Final lab/tutorial options will be available for self-allocation closer to the start of the semester through My Timetable.

Course Coordinator

Andrew Bainbridge-Smith

Course Administrator

Vesper Haven

Assessment

Assessment Due Date Percentage  Description
Assignment Quiz One 7.5% See AKO for more information
Assignment Quiz Two 7.5% See AKO for more information
Learning Module / Participation 10% See AKO for more information
Mid-Course Test 20%
Final Exam 55%


* Tests and Exams *
Tests and exams are sat in computer laboratories around campus. You will be expected to develop and test code during the exams, for which you will have your normal programming tools (VS Code, Wing IDE and Python documentation) available. Questions are in the form as presented in the Learning Modules.
Under Departmental Policy, you must obtain a weighted average of at least 45% in the tests and exams to obtain a passing grade.

We will apply plussage; students who perform better in the final exam than the test will be awarded the same marks for the test as the exam.

As programming is a practical skill, fluency can only be assessed via the test and exam, consequently grades will not be derived under the Special Consideration policy.  Please see our additional notes below. for information on how the University Special Consideration rules apply to this course.

Students who fail the course on their first attempt of the final exam may attempt a resit exam on Monday 30th June to earn a passing grade. You will receive an invitation for the resit.  The maximum grade permitted in this circumstance is a C- grade.

* Assignment Quizzes *
Two assignments will be set during COSC121. Each assignment will be a series of questions leading to a more complex program than typically presented in the Learning Modules.  The purpose of an assignment is to integrate knowledge of a number of programming concepts to solve a problem.

* Learning Module Quizzes Participation *
Each week you will earn marks by either engaging with the Learning Module Quiz for the week OR by participating in a laboratory session; the choice is yours. In either case you will be working on the weekly Learning Module Quiz.

Textbooks / Resources

There are two main options for books to use to supplement the lectures and support your lab work.

- "Practical Programming: An Introduction to Computer Science Using Python 3" by Campbell, Gries, Montojo and Wilson, 2nd or 3rd edition. This is available from the bookshop or as an e-copy from  https://pragprog.com/book/gwpy3. Our course was originally built around the first edition of this text, but the text and our course have evolved in somewhat different directions since then. However, it is still an excellent text with many good exercises.

- "How To Think Like a Computer Scientist'' is available free online at https://runestone.academy/runestone/books/published/thinkcspy/index.html

Additional Course Outline Information

Academic integrity

All work completed within COSC121 tests and exams must be entirely your own. Any contribution from any source not listed on the assessment coversheet constitutes academic misconduct and will be referred to Proctor or Academic Integrity Officer.

Please refer Misconduct Procedures, Guide for Students for further information.

Grade moderation

The Computer Science department's grading policy states that in order to pass a course you must meet two requirements:
1. You must achieve an average grade of at least 50% over all assessment items.
2. You must achieve an average mark of at least 45% on invigilated assessment items.

If you satisfy both these criteria, your grade will be determined by the following University-wide scale for converting marks to grades: an average mark of 50% is sufficient for a C- grade, an average mark of 55% earns a C grade, 60% earns a C+ grade and so forth. However if you do not satisfy both the passing criteria you will be given either a D or E grade depending on marks. Marks are sometimes scaled to achieve consistency between courses from year to year.

Special Considerations

Students may apply for special consideration if their performance in an assessment is affected by extenuating circumstances beyond their control.  You can only apply for major assessment items (worth 10% or more). Applications for special consideration should be submitted via the Examinations Office website within five days of the assessment.  In line with the University policy on Special Consideration the following advice and rules shall apply for this course:

1. Learning Module Quizzes / Participation – Minor Assessments:
You cannot apply for special consideration.    Students may make use of the automated extension application system - note this does not extend out beyond the exam study period.

2. Assignment Quizzes – Minor Assessments:
Youi cannot apply for special consideration. Students may make use of the automated extension application system - note this does not extend out beyond the exam study period.  

3. Mid-Semester Test – Major Assessment:
Students granted special consideration for the test will receive the same mark for their test as earned from the final examination.

4. Final Examinations – Major Assessment:
Students granted special consideration for the final exam will be offered an alternative examination on a special sitting date.  This date is determined by the Faculty of Engineering If you are unable to take the alternative examination you will receive a mark of zero.
 
If you apply for special consideration for the resit/alternative sit examination then you will be awarded the best mark from either your first or second sitting. No further examinations will be offered.

The special sitting date for the examination will occur in the week following the examination period – Monday 30th June.   Students should keep this in mind when planning holidays or other activities.

Special Consideration Applications for the Final Exam

Please click HERE for the CSSE Department's policy for the academic remedy of applications for a special consideration for final exams.

Indicative Fees

Domestic fee $998.00

International fee $5,188.00

* All fees are inclusive of NZ GST or any equivalent overseas tax, and do not include any programme level discount or additional course-related expenses.

For further information see Computer Science and Software Engineering .

All COSC121 Occurrences