SYLLABUS
COURSE
TITLE
ALGORITHMS
AND
COMPLEXITY
FACULTY/INSTITUTE
FACULTY
OF
MATHEMATICS
AND
NATURAL
SCIENCES
COURSE
CODE
DEGREE
PROGRAMME
FIELD
OF
STUDY
DEGREE
LEVEL
FORMA
STUDIÓW/STUDY
MODE
1
COURSE
FORMAT
YEAR
AND
SEMESTER
Year
I,
semester
II
and
Year
II,
semester
III
NAME
OF
THE
TEACHER
Prof.
Jan
Bazan,
PhD,
DSc
COURSE
OBJECTIVES
This
is
an
intermediate
level
computer
science
course.
It
is
about
the
design
and
analysis
of
algorithms
for
computational
problems,
and
how
to
think
clearly
about
analyzing
correctness
and
running
time.
PREREQUISITES
Discrete
Mathematics,
Programming
Basics
KNOWLEDGE:
Student
knows
the
main
methods
of
constructing
algorithms,
knows
the
method
of
determining
LEARNING
OUTCOMES
the
computational
complexity
of
algorithms,
knows
the
basic
data
structures
and
basic
algorithms
for
data
structures
processing
SKILLS:
Student
is
able
to
determine
the
computational
complexity
of
a
simple
iterative
algorithm
and
recursive,
is
able
to
use
in
practice
of
the
selected
method
of
constructing
algorithms
COURSE
ORGANISATION
–LEARNING
FORMAT
AND
NUMBER
OF
HOURS
TIMETABLE
Lectures:
30
hours
Classes:
15
hours
Laboratories:
30
hours
COURSE
DESCRIPTION
• Explain
and
use
fundamental
algorithms
and
algorithmic
techniques
(brutal
force
techniques,
greedy
techniques,
divide-‐and-‐conquer
and
dynamic
programming,
randomized
algorithms).
• Explain
the
use
of
big-‐O,
Omega,
and
Theta
notation
to
describe
the
amount
of
work
done
by
an
algorithm,
and
apply
them
to
provide
tight
bounds
on
algorithmic
complexity.
• Abstract
data
structures
• Sorting
and
searching
algorithms.
• Basic
graph
algorithms
METHODS
OF
INSTRUCTION
LECTURES,
CLASSES,
LABORATORIES
AND
consultation
hours
-‐
IN
CASE
OF
STUDENT
GROUPS
OF
15
PEOPLE
OR
MORE;
OTHERWISE
-‐
Consultations
(2
hour/every
week),
homework,
practical
work
REQUIREMENTS
AND
ASSESSMENTS
Examination
• part
1:
One
written
test.
• part
2:
Exercises
to
solve
with
using
a
computer
GRADING
SYSTEM
2,
3,
3.5,
4,
4.5,
5
TOTAL
STUDENT
WORKLOAD
Lecture – 30 hours
NEEDED
TO
ACHIEVE
EXPECTED
Classes - 15 hours
LEARNING
OUTCOMES
EXPRESSED
Laboratories - 30 hours
IN
TIME
AND
ECTS
CREDIT
POINTS
Preparing for class – 20 hours
Preparing for laboratories – 40 hours
ECTS
-‐
6
LANGUAGE
OF
INSTRUCTION
Polish, English
INTERNSHIP
-‐-‐-‐
MATERIALS
REQUIRED
BOOKS/READINGS:
• Anany
V.
Levitin,
Introduction
to
the
Design
and
Analysis
of
Algorithms,
Addison
Wesley
• T.
H.
Cormen,
C.
E.
Leiserson,
R.
L.
Rivest
and
C.
Stein,
Introduction
to
Algorithms,
MIT
Press
• Walter
Savitch,
JAVA,
An
introduction
to
Computer
Science
&
Programming,
Prentice
Hall