Course syllabus for Advanced programming in Python

Course syllabus adopted 2021-02-17 by Head of Programme (or corresponding).

Overview

  • Swedish nameFortsättningskurs i programmering i Python
  • CodeDAT515
  • Credits7.5 Credits
  • OwnerTKITE
  • Education cycleFirst-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 52144
  • Maximum participants200
  • Open for exchange studentsYes

Credit distribution

0121 Laboratory 4.5 c
Grading: TH
4.5 c
0221 Examination 3 c
Grading: TH
3 c
  • 10 Jan 2022 pm J
  • 12 Apr 2022 am J
  • 25 Aug 2022 am J

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

Information missing

Course specific prerequisites

Introductory course in programming, in e.g. Python, Java or Haskell. Examples of such courses are DAT455, TDA548,TDA555, TIN213 and TIN214. 

Aim

To provide skills for programming in a larger scale via concepts such as object-oriented design, testing, and use of standard libraries. The course will also work as a conversion course in Python for students who have taken an introductory course in some other programming language.

Learning outcomes (after completion of the course the student should be able to)

Knowledge and understanding:
  • recognize all constructs of Python and the design choices behind them
  • explain the design alternatives in modular and scalable programming
Skills and abilities:
  • create well-organized software projects for complex tasks
  • read and analyse code written by others
  • contribute to collaborative projects
  • use standard libraries for advanced tasks
  • apply testing methods to guarantee the quality of code
  • write code documentation on different levels of detail

Judgement and approach:

  • reason about software design choices
  • assess the complexity of programming tasks

Content

The course starts with a quick introduction to the elements of Python, which serves as repetition for students who already know Python but also enables students with other backgrounds to get started with Python.

After the introduction, the course proceeds to more advanced features of Python programming:

  • object-oriented design
  • functional programming techniques
  • advanced Python-specific techniques
  • the use of standard libraries
  • testing methodologies
  • creation of larger programming projects
The goal is to give a thorough understanding of Python so that the participants can read and write state of the art code and reason about design choices.

The theoretical material is presented in relation to a project, which is divided into individual components ("labs"), and which results in a comprehensive software system implementing techniques such as scientific computing, data analysis, visualization, and machine learning. No knowledge of these techniques is presupposed but will be a part of the teaching; the focus here is not on the theory but on enabling the students to use relevant software libraries in adequate ways.

Organisation

Lectures, exercises, assignments, individual supervision.

Literature

Will be given before the course starts

Examination including compulsory elements

The course project is organized into three levels, corresponding to grades 3,4, and 5. Thus a higher grade can be obtained by doing more work in the project. A project of level 4 must also satisfy the requirements of level 3, and level 5 must satisfy level 4.

After completed and accepted projects, an exam must be passed that has questions corresponding to the three levels 3,4, and 5. The purpose of the exam is to control that the students have made their projects independently and understood what they are doing.

The final grade for the course is the grade from the exam, which can be at most the same as the grade for the project.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.