Programming Skills 

On this page you will find information about the course "Programming Skills" (1002WETPRV) for the second semester of the 2014-2015 academic year at the University of Antwerp.

This page will be updated shortly to reflect the 2015-2016 academic year.

This page is written in English for the benefit of foreign Erasmus students.


Contact information

Textbook

The textbook for the course is A Primer on Scientific Programming with Python by Hans Petter Langtangen. Both the 2014 fourth edition and the earlier third edition can be used for this course.

Resources (errata, example programs) for both editions of the textbook can be found at http://hplgit.github.io/scipro-primer/.


Exams
First Session

Your total score for this course depends on the following:

  • Permanent evaluation: Projects Python
  • Permanent evaluation: Projects MATLAB
  • Permanent evaluation: Defense projects Python
  • Permanent evaluation: Defense projects MATLAB
  • Examination on essential theory

To pass the course, you need to obtain an overall score of at least 50% and a score of at least 50% on the individual Python and MATLAB projects and defenses. You will also have to submit all projects and attend all defenses, if not you will get an "absent" (AFW) grade.

Weights for the different parts of the course:

  • Project 1: 25%
  • Project 2: 30%
  • Project 3: 30%
  • Theory (oral) Examination: 15%
Second Session

To be done (hopefully not)



Theory
All lectures (in PDF format) can be found online (on Blackboard) and at the location announced in class.


Lab Sessions

In each lab session, you will be given some assignments and/or a project. A typical lab session will take two hours and have the following structure:

  • discussion of solution of one or more assignments of the previous lab session (approximately 30 mins);
  • demonstration of the new-learned Python constructs in MATLAB (approximately 30 mins);
  • solving assignments individually (approximately 45 mins to 1 hour);
  • (if applicable) introduction of project (approximately 15 mins)
All assignments are made individually, projects are solved in groups of two students.

Assignments

These assignments are small exercises to familiarize you with programming concepts. You are expected to finish the assignments before next week's lab session. In the next lab session, one or more of the more challenging exercises will be explained at the beginning of the class, if necessary. Your solutions are not graded.

Projects

At the given times in the schedule below, a new "project" is enabled on Blackboard. On every project you will work in pairs of two students.

A project solution will include a program in which you have implemented your solution. Your program will be evaluated as follows:

  • it produces the correct results;
  • it is well-structured;
  • it is well-documented.

For every project, you submit a small report of the project (+- 1000 words, as a PDF). A report typically consists of (and will be graded on) the following:

  • a summary of everything you implemented;
  • an explanation of how you arrived to your solution (follow the domain/mathematical/programming-phases as described in the course);
  • an interpretation and discussion of the simulation results (outcomes, plots, etc, ...).

During the semester, you will be evaluated for every project. At these evaluation moments, you are expected to be able to answer practical (typically using your project solution as context) as well as theoretical questions, as these are your only graded evaluation moments. You will immediately receive feedback.

Your first task will be to form groups of two and subscribe your group on Blackboard. Both students of your group navigate to working tools, then groups to subscribe.

Tools

Throughout the course we will use the following tools that are installed in the pc lab. Install them on your personal computer (not required) as follows (using Windows is highly recommended):

  • Python 2.7
    1. Download and install the Anaconda Scientific Python Distribution. It includes Python 2.7, most of the Python libraries we use in this course and the Python editor Spyder.
    2. Install the SciTools library
      • For Windows:
        1. Open a console (Windows button+R, then type "cmd" and press enter)
        2. Execute the following command:
          conda install -c krisvanneste scitools_no_easyviz
        3. When asked to proceed (y/n), type "y" and press enter
      • For Mac/Linux:
        1. Open a console
        2. Execute the following command:
          conda install -c asmeurer scitools
        3. When asked to proceed (y/n), type "y" and press enter
        4. Then, execute the following command:
          conda update numpy
        5. When asked to proceed (y/n), type "y" and press enter
  • MATLAB
    • Download and install MATLAB using these instructions.
    • You need Java to be able to use the MATLAB downloader.

Install these tools before the first lab session! If you run into installation problems, contact Bart Meyers.

Blackboard caveats

