Course syllabus

Course-PM

DAT445 Introductory course in programming LP3 VT23

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

Contact details

Slack

If you need help outside of the normal supervision hours, join Slack! I must have got an invitation.

Course purpose

Computer programming is a basic skill needed in both studies and professional life. This course gives the basic skills that the participants can both accomplish programming tasks typical of science and engineering tasks and understand the fundamental principles of computers and programming.

Schedule

The course schedule is available in TimeEdit

The lecture topics and slides will appear here as we go:

  1. Computers and Programming: Intro
  2. Problem analysis and the design of programs and functions
  3. Strings, lists, and tuples
  4. Data collection and data analysis, design for Lab 1
  5. Arithmetics with integers and floating point numbers
  6. Exceptions, loops and generators
  7. Machine learning and linear regression
  8. Recap and some theory (9 February)
  9. Classes and Object Oriented Programming (20 February)
  10. Object-Oriented Design for Lab 3 (23 February)
  11. Analysis of algorithms, complexity, recursion, computability (2 March)
  12. Recap and old exams (6 March)

Example code from lectures will be made available continuously on the course GitHub: https://github.com/aarneranta/intro-python-chalmers

 

 

 

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

Course design

The course consists of two lectures and three supervision sessions every week on campus.

Learning objectives and syllabus

Learning objectives:

On successful completion of the course the student will be able to: 


Knowledge and understanding

  • Express mathematical formulas as programming language expressions and algorithms
  • Choose appropriate data types and data structures for different kinds of data
  • Structure large programs into manageable and reusable units by the use of concepts such as modules, classes, and functions
  • Search and find relevant program libraries and use them in adequate ways
  • Explain the relations between hardware, operating system, and user programs
  • Use programming for basic data analysis involving large files

Competence and skills

  • Write programs that manipulate numeric and textual data to perform standard programming tasks
  • Build interactive programs with both text-based and graphical user interfaces
  • Make programs that read, transform, and generate files in the file system
  • Use standard libraries and follow best programming practices
  • Test programs by methods such as unit, regression, and property-based testing
  • Use programming tools such as code editors and revision control systems

Judgement and approach

  • Assess the difficulty and resources needed for typical programming tasks
  • Analyse code written by others and find errors and possibilities for improvement

Link to the syllabus on Studieportalen.

Study plan DAT425

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 will be mostly based on an automatic testing, but the supervisors also have the right to reject submissions after manual inspections of the code.
  • A digital exam.