CSCI N342 Server-side Programming for the Web Teaching/Learning Goals
The Who and What of N342
Who - Anyone with an interest in understanding implementation of web
based systems. Background should include one semester of programming
that covers C, C++, Java style languages and basic data structures such
as arrays (C201 or other programming experience is sufficient). The course is of
interest to anyone seeking skills for building Web systems.
What - The lecture topics cover basic networking protocols and
standard practices for implementing web based systems. Main topics include
server setup, HTML, client and server side programming.
Weekly exercises closely complement lecture topics. The exercises rely
heavily upon the use of several programming languages to test one's understanding
of concepts discussed in lecture. While the purpose of the course is not
to provide language training for programmers, active learning involvement
is best promoted through implementing working systems which, for this course,
translates to writing programs. While demanding and numerous, all programming
exercises are short, usually one or two pages. A project offers the opportunity
to delve deeper into an interesting topic selected by the instructor or
class, possible projects include stock trading, a user support system,
data acquisition. More specific information can be obtained by reading
the following discussion of course goals or by examining exercises listed
as home works on the course syllabus.
CSCI N342 Learning Goals
The learning goals of each computer science course strive to capture
intended learning outcomes. The goals are expressed using the terms that
follow. These terms describe the level of familiarity (most to least) with
respect to various kinds of material and procedures.
The N342/A548 learning goals cover important areas recommended jointly
in a report by the Association of Computing Machinery (ACM) and the Computer
Society of the IEEE in 1991 for university computing curricula. These international
organizations were established to promote academic and professional excellence
in the computer sciences. The complete baccalaureate curricula list consists
of nine subject areas, of which a portion are covered in this course, primarily
those areas which better prepare the student to succeed in subsequent Indiana
University Southeast computer science courses and as professional computer
scientists. Several supplementary areas are covered that have developed
since publication of the curricula report. Many of these subjects listed
below will often recur in subsequent courses and at a level requiring further
Mastery means the student will be able to exhibit knowledge of the
material and/or skill with the procedure, in a new but appropriate context,
even when not instructed to do so.
Familiarity means the student will be able to answer questions about
the material and/or to use the procedure, in a new but appropriate context,
when instructed to do so.
Exposure means the student will have heard the term and/or seen
the procedure, but may not be able to discuss or use it effectively without
NC4. The web as an example of client-server computing (9)
NC5. Building web applications (12)
NC1. Introduction to net-centric computing (2)
NC2. Communication and networking (1)
IM2. Database systems (1)
NC3. Network security (1)
IM4. Relational databases (1)
IM5. Database query languages (1)
IM6. Relational database design (1)
Design of N342/A548 to Achieve These Goals
Computer science demands competency in a range of skills. Therefore,
students benefit from the guided practice in the environment of a university
class. To facilitate this, N342/A548 includes the following:
Students complete weekly programming assignments aimed at developing the
foundational skills. Assignments are graduated in difficulty as is the
amount of programming guidance provided the student which decreases through
Class time is divided between instructor lecture and discussion. Individual
student questions serve to guide the class discussion.
Structured programming methodology is used throughout the course to assist
students in visualizing assignments and solutions, and managing the details
of writing Web client/server programs.
Programming exercises are available as Web-pages and are discussed in class
when assigned using the pages available to the student.
Most questions arise when students are working on exercises outside of
class. Students are encouraged to contact the instructor directly or by
emailing their questions and code of the troublesome exercise for guidance.
In recognition that problem solving is often an iterative process, assignments
that are less than perfect can be submitted for instructor evaluation,
refined and resubmitted for additional credit.
Document last modified: