Table of Contents

~~TOC~~


Corning Community College

UNIX/Linux Fundamentals


Projects

Objective

To provide a list of programming projects to aid in the understanding of course concepts and gaining of valuable development experience.

Project Lifecycle

A core part of your work in the course will revolve around performing projects. This will offer you many opportunities to both learn and apply important concepts, and achieve a better mastery of material.

The method of undertaking a project will generally take the following form:

  1. Identify a project: Figure out what interests you and what you'd like to do
  2. Create a page on your portfolio on the wiki and create the proposal
  3. Justify your case for the project on the proposal
  4. Notify me of your project proposal (send me a URL to the proposal)
  5. Upon reading your proposal, I will communicate approval, disapproval, or suggestions to improve the proposal to work towards approval.
  6. Once receiving approval, you will commence on project implementation, extending the proposal document into a general project documentation page on your portfolio
  7. All development will utilize both the wiki and subversion – only you (or your group) and I will have access to your project repository
  8. If you have any questions on the implementation of your project, this documentation should be able to assist debuggers in helping to diagnose any problems you encounter should you have questions/problems
  9. When completed, notify me so I can review your documentation (wiki) and code (subversion)
  10. I will offer feedback on the project along with final results (did you satisfactorily achieve the desired attributes, etc.)

The aim here is two-fold:

Project Proposal

Before starting on a project, you must obtain approval from me regarding the following items:

If desired, a sample template is available here that you can copy and paste into an applicable portfolio page.

Project Specifications

All projects undertaken need to be documented on the wiki in your portfolio namespace. Specifically, you should set up a front page at:

And link to projects within the namespace:

Project documentation needs to have (at least) the following sections:

Project Attributes

The following are the programming attributes you must consider while undertaking a project for credit in this course:

Attribute Qty needed Description
commands 4 demonstration/utilization of commands/tools
files & directories 4 demonstration of paths/files/directories
text processing 4 demonstration of text processing
The UNIX shell 4 utilization of UNIX shell functionality
job control & multitasking 4 utilization of job control/multitasking functionality
scripting 4 implementation/utilization of scripts
The UNIX development environment 4 demonstration of development tools
regular expressions 4 demonstration/utilization of Regular Expressions
security 4 demonstration/utilization of security functionality/tools
groups 4 demonstration/utilization of group functionality
filters 4 demonstration/utilization of filters in data manipulation
system administration 4 demonstration/implementation/utilization of new resources/services

There are a total of 48 items needed; with a maximum of 6 achievable per project, that makes for a minimum of 8 projects you must perform during the semester.

Note that where multiple quantities of attributes are concerned, only a single instance of an attribute can be achieved on any single project.

You need to keep an inventory of the total attributes you've achieved, displayed on your project portfolio page for this course.

Projects

The following are possible sources of projects you can undertake in this course. Note that while most of these can be solved by hand, and some have a single solution, your task is to implement a computer program to solve the problem, making use of the programming concepts and creating effective algorithms for accomplishing these tasks.

Projects here are listed in no particular order, please do not correlate difficulty with arrangement.

Again, these are not the only nor required projects, they are suggestions and worthwhile explorations. It is highly recommended you at least start with some of these projects, then as you find a particular direction or interest, pursue it.

Project Programming Assumptions

A couple things to keep in mind:

Project Submission

In addition to posting the appropriate project documentation under your portfolio namespace, you must also attend to the following: