CIS Logo SVC Logo

   Computing & Information Systems
   Department

 

Schoology Facebook        Search CIS Site      Tutorials

CS 315 Syllabus



Server-Side Programming



Fall 2018



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 9:30 am - 11:20 am
    • Mon 12:30 pm - 1:50 pm
    • Tue, Thurs 8:30 am - 9:50 am
    • Tue, Thurs 2:30 pm - 4:00 pm
    • and by appointment
  • Phone: 724-805-2416
  • Email: david.carlson@stvincent.edu
  • 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.
  • Texts (required):
    • Get this at our bookstore: Node.js, MongoDB and Angular Web Development, 2nd ed.; Dayley, Brad; Dayley, Brendan; Dayley, Caleb; Pearson Education (2018), ISBN 978-0-13-465553-6.
    • Get this on your own: Getting Started with Powershell; Shepard, Michael; Packt (2015). This e-book is available for under $25 at the book's web page.
  • Reference books (not required):
    • Beginning Node.js; Syed, Basarat Ali; Apress (2014), ISBN 978-1-4842-0188-6.
    • Learning Node.js; Wandschneider, Marc; Pearson Education (2013), ISBN 978-0-321-91057-8.
    • Mastering Node.js, 2nd ed.; Pasquali, Sandro and Faaborg, Kevin; Packt Publishing (2017), ISBN 978-1-78588-896-0.

Description

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. The course also uses git for version control and project management.

Why Take This Course

This course is an elective for CIS majors. Since the projects are software projects, it is aimed mostly toward the CS concentration. However, you will set up virtual servers and install software, which are typical IT tasks.

The Prerequisite

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

The Text

The primary text is designed to teach you Node.js, which is server-side JavaScript. You are likely to also need 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. The secondary text, the e-book, will teach you PowerShell. Free online PowerShell and git materials are readily available as well, though the quality varies.

Relevant CIS Department Student Learning Outcomes

By the time of graduation

  1. The CS, IT, or Cybersecurity major will have an ability to analyze a problem, and to identify and define the computing requirements appropriate to its solution.
  2. The CS, IT, or Cybersecurity major will have an ability to design, implement, and evaluate a computer-based solution to meet a given set of computing requirements in the context of the discipline.
  3. The CS, IT, or Cybersecurity major will have an ability to communicate effectively with a range of audiences about technical information.
  4. The CS, IT, or Cybersecurity major will have an ability to function effectively on teams to establish goals, plan tasks, meet deadlines, manage risk, and produce deliverables.
  5. The CS major will have an ability to apply theory in the design and implementation of computer-based solutions.
  6. The CS major will have an ability to reason about and explain computer-based solutions at multiple levels of abstraction.

Course Learning Objectives

By the end of the course, students will be able to:

  1. Design, write, test, and debug projects with lengths up to about 1000 lines of code, using good software engineering techniques, programming style, documentation, and practices.
    This supports student learning outcomes 1 and 2 above.
  2. Effectively use several technologies (such as git, Node.js, bash, JSON, and PowerShell) so as to be able to carry out projects requiring multiple languages and tools.
    This supports student learning outcomes 1 and 2 above.
  3. Communicate effectively in a small team environment and conduct a class presentation on their team's projects.
    This supports student learning outcomes 3, 4, and 6 above.
  4. Understand how a finite state machine model can be used to guide the design of some types of software.
    This supports student learning outcomes 2, 5 and 6 above.
  5. Create and use data flow diagrams and other drawings that summarize the design of their software.
    This supports student learning outcomes 2 and 6 above.

Course Policies


Note on Flu

Because of the possibility of the flu affecting us on campus, please practice good hand washing, etc. If you get the flu, please notify me by phone or e-mail and stay home for 24 hours after the fever has gone. Check with me about what you miss. You will not be penalized for missing class in this situtation. It is better to stay away from class and not spread the flu when you are ill.

Grading, Quizzes, and Projects

  • 66% Projects
  • 22% Quizzes
  • 12% Final presentations on projects: Tue, Dec 11, 8:30 am - 10:30 am

Letter grades will be given using the scale found in the College Bulletin. Quizzes will be closed-book in nature. Students' project grades will be based on their work on the projects (75%) as well as their teammates' evaluations of their contributions (25%). To facilitate this, students must put their names on the sections of code that they write. Final presentations of projects will be done during the final exam period for this course. The course projects are all software development projects on Linux and Windows servers (other than the creation of the virtual machines and installation of the server OS for each).

Classroom Etiquette

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, work hard on the projects, ask questions, and try to answer questions. Do not let yourself get behind. In fact, one key to academic success is to start early on projects and other tasks. Last-minute miracles seldom work, particularly with software development! Note in particular that attendance is expected. It is not fair to your team if you miss class for no good reason. Partly in order to emphasize the importance of attendance, the policies outlined after this paragraph will be used.

Grading and Attendance Policies

  1. Each unexcused class absence after the first 3 results in 1.5 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.
  7. Make-up quizzes will be given for excused absences. See your instructor to arrange this.

Academic Integrity

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 project should list all sources that contributed to the solution. This would include putting the name of each team member on each file or section of a file that this member worked on. Also list any book, web site, etc. -- 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 or individuals 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 work 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 item in question, 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 found under the Academic Programs and Regulations section of the College Bulletin (which covers such things as grading, academic honesty, academic warning and dismissal, etc.) and the Student Handbook (which covers academic honesty, classroom etiquette, etc.).

Title IX: Sexual Misconduct and Harassment

Saint Vincent faculty are committed to helping create a safe learning environment for all students and for the college as a whole. If you have experienced any form of gender or sex-based discrimination or harassment, including sexual assault, sexual harassment, intimate partner (dating or domestic) violence, sexual exploitation, or stalking, know that help and support are available. Saint Vincent College has staff members trained to support students in navigating campus life, accessing health and counseling services, providing academic and housing accommodations, and more. The College strongly encourages all students to report any such incidents.

Please be aware that all Saint Vincent employees (other than those designated as confidential employees such as counselors, clergy and healthcare providers) are required to report information about such discrimination and harassment. This means that I have a mandatory duty to report to the Title IX Coordinator any information I receive about possible sexual misconduct. This includes information shared in class discussions or assignments, as well as information shared in conversations outside class. The Title IX Coordinator will contact you to inform you of your rights and options and connect you with support resources, including possibilities for holding accountable the person who harmed you. Know that you will not be forced to share information and your level of involvement will be your choice. The purpose of reporting is to allow Saint Vincent to take steps to ensure that you are provided with any necessary resources needed and to provide a safe learning environment for all.

The College's Title IX Coordinator is:
Eileen K. Flinn, Esq.
Saint Vincent College
Second Floor, Alfred Hall
724-805-2897

The College also has confidential resources available, who can provide assistance to those who have experienced sexual misconduct without triggering a mandatory reporting duty. More information about confidential resources is available at https://www.stvincent.edu/student-life/title-ix.

If you wish to speak to a confidential employee who does not have this reporting responsibility, you can contact Campus Ministry at 724-805-2350 or the Wellness Center in the Carey Student Center at 724-805-2115. For more information regarding your rights and options, please see the Sexual Misconduct and Harassment policy which can be found on MySVC portal under Quick Links or on the web at https://www.stvincent.edu/student-life/title-ix.

Disability Statement

Students with disabilities who may be eligible for academic accommodations and support services should contact Ms. Marisa Carlson, Director of Academic Accommodations and Academic Advisor, by phone (724-805-2828), email (marisa.carlson@stvincent.edu) or by appointment (Academic Affairs-Headmasters 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.

Class Cancellation

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 19, 2018
Disclaimer