Search for contacts, projects,
courses and publications

Programming Styles

Description

COURSE OBJECTIVES

Strengthen programming skills and understanding of fundamental programming language concepts.

 

COURSE DESCRIPTION
You are a good programmer. You are fluent in multiple programming languages. But can you program in style? This course is a journey through the landscape of programming languages and idioms. You will discover a multitude of dramatically different programming styles. A style arises from a set of constraints you impose on your code. Styles are independent of a given programming language. You can use many different programming languages to write code in a given style. *Pre-requisites*: This course expects participants to already be fluent in at least two different programming languages (ideally Java and JavaScript).

 

LEARNING METHODS
In this course you won't just hear about and discuss various styles. You will practice those styles. You will look at programming as an art, and like a budding artist—be it a painter, a writer, or a musician—you will practice producing works in multiple artistic styles.

 

EXAMINATION INFORMATION
Written in-class final exam (if possible).

 

REFERENCES

  • Mandatory textbook: Cristina Videira Lopes. Exercises in Programming Style. CRC Press. 2014. ISBN 9781482227376
  • This course uses Informa as a learning platform. Check the "Programming Styles" course site, with course themes, topics, skills, labs, readings, and more at https://informa.inf.usi.ch/courses

People

 

Hauswirth M.

Course director

Moreno Santos I.

Assistant

Additional information

Semester
Fall
Academic year
2020-2021
ECTS
3
Language
English
Education
Master of Science in Artificial Intelligence, Elective course, Lecture, 1st year
Master of Science in Artificial Intelligence, Elective course, Lecture, 2nd year
Master of Science in Informatics, Elective course, Lecture, 1st year
Master of Science in Informatics, Elective course, Lecture, 2nd year
Master of Science in Software & Data Engineering, Core course, Lecture, 1st year
PhD programme of the Faculty of Informatics, Elective course, Lecture, 1st year (2 ECTS)
PhD programme of the Faculty of Informatics, Elective course, Lecture, 2nd year (2 ECTS)