Display language
To modulepage Generate PDF

#40787 / #5

Seit SoSe 2022

English

Programming Course and Project

6

Sprekeler, Henning

unbenotet

Portfolioprüfung

Zugehörigkeit


Fakultät IV

Institut für Softwaretechnik und Theoretische Informatik

34352100 FG Modellierung kognitiver Prozesse

No information

Kontakt


MAR 5-3

Velenosi, Lisa Alexandria

graduateprograms@bccn-berlin.de

Learning Outcomes

At the end of the module, students will be able to: - write complex computer programs - follow common software design principles - apply basic as well as advanced concepts of a modern programming language - use tools for successful project management (version control tools, testing, etc.) - develop a larger program, including the necessary specifications, documentation and test The course puts strong emphasis on the use of online resources and self-guided learning in order to teach the students how to acquire skills in a modern programming language using manuals and available resources.

Content

The main objective of the course is to teach students how to plan and complete a complex software project. The specific topic is subject to change and is announced at the beginning of the semester. Depending on the level of background, the first tutorials can feature introductory topics such as: - using the UNIX operating system: basic commands, editor, navigation - introduction to the programming language python and common libraries - objects and object attributes in python - object oriented programming in python The main focus of the course is on software carpentry techniques/tools such as: - version control during code development using git - integrated development environments - test driven code development - code documentation - refactoring - debugging - profiling & optimization

Module Components

Pflichtgruppe:

All Courses are mandatory.

Course NameTypeNumberCycleLanguageSWSVZ
Programming Course and ProjectPJSoSeEnglish4

Workload and Credit Points

Programming Course and Project (PJ):

Workload descriptionMultiplierHoursTotal
Attendance & supervised work15.04.0h60.0h
Unsupervised work15.08.0h120.0h
180.0h(~6 LP)
The Workload of the module sums up to 180.0 Hours. Therefore the module contains 6 Credits.

Description of Teaching and Learning Methods

The weekly tutorial contains a teaching component, supervised discussions among the students and time for supervised work on the project. The teaching component will be larger in the beginning of the semester in order to introduce core concepts. In the first few weeks, students will receive necessary background information about - the employed programming language, depending on the level of experience of the students, - software carpentry techniques & tools, - the topic of the software project. This involves lectures/computer demonstrations by the lecturer as well as smaller assignments, which are solved partially in class, partially as homework and serve as building blocks for a first prototype or a simpler version of the final project (depending on the topic). Building on the introductory tutorials, students will plan and execute their own larger software projects. Depending on the complexity of their proposed projects, working in small groups is encouraged. The different projects are supervised by the tutor. Part of the work on the projects is done during the tutorials, during which students can get assistance from the tutor, but a substantial part of of the work is done outside of class. Throughout the course, strong emphasis is put on discussions among students. Both reading other students' code and giving feedback as well as receiving feedback from others are essential to improve their coding style.

Requirements for participation and examination

Desirable prerequisites for participation in the courses:

Basic programming skills in Python, or basic experience in another programming language and a willingness to quickly learn Python.

Mandatory requirements for the module test application:

This module has no requirements.

Module completion

Grading

ungraded

Type of exam

Portfolio examination

Type of portfolio examination

100 Punkte insgesamt

Language

English

Test elements

NamePointsCategorieDuration/Extent
(Deliverable assessment) Final software implementation50writtenSoftware submission
(Deliverable assessment) Software implementation of prototype40writtenSoftware submission
(Deliverable assessment) Presentation of the project10oral~15 min (presentation + questions)

Grading scale

At least 50 points in total needed to pass.

Test description (Module completion)

No information

Duration of the Module

The following number of semesters is estimated for taking and completing the module:
1 Semester.

This module may be commenced in the following semesters:
Sommersemester.

Maximum Number of Participants

The maximum capacity of students is 20.

Registration Procedures

Enrollment to the module is handled by the teaching coordinator of the MSc program Computational Neuroscience and finalized in the first class of the semester. Students of the Master program in Computational Neuroscience have to register with the examination office (Prüfungsamt) of TU Berlin before the first test element. For students from other programs, other regulations may apply. Please consult the examination regulations (Prüfungsordnung) of your program.

Recommended reading, Lecture notes

Lecture notes

Availability:  unavailable

 

Electronical lecture notes

Availability:  unavailable

 

Literature

Recommended literature
Lutz and Ascher, Learning Python (Help for Programmers), O’Reilly, 2008.
Martelli, Ravenscroft and Ascher, Python Cookbook, O’Reilly, 2005.
Multiple online resources provided on the course's web page
Pilgrim, Dive into Python, Springer-Verlag, 2004.

Assigned Degree Programs


This module is used in the following Degree Programs (new System):

Studiengang / StuPOStuPOsVerwendungenErste VerwendungLetzte Verwendung
This module is not used in any degree program.

Miscellaneous

No information