CIS Logo SVC Logo

   Computing & Information Systems


Schoology Facebook        Search CIS Site      Tutorials

CS 315 Syllabus

Server-Side Programming

Fall 2016

CIS Department

Saint Vincent College

General Information

  • 3 credits
  • Prerequisite: CS 111, though having another programming course after CS 111 probably helps.
  • Instructor: Brother David Carlson
  • Office: Dupre Science Pavilion, Tenley Hall W217
  • Office hours:
    • Mon, Wed, Fri 9:30 am - 10:20 am
    • Mon, Fri 12:30 pm - 1:45 pm
    • Tue 8:30 am - 11:15 am
    • Tue, Thurs 12:30 pm - 1:30 pm
    • and by appointment
  • Phone: 724-805-2416
  • Email:
  • The CIS lab in W214 of the Dupre science complex will be available according to this schedule that will also be posted on the bulletin board outside our lab.
  • Text: Beginning Node.js, Syed, Basarat Ali; Apress (2014), ISBN 978-1-4842-0188-6.


This course concentrates on designing, writing, installing, and configuring software for Linux and Windows servers. Likely languages to be used include C++, PowerShell, Node.js, and bash. Server-based software projects often provide a service that many users can access simultaneously, often over the network. This software might do powerful things like change the permissions for all users, create a batch of computer accounts, do some processing on the server's web pages, make changes to lock down the server, provide users with diagnostic information, implement a web app, etc. An added challenge is that some of this software has no user interface. Instead, it interacts with other software or files, whether on the original server or on a different one. Successful completion of the course will include accomplishment of a number of such projects. Another topic we hope to cover is the use of git in managing projects and installing software. If time allows, we might also create a library of functions.

Why Take This Course

This course is an elective for CIS majors. Since most of the projects are software projects, it is aimed mostly toward the CS concentration. However, the first project is pretty much an IT project, though it does reveal the intricacies of software packages, especially on the server end.

The Prerequisite

The minimum prerequisite is CS 111. Having another programming course after CS 111 probably helps.

The Text

The text is designed to teach you Node.js, which is server-side JavaScript. Other parts of the course are likely to use C++, bash, and PowerShell. For C++ information you can refer to Software Design Using C++. Basic bash material can be found on my UNIX Information page and at other online sites. Free PowerShell and git materials are readily available as well.

Core Goals

This course contributes especially toward the following core curriculum goals, listed in order of emphasis. Both written and oral communication skills are exercised in this course as students will write program code and documentation that describes clearly what their software does and will work on teams where both oral and written communication are needed. Information literacy skills are used in evaluating online sources when looking for technical information.

  1. To form habits of ordered inquiry, logical thinking, and critical analysis
  2. To develop mathematical skills and quantitative literacy
  3. To develop effective communication skills
  4. To develop skills in information literacy

CIS Department Student Outcomes

This course contributes mainly to the following desired departmental student outcomes listed in order of emphasis.

  1. An ability to use current techniques, skills, and tools necessary for computing practice
  2. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
  3. An ability to apply knowledge of computing and mathematics appropriate to the discipline
  4. An ability to function effectively on teams to accomplish a common goal
  5. An ability to communicate effectively with a range of audiences
  6. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
  7. An understanding of professional, ethical, legal, security and social issues and responsibilities
  8. Recognition of the need for and an ability to engage in continuing professional development

Course Goals and Means of Assessment

  1. By the end of the course the student should be able to write a short, but reliable web app in Node.js.
  2. By the end of the course the student should be able to write scripts in both PowerShell and bash.
  3. By the end of the course the student should be able to manually install and configure a moderate sized, but complex software package on a server.
  4. By the end of the course the student should be able to use git to install a software package, do version control, and work cooperatively on a team project.
  5. By the end of the course the student should have successfully completed several software projects in a small team environment.

These objectives will be assessed mainly through the use of several projects, though quizzes will also be used. Informal discussions with students provide additional feedback.

Methods Used to Reach These Goals

Team projects, some lectures and demonstrations, and discussion are used to attain these goals. Quizzes are used to make sure that students are learning the needed new computer languages and skills. There are no exams in this course as it is primarily a project-oriented course.

Grading and Course Policies

  • 65% Projects
  • 25% Quizzes
  • 10% Final presentations on projects

Letter grades will be given using the scale found in the College Bulletin. Students' project grades will be based on their work on the projects (70%) as well as their teammates' evaluations of their contributions (30%). Final presentations of projects will be done during the final exam period for this course.

Both the instructor and students are expected to do their best to produce a good class and to treat each other with respect. This includes many factors, such as listening when someone else is speaking, trying to understand what others are saying, being of assistance to others, etc. It definitely does NOT include making fun of others. On a practical level, do your best to improve your grade: read the course materials, attend class, contribute positively to your team, ask questions, and try to answer questions. Note that attendance is expected. The policies outlined after this paragraph will be used.

  1. Each unexcused class absence after the first 4 results in 1 percentage point being deducted from the final course grade.
  2. Arriving late for class or leaving early (without a proper excuse) is counted as 1/2 of an absence.
  3. Unexcused absence from more than one-third of the semester's classes results in the failure of the course.
  4. Attendance is used to decide borderline grades at the end of the semester.
  5. Unexcused absence from class results in a grade of zero for any quiz held in that class.
  6. Written documentation (such as a note from a doctor's office or coach of one's sports team) is normally required for an absence to be excused. Always bring a copy of such a note to give to your instructor when you can do so. In special circumstances, check with your instructor, as it is not always possible to get documentation.

Make-up quizzes will be given for excused absences. See your instructor to arrange this.

The course projects are nearly all software development projects on Linux and Windows servers. However, the first project is an IT project with no software development in it. Obviously, quizzes are to be done individually, and team members should work together on their projects. Teams should largely work separately. One team should not be getting code from another. However, it is reasonable to get a few ideas from another team, though this should be explicitly stated in the documentation for both teams' projects. Every team software project should list all sources that contributed to the solution. This would include putting the name of each team member on each file that this member worked on. Also list any book, web site, the instructor -- whoever or whatever was consulted for a given part of the project. You may not look at the code for another team without the approval of the instructor.

Intellectual honesty is important at Saint Vincent College. Attempts to pass off the work of another as one's own will result in action appropriate to the seriousness of the situation. If there is some doubt as to whether a team did their own work, the persons involved may be asked to explain the code. If they can do so, that provides good evidence that they did do the assignment themselves. All cases of apparent intellectual dishonesty will be referred to the administration. If the administration does not say what to do about the grades in such a case, the first offense will involve a significant grade penalty (such as a grade of zero) on the project, while a second offense may result in failure of the course.

Be sure to read and follow the CIS Department Policies, available under the CIS Department web site. (This statement covers especially the proper use of departmental computing facilities, policies concerning your web pages, academic honesty, etc.) Be sure to read the Regulations section of the College Bulletin (which covers such things as grading, academic honesty, etc.) and the Student Handbook (which covers academic honesty, classroom etiquette, etc.).

Students with disabilities who may be eligible for academic accommodations and support services should please contact the Associate Dean of Studies, Mrs. Sandy Quinlivan, by phone (724-805-2371), by email to or by appointment (Academic Affairs-Headmaster Hall). Reasonable accommodations do not alter the essential elements of any course, program, or activity. The Notification of Approved Academic Accommodations form indicates the effective date of all approved academic accommodations and is not retroactive.

If the instructor needs to cancel class, every effort will be made to send an email message to students' Saint Vincent email accounts.

Maintained by: Br. David Carlson
Last updated: August 27, 2016