IT3105 Web Page - Autumn 2017
This course teaches Artificial Intelligence programming via
several medium-sized AI projects involving concepts and methods such as best-first search,
minimax with alpha-beta pruning, constraint reasoning, propositional logic,
first-order predicate logic, decision-tree learning, evolutionary algorithms,
neural networks, Bayesian classifiers, boosting, bagging and particle
swarm optimization...to name just a few. The exact topics can vary from year to year.
There will be no tight connection to a single
programming language, and there will not be a lot of lecture time
devoted to language learning. We will dive right in to sizeable
projects, some of which may have a recommended language
but normally no strict requirement. Students are normally free to use
the language(s) of their choice. However, it is recommended that they choose
a language that supports the formation and manipulation of large sequences
(often nested) of symbols (i.e. mixtures of letters and numbers) such as
"Age(Fred) + 18 = 35 AND Height(Wilma) > 175". Most students choose PYTHON or JAVA.
When instructors provide supporting code, it will normally be in a standard
language such as Python, JAVA, C++ or MATLAB. No machines maintained by the department
will house any of the software needed for this course. Students are expected to download
all relevant software (all of which is free and easily accessible) to their own machines.
The four main topics in this autumn-2017 version of the course will be A* search,
constraint-satisfaction reasoning, deep learning and reinforcement learning. These will
be combined in various ways across 4 different modules, which will be delivered in
three separate demonstration (demo) sessions, with approximately one month separating
This course is definitely NOT one that a student can expect to join late in the
semester or ease into . Work on the first project should begin
immediately after the first lecture.
Each project and module involves considerable
programming effort, so you will need to hit the ground running
at the beginning of each one. Waiting until the last minute (weekend) has
been the demise of many students in this course.
The instructor of this course may use two different media to inform students:
1) This web page and 2) BLACKBOARD. In general, this web page is used as a repository for
course materials and relatively static schedule information, while BLACKBOARD is used as
a repository for student deliveries, a sign-up sheet for demo sessions, a medium
for dissemination of certain interim grades (such as those for
individual projects), and as a bulletin board for important messages (such as
lecture cancellations, changes to demo sessions, etc.).
Grading, Delivery and Attendance Policies
It is VERY important that you read the
Lecturer and Coordinator: Keith Downing (keithd<at>ntnu.no)
Student Assistants (UA = Undervisningsassistant):
- Carl Andreas Julsvoll (julsvoll<at>gmail.com) (UA)
- Sondre Stein Hegdal(sondresh<at>stud.ntnu.no) (UA)
- Tobias Pettrem(tobpettr<at>gmail.com)
- Eirik Bertelsen (eiribert<at>stud.ntnu.no)
To contact course instructors and assistants, use their individual
email addresses, not BLACKBOARD .
- Location: Room GL-HB H1 (i.e. Room H1 of "Hovedbygget")
- Time: Tuesdays 14:15 - 16:00 (First lecture: August 22; Final lecture: November 14)
Lab (Help) Hours:
The course lab hours are not used in the traditional sense (of all students meeting
in a room and doing "lab exercises"). The lab hours are simply the times at which our
student assistant(s) are available to help students. In addition, in the rare instance
that an instructor feels the need for extra lectures, (s)he may choose to use the
course lab hours.
- Monday 12:15 - 16 (Room 313, IT-Vest)
- Wednesday 12:15 - 16 (Room 313, IT-Vest)
** Follow Blackboard for room-change announcements.
NTNU's official web page for this class is here
Read previous messages here.