EL2310 Programmeringsteknik 7,5 hp

Scientific Programming

Scientific Programming is a programming course tailored for the Systems,
Control and Robotics program. The aim is to ensure that everyone can use
MATLAB, which will be used in many of the coming courses, as well as
program in C/C++.

The examination of this course is through projects that should be solved
individually. There is one project for MATLAB, one for C and one for
C++. Each project is proceeded by an optional lab that provides an
additional opportunity to train before the project.

The theme for the projects are mainly robotics. Over the past years, algorithms
and methods such as path planning with potential fields and
probabilistic road maps, scan matching and the control of robot
manipulator arms have been investigated.

Solving the projects requires not only the ability to program, but to
analyse a problem and to go from a mathematical formulation to an
algorithm and then to an implementation. Finally, and just as
importantly, an evaluation should also be carried out to make
sure that the implementation works as expected.

  • Utbildningsnivå

    Avancerad nivå
  • Huvudområde

    Elektroteknik
  • Betygsskala

    P, F

Det finns inget planerat kurstillfälle.

Lärandemål

Målet med denna kurs är att ge deltagarna grundläggande kunskap inom programmering och då specifikt inom MATLAB, C och C++.

Efter slutförd kurs skall deltagagarna

  • kunan demonstrera och diskutera grundläggande koncept inom programmering så som loopar, rekursion, minneshantering och objectorienterad programmering
  • kunna läsa in, processa och visa data i MATLAB
  • lösa problem och implementera algoritmer i MATLAB
  • vara tillrckligt duktiga på MATLAB för att förstå program skrivna i MATLAB och självständigt lära sig om mer avancerade avancerad användning av MATLAB
  • kunna läsa in och processa data i program skrivna i C och C++
  • lösa problem och implementera algoritmer i C och C++
  • förstå vad enklare program skrivna i C och C++ gör, dvs kunna tillgodogöra sig och analysera befintlig kod
  • kuna ändra kod, rätta fel och bygga vidare på existerande kod i MATLAB, C och C++

Kursens huvudsakliga innehåll

Kurser fokuserar på att ge deltagarna verktygen som behövs för att arbeta inom forskning och utveckling i en miljö där datorer blir alltmer viktiga. För att kunna instruera datorer behövs programmering.

Följande täcks inom kursen:

  • Grundläggande programmeringskoncept (variabler, funktioner, objekt, klasses, etc)
  • Grundläggande programmering, input/output av data, processing av data och visualisering i MATLAB
  • Grundläggande programming, input/output av data och beräkningar i C/C++ and grundläggande koncept inom objektorienterade programmering.

Kursupplägg

Den exakta fördelningen av föreläsningar kommer att uppdateras under kursens gång, men en ungefärlig fördelning är:

  • Introduktion: innehåll och otiverande exempel [F1]
  • MATLAB som verktyg och hur man kan programmera i MATLAB [F2-F5]
  • Programmering i C [L6-L12]
  • Programmering i C++ [L13-L16]

Behörighet

För kurser som läser enstaka kurser: 120hp och dokumenterade Engelska B eller motsvarande

Rekommenderade förkunskaper

None required, but without any programming experience at all the student will need to work very hard.

Litteratur

Det finns ingen kursbok. Föreläsningsanteckningar distribueras online

För de studenter som trots allt önskar en bok rekommenderas

  • MATLAB
    F. Gustafsson och N. Bergman, Matlab for Engineers Explained, Springer Verlag, 2003 (ISBN 1-85233-697-8)
  • C
    Kernighan and Ritchie, The C programming language, 2nd edition, Prentice Hall (ISBN 0-13-110362-8)
  • C++
    Stroustrup, The C++ programming language, Addison Wesley

Examination

  • LAB1 - Programmering i MATLAB, 2,5, betygsskala: P, F
  • LAB2 - Programmering i C, 2,5, betygsskala: P, F
  • LAB3 - Objektorienterad programmering, 2,5, betygsskala: P, F

Krav för slutbetyg

För att klara kursen måste studenten slutföra tre projekt inkl hemuppgifter, MATLAB, C och C++ individuellt.

Ges av

EECS/Intelligenta system

Kontaktperson

Ramviyas Nattanmai Parasuraman <ramviyas@kth.se>

Examinator

Patric Jensfelt <patric@kth.se>

Övrig information

The course is mainly a so-called transition course and should not be

read by students who already read:

DD2310 Javaprogrammering för Pythonprogrammerare

DD2385 Programutvecklingsteknik             

DD2387 Programsystemkonstr. m. C++

DD1320 Tillämpad datalogi

DD1321 Tillämpad programmering och datalogi

DD1322 Tillämpad programmering och datalogi, del 1

DD1324 Tillämpad programmering och datalogi, del 2

DD1332 Objektorienterad programmering

DD1343 Datalogi och numeriska metoder, del 1

DD1345 Grundläggande programmering och datalogi   

DD1346 Objektorienterad programkonstruktion

Påbyggnad

There is a large number of programming courses at KTH.

Versionsinformation

Kursplan gäller från och med HT2015.
Examinationsinformation gäller från och med VT2019.