Course syllabus

Course-PM

LP1 HT24

DAT506, DAT425: Fundamentals of program development.

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

Contact details

  • examiner and lecturer: Jean-Philippe Bernardy <jean-philippe.bernardy@gu.se>
  • Teaching assistants:
  •  -  Wincent Holm <wincenth@chalmers.se>            
     -  Henrik Valter <valterh@chalmers.se>             
     -  Isabel Ljungberg <isalju@chalmers.se>              
     -  Katya Voloshina <ekaterina.voloshina@chalmers.se> 
     -  George Granberry <georgegr@chalmers.se>            
     -  Eli Uhlin <gusuhlinel@student.gu.se>        
     -  Arthur Alexandersson <arthura@student.chalmers.se>     
     -  Ali Saaeddin <alisaa@chalmers.se>              
     -  Sofia  Lindh <lindhsofia@live.se>              
     -  Marcel Schweikart <marcelsc@student.chalmers.se>    
     -  Jakob Backhaus <jakobba@chalmers.se>             
     -  Ida Thorburn <ida.thorburn@gmail.com>          
     -  Oskar Uhlmann <oskar.uhlmann@gmail.com>         
     -  Samuel Paulsson <samuelpa@chalmers.se>            
     -  Melker Rååd <melker.raad@yahoo.se>            
     -  Love Lindqvist <love.lindqvist101@gmail.com>     
     -  Oscar Palm <palmoscar4@gmail.com>            
     -  Kusai Al Malt <kusai@student.chalmers.se>       
     -  Muhammad Abdullah Arshad <abdullaharshad171@gmail.com>     
     -  Mohammad Karimi <karimimo@student.chalmers.se>    
     -  Isabell Nordmark <nordmarkisabell@gmail.com>       
     -  Abdur Arshad <abdura@chalmers.se>              
     -  Aron Larsson <arlars03@gmail.com>              
     -  Chloe Dusen <dusen@chalmers.se>               
     -  Oskar Andersson <oskar.neox+gu@gmail.com>         
     -  Simon Wiman <simon.wiman4@gmail.com>          
     -  Jacob Helm <jacobhelmm@gmail.com>            
     -  Omar Younes <omaryo@chalmers.se>              
     -  Gabriel Mörck <morckg@student.chalmers.se>      
     -  Jakob Grevle <jakob@grevle.se>                 
     -  Nadia Farias <nadia@farias.se>                 
     -  Sam Ebrahimi <sam.ebrahimi@live.se>            
     -  David Memedov <davidmem@chalmers.se>            
     -  Samuel Falck <samuelfalck@gmail.com>           
     -  Sofia Forsberg <sofiaellenforsberg@gmail.com>    
     

Student Representatives:   

  • Global Systems, DAT506
    • TKGBS   erikalbe@student.chalmers.se     Erik Albert William Aldén
      TKGBS   valimaki@students.chalmers.se    Martin Välimäki
  • Automation, DAT425
    • TKAUT   hejwilmer@gmail.com     Wilmer Fälldin
      TKAUT   simon.jonasson79@gmail.com      Simon Jonasson
      TKAUT   sofie.pantzare@hotmail.com      Sofie Pantzare
      TKAUT   albin.wallin0222@gmail.com   Albin Wallin
      TKAUT   oscarwitte0327@gmail.com        Oscar Witte

Schedule

The course schedule is available on TimeEdit

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

Course literature

John M. Zelle, Python Programming: An Introduction to Computer Science, 3rd edition, Franklin, Beedle, & Associates, 2017 https://mcsp.wartburg.edu/zelle/python/

The book is also available as e-book: https://redshelf.com/book/522399/python-programming-522399-9781590282779-john-zelle

Learning outcomes

Knowledge and understanding

  • Grasp the relation between source code, the interpreter, and the machine.
  • Choose appropriate data types and data structures for different kinds of data, depending on their performance characteristics.
  • Design algorithms to solve simple programming problems.

Competence and skill

  • Structure small programs by the use of concepts such as iterations, functions, modules, classes, and methods.
  • Structure larger programs into manageable and reusable units.
  • Form readable, descriptive and well-documented program code.
  • Use programming for basic data analysis involving large textual or numeric files.
  • Express mathematical formulas as programming language expressions and algorithms.
  • Build basic interactive programs with text-based (and graphical) user interfaces.
  • Test programs, for instance using unit testing.
  • Use programming tools such as text editor, command line interface, and IDE (integrated development environment).
  • Use standard libraries and follow best programming practices.

Judgement and approach

  • 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:

  • 3 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.