The course "Web Technologies" takes place in February/March 2007.
The last lectures take place on March 30, since students graduating in Spring 2007 may need
time for their thesis. The course will meet
twice per week: Thursdays and Fridays, at 16:30.
Lectures will take place in auditorium 413 of the University of Latvia,
(Raina bulv. 29).
Lab exercises, home assignments and the multiple-choice test
can be done elsewhere and submitted electronically.
- Lab Sessions
Non-mandatory practice sessions will
take place in a computer lab at Accenture, Brivibas 214
on Wednesdays from 18:15 to 21:00.
There you will have chance to do the course assignments under some supervision, and
to share knowledge with instructor and fellow students.
Attending these lab sessions is free of charge and it does not
affect the course requirements or grading in any way, except that those
who sign up for the lab session have responsibility to show up
for these sessions or inform the instructor BEFORE missing any practice session.
More details about the lab sessions will be given shortly before
the start of the course.
- Course target audience
All master level students of Computer Science are welcome;
"Web Technologies" is mostly intended for the 2nd year students. It can be
taken by the 1st year students as well.
If you are not a student in the Master's program in Computer Science at the
University of Latvia, please contact
the instructor to find out, if you can take this course.
LU temporary staff: Kalvis Apsītis (PhD).
kalvis.apsitis at the
Phone: +371 2911 2997
- What are the requirements?
To get a positive grade student must successfully submit
at least 1 individual homework and complete first two lab exercises
by his/her team.
A multiple-choice test and an opportunity to do more than one
individual homework and the 3rd lab exercise is also being offered - this would
count for a higher grade.
- How is the grade computed?
The lab exercises are worth 60 grade points, a multiple-choice test - 16 grade points,
individual homeworks - 24 grade points.
All the grade points
are added for a given student, the total is denoted by N (N=0,...,100).
The grade for the course is the largest integer M such that 10*M does not exceed N.
One CANNOT avoid doing the mandatory part of the course by gathering
grade points for other activities, see the requirements.
Getting a positive grade ("4" or more) requires at least 40 grade points;
it may become necessary to submit more work, if your team's
gradepoints are lost due to submitting the lab exercises late.
- What kind of computer is needed?
For this course a reasonably good PC is recommended, e.g. 80G disk space,
1G RAM, a 3GHz CPU. The parameters can also be smaller than that, but
it could be too slow, if Eclipse, JBoss, MySQL and a couple of browsers
are running simultaneously. All course material is written assuming
Windows XP machines, but it can be easily adopted for Linux as well.
Software needed for this course is mostly freeware or shareware
listed in the installation instructions.
It is better to install it as needed rather than all at once.
- What are the lab exercises?
There is a set of 3 interdependent lab exercises.
They are intended for teams of 2-3 people and have
deadlines. Packaging the solution and
the requirements for successful submission are explained with each lab exercise.
- How are the lab exercises graded?
Lab exercises have "public" JUnit and Selenium tests, which the
teams are responsible for passing entirely.
There can be a few more "private" tests, which do additional checks of the lab
exercise requirements - they
may affect the grade, but passing them is not mandatory,
i.e. team can get a reduced grade for their implementation, if some
"private" tests are not passed.
Each team member gets the same grade for the exercise - up to 20 grade points.
The guidelines for finding the score depends on the lab exercise,
see e.g. Lab 01: Guidelines for Evaluation.
- What is the late policy for lab exercises?
For late submissions the score for the exercise is multiplied
by a common ratio r = 0.9 for each day they are late. I.e.
for being n days late, the total score earned by the exercise is multiplied
If the result is a fraction, the number is rounded
to the precision of 0.01 grade points before being added to the total.
If you submit a code that is not packaged correctly or
does not compile or does not pass all the provided tests,
you get another chance of submitting the project, but the grade
is multiplied by the same ratio r for each extra submission.
- Final discussion
After your team has submitted the lab exercises,
there is a discussion between the project team and the instructor.
Office hours will be set up, and each team will pick a timeslot.
All the team members are expected to understand all portions of the
code they are submitting as their lab exercises and
to be articulate and professional while explaining it to the instructor.
Those students who cannot explain the code they are submitting
or do not show up for the final
discussion can be asked extra questions about various course topics
before their earned grade is recorded.
- What are individual homeworks?
These are small programming assignments on a wide range of isolated topics.
Individual homeworks do not have submission deadline.
- Which individual homeworks you are assigned?
There is a finite list of individual homeworks.
Any student draws 3 numbers from a "hat" provided by instructor;
out of these 3 numbers you can pick one, which becomes your mandatory homework,
the other two numbers can be ignored. This procedure gives you some
freedom picking the homeworks according to your interests.
On the other hand, the instructor can avoid everyone doing the same thing.
- How are the individual homeworks graded?
Each individual homework, which satisfies the described requirements,
gives you 8 grade points. You can submit two extra homeworks
and they also give you 8 points each. You cannot get more than 24 grade
points for individual homeworks. The two voluntary homeworks you can select
as you wish, they do not need to come from the "hat".
- What is the multiple choice test?
Multiple choice test has questions on
theory and skills topics listed in the list of topics.
Answering a test question means finding exactly M correct answers from
given N answer options (N=2...5). The number of correct answers M N
is always known in advance, most often M=1.
- What is the procedure to take the multiple-choice test?
The multiple choice test can be taken from any computer connected
to the Internet. There will be certain time windows,
when the test is available. A student willing to take a test,
registers in the testing system
and tells his/her account name to the instructor.
A typical test has 80 questions and takes up to 120 minutes.
Some standard documentation (e.g. javadocs and specifications)
is explicitly listed and may be used during
the test. If students are aware of other useful documentation,
instructor can add it to the list.
On the other hand, using full text search engines (e.g. Google) or software tools
during the test is strongly discouraged.
Prior to the test sample questions are made available to avoid surprises
regarding the content and the style of the questions.
- Grading of the tests
Raw score S shows, how many questions are answered correctly.
Test is passed, if the raw score S>=72, i.e.
at least 72 questions out of 80 are answered
correctly. The number of points earned is S-64.
E.g. if someone
takes the test three times and gets raw scores of 55, 65 and 75,
then the test is passed from the
third attempt and gives 75-64 = 11 grade points out of 16.
One can improve the grade by taking the test many times.
- Can the lab exercises use alternatives to Java/Spring?
There are many good Web programming frameworks like PHP/CakePHP, Python/ZOPE, ASP.NET,
which guarantee relatively higher speed of the development
than Java/Spring. Nevertheless it is deemed that object oriented Web programming can
be learned on the basis of Java. We encourage you to
try this language; even though you would not need it for anything else.
The only possible alternative to Java is Ruby/Rails - see
- What about the extra credit?
If you like to code and test in Ruby/Rails, your team can submit
an alternative solution to the same 3 lab exercises in Ruby/Rails technology.
It should have your own component testing suite, but
also uses the provided Selenium test suite.
This means Web application with the same behavior, possibly using a different
Web server, a different port and another server-side technology.
The coding might be somewhat faster in Rails, but there is more test
development work for you to do. There should not be any slack on component/unit tests
compared to coding in Java. If you submit a Ruby/Rails version of a lab exercise on time,
you can get a maximum of 25 points for each lab exercise (instead of 20).
The common ratio r=0.9 still applies for every day your team is late and
for each resubmission of incorrectly packaged or wrong solution.
- How are the teams created?
The students create and announce their teams of 2 or 3 people to the instructor.
It should be done BEFORE the deadline of the first
lab exercise. Single person "teams" are also allowed, but the
required amount of work remains the same.
Each team announces one person, which will make the
lab exercise submissions from that team.
- What collaboration is allowed?
When the students are not actually writing code and are not taking
the test there are no limitations of how they can help each other.
Students can discuss all their assignments, draw diagrams, write
and discuss pseudocode, share books and public links
in the Internet, help each other to analyze sample questions for the test.
- What is considered academic dishonesty?
During the coding it is obviously OK to search the Internet
or ask some general questions to others, but one should NOT use
ready artifacts made by other people (or other teams in the case of lab exercises).
In other words, students should not look at others' work on the same problem
while creating their solution.
During the multiple-choice test you can use the explicitly listed
reference materials and documentation.
- Are the evaluations and grades for the course confidential?
Instructor tries to keep everyone's grades confidential.
Grade points should be known only to the student himself/herself.
Due to the grading practicalities people from the same team might
in fact know each other's evaluations.
Students are asked to respect each others' personal data.
- Are the materials copyrighted?
The documents for this course are intended for the WebCT system of the
University of Latvia, so the restrictions imposed by the WebCT apply.
On the other hand, all the sample code is public domain and can be used
everywhere. Same thing applies to the code submitted by students,
if they do not ask the instructor explicitly NOT to make their
solution public or reuse it.
Properly attributing software artifacts to their original authors
(e.g. preserving author identification in the program comments) is encouraged.