production
Skip to Content

CS2020: SOFTWARE PROGRAMMING (2024-2025)

Last modified: 22 Aug 2024 11:46


Course Overview

This course is concerned with tools and techniques for scalable and dependable software programming. It focusses primarily on the Java programming language and related technologies. The course gives extensive programming practice in Java. It covers in depth features of the language and how best to use them, the execution model of the language, memory management, design principles underpinning the language, and comparisons with other languages. Tools for collaboration, productivity, and versioning will also be discussed. 




Course Details

Study Type Undergraduate Level 2
Term First Term Credit Points 15 credits (7.5 ECTS credits)
Campus Aberdeen Sustained Study No
Co-ordinators
  • Professor Ehud B. Reiter
  • Professor Felipe Meneguzzi

What courses & programmes must have been taken before this course?

What other courses must be taken with this course?

None.

What courses cannot be taken with this course?

Are there a limited number of places available?

No

Course Description

The course features a comprehensive introduction to the Java languages, with many exercises and examples. It includes 

  • Basic programming and control flow in Java 
  • Datatypes in Java 
  • Errors, debugging. 
  • Exception-handling 
  • Object-oriented features in Java 
  • Essential Java classes and Collections 
  • Graphical User Interfaces in Java 
  • Execution model and Java virtual machine 
  • Language features and design principles such as typing, parameter-passing, call stack, memory management. 
  • Tools for productivity and collaboration, including integrated development environments and version-control. 

Contact Teaching Time

Information on contact teaching time is available from the course guide.

Teaching Breakdown

More Information about Week Numbers


Details, including assessments, may be subject to change until 30 August 2024 for 1st term courses and 20 December 2024 for 2nd term courses.

Summative Assessments

Computer Programming Exercise

Assessment Type Summative Weighting 35
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback

Programming Exercise (Java) 2

Learning Outcomes
Knowledge LevelThinking SkillOutcome
ProceduralAnalyseLearn how to analyse and correct programs.
ProceduralApplyAn ability to use a version control system for software development
ProceduralCreateBe able to confidently apply robust software programming technology and practices to creatively solve complex problems.
ReflectionCreateThe ability to apply an object orientated design solution to a problem.

Computer Programming Exercise

Assessment Type Summative Weighting 35
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback

Programming Exercise (Java) 1

Learning Outcomes
Knowledge LevelThinking SkillOutcome
ProceduralAnalyseLearn how to analyse and correct programs.
ProceduralApplyAn ability to use a version control system for software development
ProceduralCreateBe able to confidently apply robust software programming technology and practices to creatively solve complex problems.
ReflectionCreateThe ability to apply an object orientated design solution to a problem.

Class Test - Multiple Choice Questions

Assessment Type Summative Weighting 30
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback

Online Test (1h, in class)

Learning Outcomes
Knowledge LevelThinking SkillOutcome
ProceduralAnalyseSolid understanding of language features, principles, semantics, execution, and how these work in applications
ProceduralApplyAbility to apply tools for enhancing productivity and collaboration in software development.

Formative Assessment

There are no assessments for this course.

Resit Assessments

Resubmission of failed elements (pass marks carried forward)

Assessment Type Summative Weighting 100
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback
Learning Outcomes
Knowledge LevelThinking SkillOutcome
Sorry, we don't have this information available just now. Please check the course guide on MyAberdeen or with the Course Coordinator

Course Learning Outcomes

Knowledge LevelThinking SkillOutcome
ProceduralApplyAn ability to use a version control system for software development
ProceduralAnalyseSolid understanding of language features, principles, semantics, execution, and how these work in applications
ProceduralApplyAbility to apply tools for enhancing productivity and collaboration in software development.
ProceduralAnalyseLearn how to analyse and correct programs.
ProceduralCreateBe able to confidently apply robust software programming technology and practices to creatively solve complex problems.
ReflectionCreateThe ability to apply an object orientated design solution to a problem.

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.