Every student enrolled in CS414 must have an EID, which they use to login to RamWeb, RamCT, etc. However, every CS414 student is also automatically given a Computer Science login as well. If you were enrolled in CS courses prior to this semester, you may already know about these accounts.
Using departmental machines is optional. You can do all your work on your personal machines. Having a CS login gives you another option for accessing email from Computer Science machines. You can also connect to departmental machines to check whether or not your programs will run here. Using your CS account, you can get access to certain Microsoft applications, as described below.
Distance students, please send an email to cs414@cs.colostate.edu providing your full name if you need to find out what your login id is. The password is set to be your student id, the 9-digit number. Note that it is not the same as the EID.
There are several linux machines (e.g., artichoke.cs.colostate.edu, arugula, asparagus, beet, bean, bok-choy, etc) that you can connect to. You must have an ssh client on your machine. For windows, you can install putty. Linux machines and macs come with ssh. A VPN is not required to connect to the CS machines.
You can transfer files from departmental machines to yours using sftp. You must connect to ftp.cs.colostate.edu and use your login and password.
You will need several tools in this course:
You can use any editor, compiler and runtime environment. One option is to install an editor (notepad, wordpad, emacs, vi, vim, etc), and use Sun's JDK and JRE to compile and run the programs. You are strongly encouraged to use the Eclipse Integrated Development Environment to do all the programming activities. The advantage is that Eclipse provides a good editor and debugger. It can also be integrated with version control software. Eclipse is the preferred IDE in our department. You can download Eclipse for free from here.
There are several tools available commercially and in the free software domain for drawing UML diagrams. Examples are Visio, Topcased, Eclipse-Omondo, ArgoUML, Poseidon, Visual Paradigm, and Rational Software Modeler. A list of some UML tools can be found on Wikipedia. Below is a select set of tools that support the modeling activities covered in our software engineering classes (e.g., CS314, CS414). Visio may be the best option for most of you. As long as you use a tool that exports diagrams to image files that can be inserted into a word / PDF document, you should be fine.
Microsoft Visio is installed on the Windows PCs in the department. You can also get it for free as described below.
MSDN Academic Alliance Program enables CSU Computer Science faculty members, undergraduate majors, graduate students, and certain classes to acquire software at minimal cost. This service is provided using ELMS (e-academy License Management System) and supports multiple distribution schemes.
Currently there are two distribution schemes available to CSU Computer Science users:
Media Sales: Under this scheme you pay for the cost of the media (cd-roms) and shipping and the disks containing the requested software is delivered to you.
Download: Under this scheme you will download the desired software at no you are issued a product using either distribution scheme you are required to get approval to reacquire that product (even if attempting to use the same scheme). This means that you are entitled to only one copy of a given product.
Anyone taking CS classes has a CS email account. Your CS email address is your CS login added to @cs.colostate.edu. Password is the same as your CS account. If you don't know your CS login, please send email to cs414dl@cs.colostate.edu.
To get started, visit the ELMS website.
The EID or CSUID plays no part in MSDNAA. Login to MSDNAA is your CS email address. If you have forgotten your password, you can ask MSDNAA to send it to you. Click here. The password will be sent to your CS email account.
Quick access to CS email is available here.
A modeling environment developed as part of an EU project. It was built to primarily support the development of critical embedded software. You can download it from here.
Another option, which has both a free and a trial version (free, time-limited, but has more functionality) is Visual Paradigm's SDE.
This is a pretty good UML tool that integrates with Eclipse, JBuilder, and a few other IDEs. The more functional versions also provide code-generation, so this might help out with the implementation.
Version control and source code control is very useful when you are working in a team. Even if you are not, it still helps to be able to retrieve an older version of a file that used to work when the current version is lost or broken.
You can use subversion, which can be integrated with Eclipse. Instructions were adapted from Prof. Michelle Strout's directions for CS453/CS553 (http://www.cs.colostate.edu/~mstrout/setup-notes.html) and updated by Aritra.
For more info on subversion, see http://svnbook.red-bean.com/.
class Main { public static void main(String args[]) { System.out.println("Hello World!"); } }Put Main.java into a file hierarchy with the following structure:
ProjName.svn/ trunk/ src/ Main.java branch/ tag/
This tree of files in the Project.svn directory you just created is just for having something to initialize the repository. You can delete the Project.svn after you have imported it to the repository (step 4).
// Make sure to replace $HOMEDIR with your own unix home directory. // For example, /s/parsons/d/fac/ghosh // Replace $MACHINE with a CS unix machine that you use often. // Replace $USER with your username. // creating the repository on a CS unix machine // NOTE: Each project will have its own repository. // All the project repositories for CS414dl will be in // $HOMEDIR/SVNRepositories/CS414dl_Projects/. % cd $HOMEDIR % mkdir SVNRepositories % mkdir SVNRepositories/CS414dl_Projects % svnadmin create $HOMEDIR/SVNRepositories/CS414dl_Projects/ProjName.
% cd ProjName.svn % setenv SVN_SSH 'ssh -l $USER' // if you are using bash do the following: % export SVN_SSH='ssh -l $USER' % svn import . svn+ssh://$MACHINE.cs.colostate.edu/$HOMEDIR/SVNRepositories/CS414dl_Projects/ProjName -m "Initial import" $USER@$MACHINE.cs.colostate.edu's password: Adding trunk Adding trunk/src Adding trunk/src/Main.java Adding tag Adding branch Committed revision 1.
Irrespective of whether you are using the Subclipse plugin (Subversion plugin for eclipse) or the command line, step 1 through 4 are same. The plugin will not help in setting up the repository and initializing it.
Once the repository has been created, any of the team members can create eclipse projects in their own workspace and connect to the repository
If you are using the command line,
% cd $PATH_TO_YOUR_ECLIPSE_WORKSPACE/NewEclipseProject % setenv SVN_SSH 'ssh -l $USER' // if you are using bash do the following: % export SVN_SSH='ssh -l $USER' // for some reason the below command requires your password three times // I have seen this on other subversion servers as well % svn co svn+ssh://$MACHINE.cs.colostate.edu/$HOMEDIR/SVNRepositories/CS414dl_Projects/ProjName/trunk src
If you are using the Subclipse plugin,
If you want to work in a team for the design project, let us know, and we will assign a unix group name to your team. They will be of the form cs414dla, cs414dlb, etc. Each team will have an account space corresponding to their team letter in the directory: /s/bach/a/class/cs414dl. Thus, cs414dla will have its account space in /s/bach/a/class/cs414dl/cs414dla, and so on. Whether you choose to use this space or not, and how, is up to each team. To access this shared area, connect to the CS department linux machines (e.g., beet.cs.colostate.edu and artichoke.cs.colostate.edu) using ssh and then type:
cd /s/bach/a/class/cs414dl/cs414dlaReplace the letter "a" with an appropriate letter for your team.
Make sure that the permissions on the repository are set so that everyone in your unix group can write to the repository. Assume that your unix group is cs414dlx. Your group will have a directory at ~cs414dl/cs414dlx. Note that the "~" automatically expands to /s/bach/a/class/. Here are the commands you need to perform to set up a repository in your group directory.
% cd ~cs414dl/cs414dlx % mkdir SVNRepositories % svnadmin create ~cs414dl/cs414dlx/SVNRepositories/Project2 // check the permissions, the cs414dlx, SVNRepositories, and Project2 // directories should all have group rws permissions % ls -al % ls -al SVNRepositories/ // if they don't them change the permissions % cd SVNRepositories % chmod g+rwxs . % find . -type f -print | xargs chmod g+rw % find . -type d -print | xargs chmod g+rwxs
You can also use the plugin Subclipse, which provides support for Subversion within the Eclipse IDE.