Full Title:Computer Programming for Musicians
Language of Instruction:English
Module Code:PROG M9001
Credits: 5
Valid From:Semester 1 - 2014/15 ( September 2014 )
Module Delivered in 1 programme(s)
Module Description:The primary aim of this module is to provide the student with a comprehensive foundational knowledge of procedural music programming at the symbolic level; this will be done through the medium of the C programming language and the Csound and MIDI music representation formats. An additional goal is to introduce the student to the development of basic web applications. Musical illustrations and exercises will be given at each stage of the course. This module prepares the student for the more advanced low-level audio programming in Computer Programming for Audio Applications.
Learning Outcomes:
On successful completion of this module the learner should be able to
  1. display a foundational knowledge of procedural programming
  2. create programs to generate, search, and process musical data
  3. design basic dynamic websites for generative and MIR applications
  4. design web-based music applications which utilise the potential of a variety of programming/development resources

Module Content & Assessment

Indicative Content
• Communicating with computers Number systems: Decimal, Hexadecimal, and Binary; Bits and Bytes Fundamental programming constructs: Sequence; Iteration; Choice Creating a simple program in C: Editing; Compiling; Linking; Running • Preprocessor directives main(), #include Comments Data types and Variables The ‘while’ loop; The ‘do-while’ loop; The ‘for’ loop Relating programming constructs to musical constructs • The ‘if’ statement; Equalities; The if-else construct; The switch statement Musical applications of the modulus operator and the random number generator ‘printf’ and ‘scanf’ - organising input and output • File I/O Generative applications System calls to external programs • Functions: declaration and function bodies; return values Passing parameters Scope of variables • Arrays and strings Addresses and their meaning • Structures; Arrays of structures Unions • Pointers; Arrays of pointers Memory management • Computer Representation of Musical Data The MIDI Protocol; MIDI Programming: Generative and Pattern Matching applications The Standard MIDI File: Reading, writing and processing SMFs • Web Applications HTML basics Dynamic web pages using a scripting language (PHP) Forms Using HTML, PHP, C and Csound / SiMIDI (a MIDI library) in combination Web-based generative, pattern matching and Music Information Retrieval applications
Assessment Breakdown%
Course Work100.00%

Full Time

Course Work
Assessment Type Assessment Description Outcome addressed % of total Marks Out Of Pass Marks Assessment Date Duration
Project Major Music Programming Project 2,3,4 50.00 0 0 Sem 1 End 0
Project Minor music programming assignment 1,2 25.00 0 0 Week 9 0
Class Test The purpose of this test is to assess the student's grasp of basic programming constructs and syntax. 1 25.00 0 0 Week 6 0
No Project
No Practical
No End of Module Formal Examination
Reassessment Requirement
A repeat examination
Reassessment of this module will consist of a repeat examination. It is possible that there will also be a requirement to be reassessed in a coursework element.

DKIT reserves the right to alter the nature and timings of assessment


Module Workload & Resources

Workload: Full Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Practical Lab-based practical combining theory and practice 3.00 Every Week 3.00
Directed Reading No Description 3.00 Every Week 3.00
Independent Study No Description 2.00 Every Week 2.00
Total Weekly Learner Workload 8.00
Total Weekly Contact Hours 3.00
This course has no Part Time workload.
This module does not have any book resources
This module does not have any article/paper resources
This module does not have any other resources

Module Delivered in

Programme Code Programme Semester Delivery
DK_HMUSC_R Master of Arts/Master of Science in Music Technology 1 Mandatory