Official course description:
The main outcome of the course is that the students are equipped with basic skills in programming.
The course is important because basic programming skills are required in several of the subsequent courses in the programme. The main issue addressed in a larger context is that, in order to fully develop, explore and evaluate digital design solutions, a certain ability to construct and program working prototypes is required.
The student will gain basic abilities to program working prototypes of digital design solutions, which will expand the future possibilities to develop as a digital designer and to communicate with programmers and other specialists in interactive technologies.
The course conveys an understanding of basic principles, challenges and practices of programming to students of a design-oriented study line. It is part of an effort to offer all students of ITU an identical introduction to IT. No previous programming experience is required or expected. Topics of the course include sorting, stacks and queues, correctness of code, running time, computational complexity, reading and writing text-based databases, and the use of command-line tools. The course lays a solid foundation on which subsequent programming courses e.g. on interaction, graphics or physical computing, can build. The course uses the Python programming language, and is based on two text books (free pdfs available online), Matthes: Python Crash Course, and Sweigart: Automate Boring Stuff.
In more detail, the course covers the following topics:
- Sequential execution, expression, selection, iteration, state, variable, assignment
- String manipulation and text files
- Testing and debugging
- Stacks and queues, sorting
- Worst-case running time
- Abstract data types, types
- Objects, classes
Formal prerequisitesThe student is able to use a modern electronic computer for text processing, email, and web browsing. The student is able to download and install new software. No previous programming experience is required or expected.
Intended learning outcomes
After the course, the student should be able to:
- Analyze a given, simple computational task such as manipulation of a text-based database or external hardware device to the extent of designing a programmatic solution and implementing it in a modern, text-base, domain-neutral programming language
- Test the correctness of a piece of code
- Write program documentation
- Reason about the computational complexity of an algorithm
- Express functionality in terms of abstract data type or application programming interface
- Use text-based tools of program development, including an editor, command-line tools, and a version control system.
Ordinary examExam type:
A: Written exam, external (7-trinsskala)
A22: Written exam on premises with restrictions., (7-scale, external exam) 4 hours individual programming exam on premises at computers not connected to the internet.