CIS Logo SVC Logo

   Computing & Information Systems


Schoology Facebook        Search CIS Site      Tutorials

CS 315 Home Page

Server-Side Programming

Fall 2016

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.

Further Information

Help is Available

Note on Flu

Because of the possibility of the flu affecting us on campus, please practice good hand washing, etc. If a doctor will prescribe Tamiflu or similar for you, it is said that it reduces the length and the severity of the flu. If you get the flu, please notify me by phone or e-mail and stay home for 24 hours after the symptoms are over. 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.

Tentative List of Projects

  • Background Info Send this to Br. David by the end of the first day of classes.
  • Install Ubuntu, install WeBWorK using git, and configure WeBWorK.
  • Update the Linux search engine found at so that it uses string objects. Also remove leading and trailing spaces from search terms that users submit.
  • Get that same search engine to work on your Ubuntu machine.
  • Replace the CGI program in the Ubuntu version of the search engine with a Node.js Express app. You may add extra features if you have the time and interest. You are asked to use GitHub Classroom. In writing the Node.js Express app, I suggest reading Express: Using Middleware and related Express documentation.
  • Use GitHub Classroom to manage the development of a similar search engine on Windows server using IIS. In vSphere create a new virtual machine and use the Windows Server 2012 image that is available there. Rewrite the bash script in PowerShell. The Node.js program from the last project will hopefully work unchanged. You would need to install Node.js. You may add extra features if you have the time and interest. Since time is short, it will be enough to write the PowerShell portion of this project or to do as much of the PowerShell portion of the project as you can. If you get to the point of testing your project, copy into your server the .html files that were used in testing the last two projects. Since we are short on time, any work on this last project will be counted as extra credit. See Scripting with Windows PowerShell as well as items in the PowerShell folder on the course network drive for help with PowerShell.

Notices about quizes and other items

  • Read especially chapter 7 in your text on Node.js.
  • In place of a final exam, we are using our final exam period, Tue, Dec 13, 11:00 am - 1:00 pm, for student presentations of the course projects. Each student should present one or two pieces of a project that they worked on. This could involve showing the search operation in use, showing portions of the code, talking about complications that had to be overcome to get things to work, etc. Each group should discuss who is presenting what so that no two students present the same part of the same project. Each student will be given a maximum of 10 minutes. It is suggested that the projector be used to show your work. From the instructor's login, you can show what is seen in a browser, you can use SecureCRT to log into your virtual machine to look at code, and you can access any files that you have put on your course homework drive. Note that this presentation counts as 10% of your course grade, so you do not want to skip it.

Instructor: Br. David Carlson

Maintained by: Br. David Carlson
Last updated: December 05, 2016