Syllabus

Title
1838 Computer Programming Lab
Instructors
Anton Yeshchenko, M.Sc.Ph.D.
Contact details
Type
PI
Weekly hours
2
Language of instruction
Englisch
Registration
09/02/20 to 10/09/20
Registration via LPIS
Notes to the course
Subject(s) Bachelor Programs
Dates
Day Date Time Room
Monday 10/12/20 08:45 AM - 11:15 AM Online-Einheit
Wednesday 10/14/20 08:45 AM - 11:15 AM Online-Einheit
Monday 10/19/20 08:45 AM - 11:15 AM Online-Einheit
Wednesday 10/21/20 08:45 AM - 11:15 AM Online-Einheit
Wednesday 10/28/20 08:45 AM - 11:15 AM Online-Einheit
Monday 11/02/20 08:45 AM - 11:15 AM Online-Einheit
Wednesday 11/04/20 08:45 AM - 11:15 AM Online-Einheit
Monday 11/09/20 08:45 AM - 11:15 AM Online-Einheit
Wednesday 11/11/20 08:45 AM - 11:15 AM Online-Einheit
Procedure for the course when limited activity on campus

Plan B for this course:

1. Reduced in number or completely canceled sessions on campus (with attendance part of the grade transferred to other activities)

2. Synchronous (short sessions) and asynchronous learning of the course material.

3. In case consultation sessions on campus are allowed, the consultations are scheduled (same timeslots as a class schedule) for a limited number of participants (for those who need to clarify the content of the current sessions).

 

Contents

The course is about algorithms and data structures, that would be the basic course on any computer science program, or any tech-interview.

 

You will be challenged on the way to think about problems in real world and computing, touching next topics:

  1. Binary search, big O (complexity)
  2. Selection sort, Array, linked lists
  3. Recursion, Memoization
  4. Quicksort, divide and conquer
  5. Breadth first search, depth first search, graphs,
  6. Directed graphs, weighted graphs, Dijkstra algo
  7. Greedy algorithms
  8. Dynamic algorithms (optional)
  9. K nearest neighbours (optional)
  10. Strings algorithms (optional)
 

Learning outcomes

After completing this lecture, students will be able to: 

  •    Think of any problem in terms of algorithms
  •  Use advanced data structures, and algorithms 

 

Attendance requirements

Attendance is mandatory. 
In order to pass this course, students are required to have an attendance of at least 80%. It is therefore allowed to miss max. 2 classes

Every missed lecture is - (minus) 5% potential percent of your grade in active participation and in-class exercises

Teaching/learning method(s)

Short presentations of algorithms and algorithmic thinking rich with exercises and tasks on logic.

Assessment

8pt - Active class participation
        - Regular attendance, taking part in discussions, actively working on various programming tasks during the lecture. 

32pt - In class exercises
        - Algorithm exercises solved during the class

40pt - Homework
        - Programming exercises
20pt - Final exam (20-30 min)

   - on the last lecture exam about all covered in the course in the written form.

Grading scale: 

100% - 90% = Excellent
90% - 76% = Good
75% - 61% = Satisfactory 
60% - 50% = Sufficient
49% - 0% = Insufficient

Prerequisites for participation and waiting lists
  • Registration in LPIS (first-come, first-serve)
  • Attendandce on the first lecture (Unless the absence was communicated via email in advance)
    • If you do not attend the first lecture, your place will be given to other students on the waiting list

Prior knowledge:

  • The students are expected to have programming skills in a programming language (e.g. C++, Python, Java...). In case there is a doubt on programming skills, at least the level of  the graduate from the "Principles of Programming" course is strongly expected. If you do not have any programming prior knowledge, please start with the course mentioned above. The course will give exercises and examples in the Python programming language.
  • Interest in logical thinking, computers, and algorithms.

 

At the end of the registration period, available course places (5 are reserved for this) will be allocated to the students on the waiting list who do not yet have a valid registration for the planning point, in order of progress, not according to the waiting list place.

Recommended previous knowledge and skills

A level of expertise in a programming language (C++, Python, or Java)

 

Availability of lecturer(s)

anton.yeshchenko@wu.ac.at

Other


Additional information on MyLEARN.

Course materials will be discussed in class and published after the class has started.

Last edited: 2020-06-29



Back