COSC121-16S2 (C) Semester Two 2016

Introduction to Computer Programming

15 points

Details:
Start Date: Monday, 11 July 2016
End Date: Sunday, 13 November 2016
Withdrawal Dates
Last Day to withdraw from this course:
  • Without financial penalty (full fee refund): Sunday, 24 July 2016
  • Without academic penalty (including no fee refund): Sunday, 9 October 2016

Description

Computer programming in a high-level language with special emphasis on style and structure. This course is normally required as preparation for Cosc122 and as a prerequisite for all 200 level CSSE courses.

Students will learn the fundamentals of computer programming using the Python language.
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. The course will follow the textbook fairly closely.

COSC121 is a prerequisite for all 200 level COSC courses and is normally required as preparation for COSC122.

Learning Outcomes

  • Students will:
  • Have practical experience writing, testing, and debugging basic Python programs,
  • Be able to write Python programs using strings, modules, objects, methods, functions, lists, conditionals, iteration, file processing, sets and dictionaries,
  • Be able to implement simple Graphical User interfaces in Python,
  • Be able to do simple object-oriented programming in Python.

Timetable Note

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

Richard Lobb

Lecturer

Walter Guttmann

Assessment

Assessment Due Date Percentage 
Final Exam 60%
Assignment Quizzes 15%
Lab Quizzes 10%
Test 15%


There are four assessment components: weekly laboratory online quizzes, a mid-semester test, a so-called "assignment" and the final exam. The assignment will be a series of programs for you to write, handed out at regular intervals throughout the course. They will for the most part be automatically marked by our online program tester, but some of them will also be assessed by staff for readability and 'style'. This set of assignment programs will also be referred to as the assignment superquiz.

Textbooks / Resources

The textbook for this course is Practical Programming (2nd edition): An Introduction to Computer Science Using Python 3. This can be bought from the bookshop, or an on-line PDF version is available for $US25.00 from http://pragprog.com/book/gwpy2/practical-programming

Also recommended is the interactive on-line textbook by B. Miller, D. Ranum
How to think like a computer scientist: Learning with Python: Interactive Edition (using Python 3.x)

Working on your home computer
Many students will do at least some of their laboratory and assignment work on home computers.
To do that, you will need to install some course-specific software as follows:
* Python, version 3.3 or later. This can be downloaded from www.python.org. NB: Version 2.7 is NOT appropriate, as it is not compatible with version 3, which will be using in the course.

* Wing101 Version 5.0, the IDE (Integrated Development Environment) we use in Cosc121S1.
This can be downloaded from http://www.wingware.com/downloads. [This is not strictly essential; you can, if you wish, develop your programs using the IDLE IDE that comes with Python. Wing101 is what we will use in the lectures and laboratories, however.]

Notes

There are several important documents available online about departmental regulations, policies and guidelines at the following site. We expect all students to be familiar with these.

Notices about this class will be posted to the class forum in the Learn system.

COSC students will also be made members of a class called “CSSE Notices”, where general notices will be posted that apply to all classes (such as information about building access or job opportunities).

Additional Course Outline Information

Academic integrity

Every year several students fail the course because of dishonest practice. Please do not be among them. You are encouraged to discuss the general aspects of a problem with others. However, anything you submit for credit must be entirely your own work and not copied, with or without modification, from any other person. If you share details of your work with anybody else then you are likely to be in breach of the University's General Course and Examination Regulations and/or Computer Regulations (both of which are set out in the University Calendar) and/or the Computer Science Department's policy (see section 9). The Department treats cases of dishonesty very seriously and, where appropriate, will not hesitate to notify the University Proctor.
If you need help with specific details relating to your work, or are not sure what you are allowed to do, then contact your tutors or lecturer for advice.

Assessment and grading system

Laboratory Work
Practical work is an essential part, or even the essential part, of learning to program. Laboratories are presented as on-line quizzes. Each quiz includes information panels interleaved with questions and programming exercises. The quizzes are electronically graded and the sum of all your quiz marks contributes 10% of your total course mark.

This is one laboratory quiz due each week and the content of that laboratory is closely tied to the material covered in lectures that week. You should aim to be working on the lab material while it is being covered in lectures. You can work on the laboratory quizzes during scheduled laboratory times (see below) and/or in your own time at home or after hours in our labs.

Scheduled laboratory sessions are available for students who need the discipline of a regular time slot and/or support from course tutors. You should allocate yourself to one of the available lab streams using your personal timetable on My Timetable. Numbers in each stream are limited and it’s first-come-first-served, so if you have a strong preference for which stream you wish to attend, get in early. The laboratory streams can be thought of as “help sessions”, at which you can get help from a tutor if you need it. Being booked into a lab stream means that there is at least one time in each week when you are guaranteed to have access to tutor support. You are welcome to attend extra lab sessions provided there are free machines available.

Although lab tutors are available to help you work through the exercises when you are stuck, you should try to solve the problems yourself before calling for help. In programming there are infinitely many possible programming exercises and each one has a huge number of possible solutions. It’s not the solution to the problem that’s important; it’s the mental processes you use to get even one solution that matter. Tutors can provide only limited assistance with guiding your mental processes – ultimately you yourself have to acquire the necessary problem-solving skills.

If you don’t finish a lab quiz within a single sitting you can just log-off and then resume later. However, you must submit each quiz by its final submission date. Extensions will generally not be given except on medical grounds.

Mid-Course Quiz/Test
An online test will be administered in the second term: details to be announced. The quiz/test will be worth 15% of your course grade. The test will be an open book online examination, similar in style and question-type to the lab quizzes, but invigilated and with a strict time limit.

Programming Assignment
As explained above, the programming assignment is actually a series of stand-alone programs handed out throughout the course, starting in the third week. These will be submitted through the same online quiz system that is used in labs. Each quiz question will have a due date and unless specified otherwise in the task description late submissions will not be accepted. The assignment quizzes in total count for 15% of the final grade.

Examination
The examination will be 3 hours long (to be confirmed) and will count for 60% of the final grade. Details on how the examination will be run will be advised in lectures. The date and location of examinations is determined by the Registry, not the department. They’ll be sent to you by email when they’ve been finalised. Also, they will be available through the University Course Information System. If you have an examination clash then please consult the course supervisor immediately.

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 B- 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.

Students may apply for special consideration if their performance in an assessment is affected by extenuating circumstances beyond their control.

Applications for special consideration should be submitted via the Examinations Office website within five days of the assessment.

Where an extension may be granted for an assessment, this will be decided by direct application to the Department and an application to the Examinations Office may not be required.

Special consideration is not available for items worth less than 10% of the course.

Students prevented by extenuating circumstances from completing the course after the final date for withdrawing, may apply for special consideration for late discontinuation of the course. Applications must be submitted to the Examinations Office within five days of the end of the main examination period for the semester.

Tentative Schedule

Week 1 Introduction to the Course and Python
Week 2 Strings and Modules
Week 3 Objects, methods and lists
Week 4 Conditionals: the if statement
Week 5 Iteration (looping)
Week 6 File Processing
Week 7: Modules, more on functions, exceptions
Week 8: Style and design; functional decomposition
Week 9: Sets and dictionaries
Week 10: Object oriented programming
Week 11: Graphical User Interfaces (GUIs)
Week 12 Overflow (probably no lectures)

Indicative Fees

Domestic fee $801.00

International fee $3,450.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