Coronavirus (Covid-19): Latest updates and information
Skip to main content Skip to navigation

CS118 Programming for Computer Scientists

Throughout the 2020-21 academic year, we will be adapting the way we teach and assess modules in line with government guidance on social distancing and other protective measures in response to Coronavirus. Teaching will vary between online and on-campus delivery through the year, and you should read the additional information linked on the right hand side of this page for details of how we anticipate this will work. The contact hours shown in the module information below are superseded by the additional information.You can find out more about the University’s overall response to Coronavirus at: https://warwick.ac.uk/coronavirus.

CS118-15 Programming for Computer Scientists

Academic year
20/21
Department
Computer Science
Level
Undergraduate Level 1
Module leader
James Archbold
Credit value
15
Module duration
10 weeks
Assessment
Multiple
Study location
University of Warwick main campus, Coventry
Introductory description

This module is a first course in computer programming.

Module aims

The principal aim of this module is to introduce students to problem solving and structured and object oriented programming.

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

Fundamentals of programming

Introduction to programming: Programming paradigms; From Specification through Algorithms to Implementation; Program compilation and testing.
Building Elements: Preconditions and postconditions; Basic data types; Variables, identifiers and scope.
Control structures: Conditionals; Case statements and loops; Correctness issues when programming with loops.
Methods: Comparison between iteration and recursion.
Object oriented programming

Programming with objects and classes: Complex data types; Parameter passing by reference and by value; Encapsulation.
Arrays and strings
Class inheritance: Dynamic binding; Multiple inheritance; Interfaces and abstract classes.
Design, construction and testing

Program specifications
Error handling
Methods of testing

Learning outcomes

By the end of the module, students should be able to:

  • Students should be able to understand the programming process, from the definition of the problem and the design of a solution at an abstract level, to the coding itself with an integrated approach to testing for correctness.
  • Student should be able to develop programs in a high-level programming language using the imperative paradigm.
  • Students should be able to structure complex software using principles of encapsulation and abstraction in the object-oriented programming abstractions.
  • Students should be able to apply informal reasoning techniques to justify the correctness of methods and programs, and justify desired properties such as termination.
  • Students should be able to use different strategies for testing programs and managing run-time errors using exception handling.
Indicative reading list

Please see Talis Aspire link for most up to date list.

View reading list on Talis Aspire

Subject specific skills

Experience with the Java programming language
Understanding of Data Types
Iterative Statements
Conditional Statements
Imperative Programming
Object Oriented Programming
Inheritance
Error Handling
Passing by value vs passing by reference.
Learning to thinking programatically and algorithmically and how to take a specification and turn it into a plan for a program.

Transferable skills

Coding
Problem solving
Communication skills (verbal)
Critical thinking

Study time

Type Required
Lectures 20 sessions of 1 hour (13%)
Practical classes 10 sessions of 1 hour (7%)
Private study 120 hours (80%)
Total 150 hours
Private study description

A significant proportion of independent study should be spent with the coursework assignments, and also completing the problems sheets. The rest should be revision of the material and practising the concepts discussed.

Costs

No further costs have been identified for this module.

You do not need to pass all assessment components to pass the module.

Students can register for this module without taking any assessment.

Assessment group D2
Weighting Study time
Programming assignment 1 20%
Programming assignment 2 20%
CS118 60%

Exam

~Platforms - AEP

Assessment group R
Weighting Study time
CS118 100%

Resit Exam

~Platforms - AEP

Feedback on assessment

Written feedback via Tabula.

Past exam papers for CS118

Post-requisite modules

If you pass this module, you can take:

  • CS126-15 Design of Information Structures

Courses

This module is Core for:

  • Year 1 of UCSA-G400 BSc Computing Systems
  • Year 1 of UCSA-G402 MEng Computing Systems
  • Year 1 of UCSA-G500 Undergraduate Computer Science
  • Year 1 of UCSA-G503 Undergraduate Computer Science MEng
  • Year 1 of UCSA-I1N1 Undergraduate Computer Science with Business Studies
  • Year 1 of UCSA-G406 Undergraduate Computer Systems Engineering
  • Year 1 of UCSA-G408 Undergraduate Computer Systems Engineering
  • Year 1 of UCSA-GN51 Undergraduate Computer and Business Studies
  • Year 1 of USTA-G302 Undergraduate Data Science
  • Year 1 of USTA-G304 Undergraduate Data Science (MSci)
  • Year 1 of UCSA-G4G1 Undergraduate Discrete Mathematics
  • Year 1 of UCSA-G4G3 Undergraduate Discrete Mathematics

Further Information

Term 1

15 CATS (7.5 ECTS)

Online Material

Additional Information