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
- Debugging tools 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*3190 Software for Legacy Systems
- Fortran (gfortran), Cobol (cobc), Ada (gnatmake)
CIS*3210 Computer Networks
- Network analysis tools such as Wireshark
- May require dedicated networking infrastructure (switches, routers, access points) in the future
CIS*4720 Image Processing and Vision
- Python with associated libraries: numpy, scipy, SimpleCV, OpenCV, pymorph, matplotlib, scikit-image
CIS*4800 Computer Graphics and CIS4820 Game Programming
- OpenGL (both GL and GLU) and GLUT libraries
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 | ✔ |