The burden of timely submission of your work on Blackboard is on you! (late submissions are not accepted)

  • Beware that Blackboard's clock may differ slightly from that on your computer. Allow a margin for submission.
  • Be sure to check that your submission was actually made. Check for example under Grade Centre whether your (as yet unmarked) submission shows up.

(tentative) Planning

Week

Date

Type

Room

Subject

1Monday 9 February 13:45 - 15:45Theory G.U.244Course introduction
1Tuesday 10 February 10:45 - 12:45Lab sessionG.US.103Introduction to Python and MATLAB
1Tuesday 10 February 16:00 - 18:00Theory G.U.247Chapter 1: computing with formulas (types, variables)
2Monday 16 February 13:45 - 15:45Theory G.U.244Chapter 1: computing with formulas (types, variables, comments, formulas and formats)
2Tuesday 17 February 10:45 - 12:45Lab sessionG.US.103Debugging, Assignments 1
2Tuesday 17 February 16:00 - 18:00Theory G.U.244Chapter 2: loops and lists (while)
3Monday 23 February 13:45 - 15:45Theory G.U.244Chapter 2: loops and lists (while, for)
3Tuesday 24 February 10:45 - 12:45Lab sessionG.US.103Testing, Assignments 2, Project 1
3Friday 27 February 13:45 - 15:45Theory G.U.247Chapter 2: loops and lists (for, lists)
4Monday 2 March 13:45 - 15:45Theory G.U.244Chapter 2: loops and lists (nested lists, slices, tuples)
Chapter 3: if/then/else
Matlab version of all control/data structures seen upto now
4Tuesday 3 March 10:45 - 12:45Lab sessionG.US.103Assignments 3
5Monday 9 March 13:45 - 15:45Theory G.U.244Chapter 3: functions and branching
5Tuesday 10 March 10:45 - 12:45Lab sessionG.US.103Project 1 questions
6Sunday 15 March 23:55 Deadline Project 1
6Monday 16 March 13:45 - 15:45Theory G.U.244blockly
functions as function parameters, main
Matlab: functions
6Tuesday 17 March 10:45 - 12:45Lab sessionG.US.103Assignments 4, Project 2
6Friday 20 March 13:30 - 19:30Defense Project 1
7Monday 23 March 13:45 - 15:45Theory G.U.244Chapter 4: inputdata and modules (reading input, making modules)
7Tuesday 24 March 10:45 - 12:45Lab sessionG.US.103Assignments 5
8Monday 30 March 13:45 - 15:45Theory G.U.244Chapter 5: array computing and curve plotting (arrays, plotting)
8Tuesday 31 March 10:45 - 12:45Lab session G.U.244Assignments 6
Easter holiday
9Monday 20 April 13:45 - 15:45Theory G.U.244Chapter 5: array computing and curve plotting (higher dimensional arrays)
Appendix A: sequences and difference equations
9Tuesday 21 April 10:45 - 12:45Lab sessionG.US.103Project 2 questions
9Sunday 26 April 23:55 Deadline Project 2
10Monday 27 April 13:45 - 15:45Theory G.U.244Chapter 6: exceptions, files, strings and dictionaries
10Tuesday 28 April 10:45 - 12:45Lab sessionG.US.103Assignments 7, Project 3
10Wednesday 29 April 13:30 - 19:30Defense v.008 Project 2
11Monday 4 May 14:15 - 15:45Theory G.U.241Appendix B: introduction to discrete calculus
11Tuesday 5 May 10:45 - 12:45Lab sessionG.US.103Assignments 8
12Monday 11 May 13:45 - 15:45Theory G.U.244Appendix C: differential equations
What comes next?
Course overview/conclusion
12Tuesday 12 May 10:45 - 12:45Lab session No class, Seminar "Aardwetenschappen / bodemkunde"
13Monday 18 May 13:45 - 15:45Theory G.U.244Project 3 questions
13Tuesday 19 May 10:45 - 12:45Lab sessionG.US.103Project 3 questions
13Sunday 21 June 23:55 Deadline Project 3
Thursday 25 June 09:30 - 18:00Defense Project 3/Exam
Friday 26 June 09:30 - 18:00Defense Project 3/Exam

Maintained by Hans Vangheluwe. Last Modified: 2016/02/15 12:11:47.