Instructor: Adam Dingle
This course is a fast-paced introduction to programming and to data structures and algorithms, with a strong emphasis on learning to write working code. It assumes no previous programming experience.
The course has two major goals.
First, we will learn the Pascal programming language, mostly in the first six weeks of the course. Specifically, we will use the dialect of Pascal understood by the Free Pascal compiler (but without any of its object-oriented extensions: classes, methods and so forth).
Second, we will study fundamental data structures and algorithms and learn to analyze their computational complexity.
Throughout the course students will complete many programming exercises in Pascal, both to implement the algorithms we study and also to solve a wide variety of other programming problems.
The weekly lecture for this class takes place every Tuesday from 9:50 - 12:05 in room S4. The first lecture will be on Tuesday, October 10.
There is also a weekly tutorial ("cvičení") every Tuesday from 15:40 - 17:10 in the laboratory SW1. In the tutorial, we will solve various programming problems together. Each student will sit at a workstation where they can write code during the discussion. The first tutorial will be on Tuesday, October 10.
Finally, there is an optional weekly practice session ("praktikum") every Wednesday from 17:20 - 18:50 in the laboratory SU1. The practice session is like the tutorial, and will give you even more practice in solving problems by writing code. The first practice session will be on Wednesday, October 18.
This is a pass/fail course: you will not receive a numeric grade.
To pass this class, you must fulfill the following requirements by February 18, 2018 (the end of the exam period):
Complete a number of programming
exercises through the semester. I will assign these exercises
weekly, and you can submit your solutions to the ReCodEx
automated grading system.
To pass, you will need to earn
at least 140 points, i.e. 70% of the points that are possible
for the 20 exercises that were assigned through December. (During
January I have assigned some additional ReCodEx exercises that may
allow you to earn extra points if you have fallen short.)
Pass a written exam at the end of the semester. This exam will take place on Tuesday, January 23rd from 10:30 – 12:45 in room S4.
Write a program in Pascal as a
semester project. Your program should accomplish something that is
interesting, cool, or fun and can be 100-300 lines long, or longer
if you like. Here are some
possible ideas
for projects.
I
highly recommend that you submit your program to me by the week of
February 4. That
will give me time to give you feedback and for you to revise your
program if necessary. I will not accept any work submitted after
February 18th.
Regularly attend the lectures and tutorials and participate in class.
P. K. McBride, Pascal Made Simple (Butterworth-Heinemann, 2011)
Cormen, Leiserson et al, Introduction to Algorithms, Second Edition (MIT Press, 2001) (selected chapters)
There are many copies of Introduction to Algorithms in the MFF library on the first floor above the computer lab.
This is a rough map of the ground we plan to cover in this class, with plenty of interesting twists and turns along the way.