Syllabus
Objectives |
Grading |
Policies |
Academic integrity |
Remarks
Main class objectives
This course introduces dynamic Web programming/scripting using
Perl and CGI. Students learn how to publish their
applications using the Web's client-server model. The
CGI module is used to create client-side graphical
user interfaces, while the DB_File and the DBI modules
are used to for embedded and relational database
back-ends. The course includes hands-on assignments
and a project. Topics to be covered will include:
- Programming in the UNIX (Linux, MacOSX) environment
- Shells: bash, tcsh
- Text editing: vi, emacs
- Unix process control
- Perl syntax
- Style and documentation
- File management
- Perl control structures
- Basic data types and data structures: scalars, lists, hashes
- Modules and CPAN
- HTTP, HTML and CGI
- The CGI module
- Subroutines, and encapsulation
- Call by value and by reference
- Scoping, local and global variables
- Complex data structures with hashes, arrays, and references
- Regular expressions
- System interaction
- Debugging and profiling
- Introduction to objects and methods
- The DB_File module and tied data structures
- SQL, MySQL and the DBI module
Additional topics may be covered based on student needs and
interests.
Top
Tentative grading
Component |
Weight |
Notes |
Lab Assignments |
30% |
Work during and after section,
turn in following week |
Project |
40% |
Three checkpoints and one final projects, 10% each |
Exam(s) |
30% |
May be split into a midterm quiz (10%) and a final exam (20%). Format to be announced |
Extra credit |
0-5% |
Available for outstanding participation
in lecture, section, and online discussions |
Top
Class policy
- The main communication medium outside of class is the Oncourse discussion
board. Students are expected to post their questions on the board,
answer other students' questions, post pointers to relevant technology
news (do NOT copy and paste news articles!), and check the board daily
for announcements. Postings must be signed in order to get
participation credit. Email is to be used only for confidential matters.
- Instructors cannot debug code via email. If you need help debugging,
the best option is to go to office hours.
If you cannot go to office hours and can narrow down the bug
to a small snippet (say 2-3 lines) of code, you can post a question
on the Oncourse discussion forum. But one should never post an entire
script or extended code (see academic integrity).
- Students are responsible for making backups of all of their work! This
includes any assignment and other materials you produce.
- Students are responsible for the safe and ethical use of class
accounts on shared servers, according to university policy and
copyright law, and for the sole purpose of carrying out class assignments.
Accounts will be monitored and any abuse will be reflected in the grades.
- Students are responsible for assigned readings PRIOR to class
discussions.
- Students are expected to attend class in order to do well in the course.
- If you miss class, it is your responsibility to find out about any
announcements or assignments you may have missed.
- If your cell phone rings during class, you owe $1 to the shame fund.
Proceeds will be donated to a charity at the end of the semester.
- Late assignments will incur a penalty of 50%
within 24 hours of the deadline, and no
partial or make-up credit will be available after that.
- Extenuating circumstances will normally include only serious
emergencies or illnesses documented with a doctor's note.
- Grades will be given out via Oncourse only.
- The instructor may take into account class trends
in the assignment of final grades, but only to increase grades.
Top
Academic integrity
The principles of academic honesty and professional ethics will be
vigorously enforced in this course, following the IU Code of Student
Rights, Responsibilities, and Conduct, the School
of Informatics Academic Regulations, and the CS Department
Statement on Academic Integrity.
This includes the usual standards on acknowledgment of help, contributions
and joint work, even when you are encouraged to build on libraries and
other software written by other people. Any code or other assignment you
turn in for grading and credit must be your individual work (except for
group projects). Even if you work with a study group (which is encouraged),
the work you turn in must be exclusively your own. If you turn in work done
together with, or with the assistance of, anyone else other than the instructors,
this is an instance of cheating.
Cases of academic misconduct (including cheating, fabrication, plagiarism,
interference, or facilitating academic dishonesty) will be reported to the
Office of the Dean of Students. The typical consequence will be an
automatic F grade in the course.
Your submission of work to be graded in this class implies acknowledgement
of this policy. If you need clarification or have any questions, please see
the instructor during office hours.
Top
Final remarks
We would like to hear from anyone who has a disability
that may require some modifications of seating, or other class requirements
so that appropriate arrangements can be made. Please see the instructor after
class or during office hours.
We would like to know early in the semester of any possible
conflicts between course requirements/deadlines and
religious holy days or holydays,
so that accommodations can be made. Please see the instructor after
class or during office hours.
We welcome feedback on the class organization, material,
lectures, assignments and exams. You can provide us with constructive
criticism via the discussion forum. Please share your comments and
suggestions so that we can improve the class.
Top