COSC121-13S2 (C) Semester Two 2013

Introduction to Computer Programming

15 points

Details:
Start Date: Monday, 8 July 2013
End Date: Sunday, 10 November 2013
Withdrawal Dates
Last Day to withdraw from this course:
  • Without financial penalty (full fee refund): Friday, 19 July 2013
  • Without academic penalty (including no fee refund): Friday, 4 October 2013

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.

Restrictions

COSC123

Course Coordinator

Tim Bell

Lecturer

Walter Guttmann

Assessment

Assessment Due Date Percentage 
Lab Quizzes 10%
Mid Course Test 15%
Assignment Superquiz 20%
Exam 55%


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

Recommended Reading

Campbell, Jennifer; Practical programming : an introduction to computer science using Python ; Pragmatic Bookshelf, 2009 (Campbell, Gries Montojo and Wilson).

This can be bought from the bookshop, or an on-line PDF version is available for $US22 from http://pragprog.com/titles/gwpy

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 4.1, 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 "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 of learning to program.
A new laboratory exercise will be made available each week and you are expected to work on that exercise during your scheduled lab for that week. Each laboratory exercise is accompanied by an online quiz. The quizzes are electronically graded and the sum of all your quiz marks contributes 10% of your total course mark. Usually you will submit your work at the end of that scheduled lab session but if you wish to continue to work on the exercise in your own time during the next week you may do so. However, you must submit each quiz by its final submission date, the so-called "drop dead date", which is written on the exercise handout. Usually this is the Friday of the week after the lab exercise is handed out.
The lab tutors will help you work through the exercises when you are stuck, but 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.

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.

Examination
The examination will be 3 hours long (to be confirmed) and will count for 55% of the final grade. It is a closed book examination - textbooks, written material and calculators will not be allowed. 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 nalised. Also, they will be available through the University Course Information System. If you have an examination clash then please consult the course supervisor immediately.

Aegrotats
If factors beyond your control (such as illness or family bereavement) prevent you from completing some item of course work (including laboratory sessions), or prevent you from giving your best, then you may be eligible for aegrotat or impaired performance consideration. Details of these may be found in the University Calendar. Supporting evidence, such as a medical certificate, is normally required. If in doubt, talk to your lecturer.

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

Tentative Schedule

Week 1 Introduction to the Course and Python - No lab this week
Week 2 Strings and Modules - Lab 1: Getting Started
Week 3 Objects, methods and lists - Lab 2: Strings and Modules
Week 4 Conditionals: the if statement - Lab 3: Objects, Methods and Lists
Week 5 Iteration (looping) - Lab 4: Conditionals
Week 6 File Processing - Lab 5: Iteration
Week 7 Style and Program Design - Lab 6: Files + Revision
Week 8 Sets and Dictionaries - Lab 7: Style and design
Week 9 Objected Oriented Programming - Lab 8: Sets and dictionaries
Week 10 Graphical User Interfaces - Lab 9: OO
Week 11 Introduction to Software Engineering -   Revision/Assignment
Week 12 Overflow (probably no lectures) - Revision/Assignment

Indicative Fees

Domestic fee $719.00

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