This is an old revision of the document!
SoCS Computing Resource Strategic Plan
Requirements:
General requirements for all majors:
The majority of courses offered by the School of Computer science need predictable and conventional computer resources. These resources include:
- Compilers and interpreters for programming languages including:
- C
- Python
- Java
- Ruby
- JavaScript
- Perl
- Editors
- SQL clients
- Debuggers including gdb
- Profiling tools including IDEs
- Version Control Software such as SVN and git
While this list covers the requirements of most courses there are a few courses required by all majors that may have special requirements.
CIS*2030 Structure and Application of Microcomputers
- Connection for peripheral boards
CIS*3110 Operating Systems I
- Independent processing time for simulations not suitable for shared computing environments
Non Major-Specific Electives:
The following courses are available for all SoCS students and may have special hardware requirements.
CIS*3090 Parallel Programming
- Dedicated shared memory programming environment
- Dedicated cluster programming environment (Pilot)
- Graphics hardware available for CUDA
CIS*3210 Computer Networks
- Network analysis tools such as Wireshark
- May require dedicated networking infrastructure (switches, routers, access points) in the future
Bachelor of Computing:
All requirements for courses within the bachelor of computing are covered within general requirements for all majors.
Software Engineering:
In addition to resources specified within general requirements for all majors the following resources are needed for most Software Engineering courses:
- Diagramming tools including Visio or Omnigraffle
- Collaboration tools and project management tools (The web-app Trello is currently used)
- Ticketing systems including Redmine and RT.
Mobile:
CIS*1XXX Introduction to Mobile Computing
- This course will only require resources already specified within general requirements for all majors
CIS*2XXX Mobile Applications Design
In addition to general computing requirements, this course will need:
- Mobile Devices (iOS and Android)
- XCode and iOS SDK
- Android SDK
- Mobile device emulators
- Secure device Storage
CIS*3XXX Pervasive Systems
- This course will require resources similar to those in Mobile Applications Design
CIS*4XXX Mobile Systems Project Course
- This course will require some of the resources required for Mobile Design Applications
- Some specialized server infrastructure may be required
Game:
In addition to resources specified within general requirements for all majors the following resources will likely be needed:
- Advanced graphics hardware
- Hardware for CPU intensive simulations which are unsuitable for a shared computing environment
- Sound
- A Windows environment to support DirectX
- Input devices
- Consoles (Xbox, Playstation, Wii?)
- Secure storage for devices and consoles
Summary
Item | General | B Comp | SoftEng | Mobile | Game |
---|---|---|---|---|---|
Compilers | ✔ | ✔ | ✔ | ✔ | ✔ |
Editors | ✔ | ✔ | ✔ | ✔ | ✔ |
SQL Client | ✔ | ✔ | ✔ | ✔ | |
Debuggers | ✔ | ✔ | ✔ | ✔ | ✔ |
Profiling Tools | ✔ | ✔ | ✔ | ✔ | ✔ |
Version Control | ✔ | ✔ | ✔ | ✔ | ✔ |
Connection for Peripherals | ✔ | ✔ | ✔ | ||
Independent Processing Time | ✔ | ✔ | |||
Graphics Hardware | ✔ | ✔ | |||
Network Analysis Tool | ✔ | ||||
Diagramming Tools | ✔ | ||||
Collaboration Tools | ✔ | ||||
Ticketing System | ✔ | ||||
Mobile Devices | ✔ | ||||
XCode | ✔ | ||||
iOS SDK | ✔ | ||||
Android SDK | ✔ | ||||
Mobile Device Emulator | ✔ | ||||
Secure Storage | ✔ | ✔ | ✔ | ||
Sound | ✔ |
Lab Environments
PC
Pros:
- Standalone, machines operate independently of each other
- Can run software without impacting other users
Cons:
- Management, increased time as efforts must be duplicated for each machine.
- Complex client, admin resources required to fix
Mac
Pros:
- Standalone, machines operate independently of each other
- OSX Software – Only environment with OSX software available
Cons:
- Management, increased time as efforts must be duplicated for each machine.
ThinClient
Pros:
- Manageability – Reduced administrative efforts as changes can be rolled out quickly to all machines.
- Setup – adding new clients requires less resources as only a terminal must be set up
- Shared Environment – The environment is standardized for all users
- Remote access – Server for shared environment accessible over SSH or Remote Desktop type application
- Dumb Client, easy to replace terminal if broken without sysadmin
Cons:
- Downtime – server outage may affect multiple machines
BYoC
Pros
- Demonstrated enjoyment by students
- Requires limited sysadmin computer resources as not managed by SoCS
Cons
- Lack of standardization, all machines will be unique
- Software unavailability – some software may be unavailable for BYoC machines, or unpractical/uneconomic to provide
Raspberry Pi
Pros:
- Mostly standard environment – all pis run the same OS and have same software availability
- Requires limited sysadmin resources, most problems fixed by reformat of SD card or replacement of Pi
Cons:
- Limited processing power, not suitable for high computational needs