production
Skip to Content

CS2020: SOFTWARE PROGRAMMING (2021-2022)

Last modified: 31 May 2022 13:05


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
  • Dr Bruce A. Scharlau
  • Dr Milan Markovic

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

Java Exercises

Assessment Type Summative Weighting 25
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

Software & Report: Python/Java/Haskell

Assessment Type Summative Weighting 25
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

Class Test

Assessment Type Summative Weighting 25
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

Class Test

Assessment Type Summative Weighting 25
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

Formative Assessment

There are no assessments for this course.

Resit Assessments

Resubmission of failed elements

Assessment Type Summative Weighting
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
ProceduralApplyAbility to apply tools for enhancing productivity and collaboration in software development.
ProceduralAnalyseSolid understanding of language features, principles, semantics, execution, and how these work in applications
ProceduralAnalyseLearn how to analyse and correct programs.
ProceduralCreateBe able to confidently apply robust software programming technology and practices to creatively solve complex problems.

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.