澳门六合彩开奖记录
CS1IP: Imperative Programming
Module code: CS1IP
Module provider: Computer Science; School of Mathematical, Physical and Computational Sciences
Credits: 20
Level: Level 1 (Certificate)
When you'll be taught: Semester 1
Module convenor: Dr Martin Lester, email: m.lester@reading.ac.uk
Pre-requisite module(s):
Co-requisite module(s):
Pre-requisite or Co-requisite module(s):
Module(s) excluded:
Placement information: NA
Academic year: 2024/5
Available to visiting students: Yes
Talis reading list: Yes
Last updated: 2 October 2024
Overview
Module aims and purpose
Programming is a core skill in Computer Science. This module introduces the traditional imperative style of programming, where programs consist of a list of instructions executed in sequence. Students will learn how to write programs using the core features found in almost every mainstream programming language, namely variables, assignments, expressions, conditionals (if/else), loops (while/for), functions and arrays.
The focus is on writing small programs that fit neatly within a single source file. The module uses the object-oriented programming language Java, but the object-oriented features, which are most valuable when working on larger projects, will mainly be ignored; they are explored in the following semester鈥檚 programming module, Object-Oriented Programming.
As this the first programming module in an undergraduate Computer Science degree, students will also learn some fundamental software development practices, such as use of version control (git), specification and testing. The module also introduces some basic algorithms, such as those for searching or sorting an array.
Module learning outcomes
By the end of the module, it is expected that students will be able to:
- Write and execute a Java function that satisfies a simple input/output specification written in natural language and write test cases to demonstrate that it satisfies the specification;
- Use tracing and compositional reasoning to determine the behaviour of a program without using a computer;
- Implement and benchmark a simple algorithm that manipulates arrays, when given pseudocode;
- Use version control to obtain, backup and share program code stored in a repository.
Module content
Basic features of an imperative programming language:
- Variables, declarations, types, assignments and expressions
- Conditionals and loops
- Functions (including recursion)
- Arrays
Common Java APIs:
- Collections: add, remove, iterate (with for-each loop); ArrayList, LinkedList
- File Input/Output Streams: reading/writing formatted text with standard input/output or a file
Introductory algorithms:
- Linear/binary search
- Bubble/merge sort
- Empirical measurement (timing) of algorithm performance
- Pseudo-code vs program source code
Orientation and introductory software development:
- Directories and file management with a graphical file manager, such as Windows Explorer
- Use of a programmer鈥檚 text editor, such as Notepad++ or VS Code
- Code style and hygiene: comments, variable naming, indentation
- Use of git and GitLab: clone, pull, add, commit, push
- JShell for running Java 鈥渟cripts鈥 and explorative programming
- Tests and natural language specifications
- Program tracing as a method of understanding the behaviour of a program
- Common debugging strategies: simple test cases, inserting print statements, rubber ducking
- Top-down design or some other small-scale method of approaching program development
Topics covered lie mainly within the ACM Computer Science Curricula 2013 knowledge area 鈥淪oftware Development Fundamentals鈥.
Recommended textbook:
- Java How To Program, Late Objects, Global Edition, 11th Edition, by Deitel & Deitel
Secondary textbook:
- Core Java, Volume I: Fundamentals, 12th Edition, by Cay Horstmann
Structure
Teaching and learning methods
The module will introduce programming language concepts through lectures. Students will then be able to apply these concepts in practicals.
The first part of the module will introduce the standard features of an imperative programming language; lectures will mostly follow the sequence of topics in the recommended textbook. Good software development practices will be introduced gradually in parallel as relevant. The practical side of the module will begin with an orientation session, covering basic file management and use of a text editor, and leading into running short Java programs using JShell. Each week, new programming language features will be introduced, which students will practise by completing short programming exercises in practicals and independently.
Once the basic features of imperative programming have been covered, the second part of the module will cover use of one or two common Java APIs, such as the Collections API, as well as introductory algorithms. The accompanying practicals will continue to provide students with opportunities to practise and master the imperative programming features from the first part.
Study hours
At least 44 hours of scheduled teaching and learning activities will be delivered in person, with the remaining hours for scheduled and self-scheduled teaching and learning activities delivered either in person or online. You will receive further details about how these hours will be delivered before the start of the module.
聽Scheduled teaching and learning activities | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Lectures | 22 | ||
Seminars | |||
Tutorials | |||
Project Supervision | |||
Demonstrations | |||
Practical classes and workshops | 22 | ||
Supervised time in studio / workshop | |||
Scheduled revision sessions | |||
Feedback meetings with staff | |||
Fieldwork | |||
External visits | |||
Work-based learning | |||
聽Self-scheduled teaching and learning activities | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Directed viewing of video materials/screencasts | 11 | ||
Participation in discussion boards/other discussions | |||
Feedback meetings with staff | |||
Other | |||
Other (details) | |||
聽Placement and study abroad | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Placement | |||
Study abroad | |||
聽Independent study hours | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Independent study hours | 145 |
Please note the independent study hours above are notional numbers of hours; each student will approach studying in different ways. We would advise you to reflect on your learning and the number of hours you are allocating to these tasks.
Semester 1 The hours in this column may include hours during the Christmas holiday period.
Semester 2 The hours in this column may include hours during the Easter holiday period.
Summer The hours in this column will take place during the summer holidays and may be at the start and/or end of the module.
Assessment
Requirements for a pass
Students need to achieve an overall module mark of 40% to pass this module.
Summative assessment
Type of assessment | Detail of assessment | % contribution towards module mark | Size of assessment | Submission date | Additional information |
---|---|---|---|---|---|
Online written examination | Exam | 30 | 1 hour | Semester 1, Assessment Period | Multiple Choice Questions - Understanding programs |
Set exercise | Programming exercise 1 | 30 | 30 marks | Semester 1, Teaching Week 7 | |
Set exercise | Programming exercise 2 | 40 | 40 marks | Semester 1, Teaching Week 12 |
Penalties for late submission of summative assessment
The Support Centres will apply the following penalties for work submitted late:
Assessments with numerical marks
- where the piece of work is submitted after the original deadline (or any formally agreed extension to the deadline): 10% of the total marks available for that piece of work will be deducted from the mark for each working day (or part thereof) following the deadline up to a total of three working days;
- the mark awarded due to the imposition of the penalty shall not fall below the threshold pass mark, namely 40% in the case of modules at Levels 4-6 (i.e. undergraduate modules for Parts 1-3) and 50% in the case of Level 7 modules offered as part of an Integrated Masters or taught postgraduate degree programme;
- where the piece of work is awarded a mark below the threshold pass mark prior to any penalty being imposed, and is submitted up to three working days after the original deadline (or any formally agreed extension to the deadline), no penalty shall be imposed;
- where the piece of work is submitted more than three working days after the original deadline (or any formally agreed extension to the deadline): a mark of zero will be recorded.
Assessments marked Pass/Fail
- where the piece of work is submitted within three working days of the deadline (or any formally agreed extension of the deadline): no penalty will be applied;
- where the piece of work is submitted more than three working days after the original deadline (or any formally agreed extension of the deadline): a grade of Fail will be awarded.
The University policy statement on penalties for late submission can be found at: /cqsd/-/media/project/functions/cqsd/documents/qap/penaltiesforlatesubmission.pdf
You are strongly advised to ensure that coursework is submitted by the relevant deadline. You should note that it is advisable to submit work in an unfinished state rather than to fail to submit any work.
Formative assessment
Formative assessment is any task or activity which creates feedback (or feedforward) for you about your learning, but which does not contribute towards your overall module mark.
Throughout the module, students will be able to get immediate feedback on some of the practical exercises through use of an automated marking system. There will also be formative online multiple-choice tests for students to check their understanding of factual knowledge covered.
Reassessment
Type of reassessment | Detail of reassessment | % contribution towards module mark | Size of reassessment | Submission date | Additional information |
---|---|---|---|---|---|
Set exercise | Programming exercise | 100 | 24 hours (over 3 days). 100 marks. | During the University resit period |
Additional costs
Item | Additional information | Cost |
---|---|---|
Computers and devices with a particular specification | ||
Required textbooks | ||
Specialist equipment or materials | ||
Specialist clothing, footwear, or headgear | ||
Printing and binding | ||
Travel, accommodation, and subsistence |
THE INFORMATION CONTAINED IN THIS MODULE DESCRIPTION DOES NOT FORM ANY PART OF A STUDENT'S CONTRACT.