T-106.6200 Special Course in Software Engineering
Fall 2015
Introduction to Algorithmic Problem Solving and Programming Contests (1-5 cr)
We have moved the course web pages to MyCourses. In addition, the course code and name have changed and the new code and name are CSE-E5001 - Special Course in Software Systems and Technologies (1-10 cr). Thus, check the latests news from here: https://mycourses.aalto.fi/course/view.php?id=10921
The following is outdated
Spring 2015
T-106.6200 Special Course in Software Engineering: Introduction to Algorithmic Problem Solving and Programming Contests (3 cr)
Course outline
This course is meant primarily for School of Science students with some Computer Science background.
We are interested in following groups:
math proficient students (especially with background in math olympics/math competitions) willing to learn programming and algorithmic techniques
computer science students willing to learn problem solving techniques
all students willing to participate in algorithmic competitions
Prerequisites:
basic programming in ANY of C, C++, Java, Pascal, Python
basic algorithms / data structures knowledge
algorithm analysis (big-O notation)
Learning objectives / aim of the course:
Proficiency in solving algorithmic problems.
Programming competition related skills:
understanding the problem statement (problem decomposition),
efficient implementation,
efficient testing,
efficient debugging,
teamwork.
Preparing for programming competitions:
NCPC (Nordic Collegiate Programming Contest),
NWERC (North West European Regional Contest),
hopefully ICPC World Finals.
Registration
Enroll to the course by sending an email with topic "T-106.6200 registration" to lecturers Przemysław Uznański (przemyslaw.uznanski at aalto.fi) & Ari Korhonen (ari.korhonen at aalto.fi). Register before Tuesday Feb 24th.
You must provide your
full name
student number
major topic (or study program) and study background (the relevant courses you have done)
experience on the following topics (on a level 'never heard'/‘I have heard about it’/’I have passed a course’):
sorting,
priority queues,
hashing,
balanced search trees,
bin packing,
dynamic programming,
greedy algorithms,
graphs:
representations (Adjacency List/Matrix),
searching in graphs (DFS, BFS),
advanced topics (MST, SSSP, MFP)
email address
in the registration email.
Grading
The course consists of lectures and assignments. To pass the course you must pass the assignments. The grading scale will be pass/fail.
Schedule
6.3.2015 A106 15-16 T7 16-18
13.3.2015 T7 15-18
20.3.2015 T7 15-18
27.3.2015 A106 15-16 27.3.2015 T7 16-1824.4.2015 T7 15-18 (no meeting, but online contest) cancelled
8.5.2015 T7 15-18
15.5.2015 T7 15-18
22.5.2015 T7 15-18
Exceptions:
3.4.2015 (Easter)
10.4.2015 (Exam week?)
1.5.2015 (Vappu)
Assignments:
Examples of problems:
ideas for the rest of the course:
dynamic programming (memoization, recursion)
handling STL
efficient graph handling
geometric problems
text problems
Material
This is a special course and there is a lot of material available, but no textbook that is used as the basis of the course.
Supplementary material is referred to on the course slides.
Similar courses on the web: