Course syllabus

Course PM

TDA548 Fundamentals of program development / Grundläggande programutveckling

LP1 HT26 (7,5 hp)

The course is offered by the department of Computer Science and Engineering

Contact details

  • Examiner: Jean-Philippe Bernardy <jean-philippe.bernardy@gu.se>
  • Lecturer: M. Mustafa Hassan <mustafa.hassan@chalmers.se>

 

  • Teaching assistants:

To be announced later 

 

  • Student Representatives:

TKITE   albin.hedwall@gmail.com Albin Hedwall
TKITE   melanijaneska@gmail.com Melani Janeska
TKITE   larisakabayel@gmail.com Larissa Kabayel
TKITE   pizarro.jonathan04@gmail.com    Jonathan Pizarro Bengtsson
TKITE   radovitszalan@gmail.com Zalán Tamás Radovits

Schedule

The course schedule is available here on TimeEdit.

The lecture topics, slides, etc. will appear as modules as the course progresses.

 

Course Discord

Here is the link for TDA548 discord channel. Discord Server

Please note that this channel is for discussion amongst students. I, or TAs, may answer, but do not be disappointed if you don't see a reply from the teaching group. 

Also note that all the official communication will be sent here on Canvas. 

Course git

TDA548-LP1HT26

Course literature

John M. Zelle, Python Programming: An Introduction to Computer Science. Franklin, Beedle, & Associates.

In this course we support both the 3rd and 4th edition of the book.

https://mcsp.wartburg.edu/zelle/python/

The book is also available as an e-book.

Learning outcomes

Knowledge and understanding

KU1

Grasp the relation between source code, the interpreter, and the machine.

KU2

Choose appropriate data types and data structures for different kinds of data, depending on their performance characteristics.

KU3

Design algorithms to solve simple programming problems.

 

Competence and skills

CS1

Structure small programs by the use of concepts such as iterations, functions, modules, classes, and methods.

CS2

Structure larger programs into manageable and reusable units.

CS3

Form readable, descriptive and well-documented program code.

CS4

Use programming for basic data analysis involving large textual or numeric files.

CS5

Express mathematical formulas as programming language expressions and algorithms.

CS6

Build basic interactive programs with text-based (and graphical) user interfaces.

CS7

Test programs, for instance using unit testing.

CS8

Use programming tools such as text editor, command line interface, and IDE (integrated development environment).

CS9

Use standard libraries and follow best programming practices.

CS10

Apply basic tools and methods supporting an inclusive cooperation in group work, including JML aspects.

 

Judgement and approach

JA1

Assess the difficulty and resources needed for typical programming tasks.

Content

The course is a first introduction to programming by using the general-purpose programming language Python. It gives a comprehensive knowledge of the language, enabling the student to write code for a wide variety of tasks and to read and reuse code written by other programmers.

  • Literals, types, variables, declarations, initialization, operators, expressions and statements, scope.
  • Control statements: if, while, for, break, continue, return, try, raise.
  • Exceptions and exception handling.
  • functions, parameters, arguments, method calls, local variables.
  • Classes, objects, instance and class variables/methods.
  • Simple data structures (list, dictionary, set, stack).
  • One- and two-dimensional lists.
  • Input and output.
  • Introduction to graphical interfaces.
  • Overview of file handling.
  • Text handling, strings.

Organisation

The teaching consists of lectures, group work, exercises, as well as supervision in connection to the exercises.

Examination form

To pass the course it is necessary to do:

  • Self practice exercises which will be reviewed by a supervisor in checkpoint.
  • Two obligatory labs which must be submitted before the deadline and approved by a supervisor. The grading can involve automatic testing, but supervisors also manually inspect the submissions for clarity, correctness and general quality.
  • A digital exam. Permitted aids: one handwritten A4 sheet.

Grading

Self practice and labs are pass/fail. Exam and course grade is graded on the scale U/3/4/5.

Academic honesty

  • Copying from someone else’s solution is considered cheating.
  • Communicating your solutions to other groups is forbidden.
  • Using AI tools (ChatGPT, etc.) is forbidden (throughout the course).

Official course syllabus

The official course syllabus can be found here