-
Notifications
You must be signed in to change notification settings - Fork 1
Course IDE and Tools
The IT 140 course IDE is the collection of software used to design, write, run, test, debug, and manage your course programs.
IDE usually means integrated development environment. In IT 140, the term is used broadly for the complete set of programming tools configured for the course.
Students take IT 140 on different computers and operating systems. A standard course environment helps:
- Course instructions work consistently
- Examples and screenshots match what students see
- Automated tests run with the expected software
- Instructors and technical support reproduce problems
- Students focus on programming instead of tool differences
The exact installation commands can differ by operating system, but supported environments are designed to provide the same core course capabilities.
| Tool | What You Use It For |
|---|---|
| Python 3.12 | Write and run Python programs |
| Visual Studio Code (VS Code) | Create, edit, run, test, debug, and organize course files |
| Git | Track file changes and repository history |
| GitHub CLI | Create, clone, and work with personal GitHub repositories when directed |
| pytest | Run course-provided automated tests |
| pytest-cov | Measure which parts of a program are exercised by tests |
The course also configures or recommends VS Code extensions that support common IT 140 tasks. This table is an explanatory overview, not the controlled extension inventory.
| VS Code Support | Purpose |
|---|---|
Python extension (ms-python.python) |
Core Python support in VS Code |
Pylance (ms-python.vscode-pylance) |
Code completion, parameter information, navigation, and Python language analysis |
Python Debugger (ms-python.debugpy) |
Run and debug Python programs |
Python Environments (ms-python.vscode-python-envs) |
Help VS Code identify and work with Python environments |
Ruff (charliermarsh.ruff) |
Code formatting and code-quality feedback |
Draw.io Integration (hediet.vscode-drawio) |
View and edit flowcharts and diagrams |
Pseudocode Support (i2p-hub.i2p-pseudo) |
View and edit course pseudocode with syntax highlighting |
Code Spell Checker (streetsidesoftware.code-spell-checker) |
Spelling checks in code and documentation |
Office Viewer (cweijan.vscode-office) |
View supported course files inside VS Code |
| Markdown support | Linting, GitHub-style preview, navigation, and other Markdown editing support |
Current course repositories may include a .vscode/extensions.json file. When you open a trusted assignment or project folder, VS Code can use that file to show the extensions recommended for that repository.
You are not expected to master every tool in Module One. You will learn the tools as you use them during the course.
VS Code can open an unfamiliar folder in Restricted Mode. In Restricted Mode, some extensions and workspace features may not operate normally.
Module One setup is designed to trust your course Repos folder so that assignment and project repositories stored below it can use the expected course extensions and workspace settings.
If an assignment opens in Restricted Mode, follow the current activity README. Do not randomly disable security controls or trust unrelated folders.
The Codio Virtual Desktop (CVD) is the IT 140 reference environment.
The CVD is a hosted Linux desktop that you open through the course. Course screenshots, demonstrations, troubleshooting reproduction, and primary testing use this environment.
Because the CVD begins from a course-managed system image, its starting configuration is more consistent than a personal computer. If a supported local course IDE is temporarily unavailable, the CVD can also provide a way to continue your course work.
For setup instructions, use the Module One Setup Tasks repository:
https://github.com/GC-STEM/it140-m1-setup-tasks
The course automation also has platform-specific implementations for supported local environments.
Depending on the current course release, these may include:
- Microsoft Windows
- macOS on supported Apple hardware
- Ubuntu Desktop Linux
Support status can change as platforms are tested and released. Check the main repository README for the current status:
https://github.com/GC-STEM/it140
For compatibility checks and installation instructions, always use the Setup Tasks repository rather than the automation folders directly.
The automation package contains course-managed files such as:
- Platform scripts
- The controlled course manifest
- The manifest schema
- Managed settings and assets
These files help supported environments reach the same expected configuration.
Your programs, personal assignment/project repositories, Git history, and other coursework are separate from those course-managed automation files. The automation is designed to preserve student coursework while maintaining the approved course environment.
Do not edit course-managed scripts, manifests, schemas, or engineering files unless a course activity specifically instructs you to do so.
A manifest is a structured list of approved configuration information.
The IT 140 automation uses a JSON manifest to identify items such as:
- Required course capabilities
- Approved software
- Supported platforms
- Software sources
- Managed settings
- Log locations
Different operating systems may install the same capability in different ways. The shared manifest helps the platform scripts work toward the same course environment instead of maintaining unrelated software lists.
Students normally do not need to open or edit the manifest.
This wiki page intentionally stays readable. The exact approved software, extension identifiers, version rules, and deployment profiles are maintained in the controlled course configuration:
- Main course repository: https://github.com/GC-STEM/it140
- Controlled manifest: https://github.com/GC-STEM/it140/blob/main/scripts/.manifest/it140_manifest.json
- Repository extension recommendations:
.vscode/extensions.jsonin the current course repositories
The course materials are designed and supported using the approved course IDE.
Other tools may be capable of writing Python programs, but using a different software stack can create differences in:
- Python versions
- File formats
- Testing behavior
- Editor features
- Course instructions
- Technical support
If you choose tools outside the supported environment, your instructor or technical support may not be able to reproduce or support problems caused by those differences.
For the least friction, use the course-supported environment described in the current Setup Tasks instructions.