CloseHelpPrint
Kies de Nederlandse taal
Course module: 800829-B-6
800829-B-6
Advanced Programming for CSAI
Course info
Course module800829-B-6
Credits (ECTS)6
CategoryBA (Bachelor)
Course typeCourse
Language of instructionEnglish
Offered byTilburg University; Tilburg School of Humanities and Digital Sciences; TSH: Department Cognitive Science and AI; TSH: Department Cognitive Science and AI;
Is part of
B Communication and Information Sciences
B Communication and Information Sciences (Spc.Cog.Sc & AI)
B Cognitive Science and Artificial Intelligence
Contact persondr. M. Atzmüller
Lecturer(s)
Coordinator course
dr. M. Atzmüller
Other course modules lecturer
Lecturer
dr. M. Postma
Other course modules lecturer
Academic year2018
Starting block
SM 2
Course mode
Full-time
RemarksThis information is not up to date. Check the Course Catalog 2019 or select the course via “Register”.
Registration openfrom 14/01/2019 up to and including 31/07/2019
Aims
Advanced computational techniques are necessary for developing complex (large) programs, according to proven design principles and programming best practices. Such techniques are also at the basis of many of the courses taught in the CSAI and Data Science programs. The course "Advanced Programming" builds on the computational knowledge of the courses "Data Structures and Algorithms" and "Basic Programming" in two ways: (1) it teaches the students advanced concepts of the general programming language Python, and (2) it provides the necessary skills to use advanced programming concepts, algorithms and data structures utilizing standard and third-party library tools.

After the course, the student will be able to:
  • Construct programs in Python using advanced object oriented concepts.
  • Apply functional programming principles for constructing modular programs.
  • Illustrate and employ effective, performant and robust programming and testing.
  • Analyse and arrange advanced data structures such as sparse matrices, graphs and networks.
  • Assess and compare advanced programming concepts like parallel processing to solve particular problems.
Specifics/Evaluation 
There will be two take-home assignments. These take-home assignments are mandatory (the dates will be announced at the start of the course via Blackboard). The assignments will be graded. The average of the assignment grades will be 40% of the final grade for the course. The other 60% will be a computer exam that is given in the exam week at the end of the course.
Content
The course will be taught with one lecture and one practical session per week. The lecture will be used to teach the students advanced concepts of the Python language and advanced programming techniques. The practical session is used to allow the students to practice with the materials taught. However, the students are also expected to work on exercises at other times. Programming can only be learned by practicing a lot. Many exercises will be made available to the students for this purpose.

The topics covered will include:
* Advanced object orientation
* Functional programming in Python
* Iterators & Generators
* Program design, style & Design Patterns
* Debugging, testing & robust programming
* Advanced data processing & data structures
* Plotting & visualization

Compulsory Reading
Nothing is compulsory, programming is learned by doing, not by reading. However, many materials will be made available via Blackboard at the start of the course.

Recommended Reading
Most books on advanced Python programming are helpful. One freely available book, for example, is "Think Python" by Allen Downey, for which especially the later chapters are relevant.

Prerequisites
Basic Programming, Data Structures and Algorithms (Python)
Timetable information
800829-B-6|Advanced Programming for CSAI
Written test opportunities
Omschrijving/DescriptionToets/TestBlok/BlockGelegenheid/OpportunityDatum/Date
Written test opportunities (HIST)
Omschrijving/DescriptionToets/TestBlok/BlockGelegenheid/OpportunityDatum/Date
Computertentamen (60%) / Computer Exam (60%)OTH_01SM 2112-06-2019
Computertentamen (60%) / Computer Exam (60%)OTH_01SM 2203-07-2019
Required materials
-
Recommended materials
-
Tests
Computer Exam (60%)

2 Assignments (40%)

Final Grade

CloseHelpPrint
Kies de Nederlandse taal