Skip to main content
< All Topics

ASC Software Programming Library Guide

This guide supports students in the Associate of Science (ASc) in Software Programming at Vector Technology Institute (VTI). It brings together practical programming resources, software engineering guidance, documentation, and research support for coding assignments, labs, software projects, technical reports, and applied research.

Use the guide to move from understanding a concept to building, testing, documenting, and explaining a working solution. Learning platforms are useful for practice, but they do not replace official documentation or scholarly evidence when an assignment requires them.


How to Use This Guide for Assignments and Projects

  1. Define the problem and requirements. Identify what the solution must do, who will use it, and what constraints apply.
  2. Review concepts and official documentation. Use learning resources for foundations, then confirm implementation details in the relevant official documentation.
  3. Build and test a solution. Work in small steps, reproduce errors, and check expected and edge-case behaviour.
  4. Use scholarly research when evidence is required. Use the research section below to find and verify peer-reviewed sources.
  5. Document and cite the work. Explain setup, decisions, testing, limitations, and sources so another person can understand and reproduce the result.

Related guides: Research Skills • How to Write the Research Paper • APA Style & Citation Guide

1. Programming Foundations

Build a foundation in programming logic, syntax, data structures, problem-solving, and computational thinking. These resources are primarily for skill-building and background learning; use scholarly sources separately when an assignment requires academic evidence.

  • OpenStax – Open textbooks for computing and mathematics fundamentals. Check the individual title for its review information.
  • Open Textbook Library – A catalogue of open textbooks in programming, databases, and software development; check title-level reviews.
  • Free Computer Books – Programming books, lecture notes, and tutorials for background learning.
  • Open Library – Digital access to programming and computer science books.

2. Coding Practice & Interactive Learning

Use practice platforms to turn concepts into working code. They help you rehearse syntax, debugging, and problem-solving, but completing an exercise is not the same as providing scholarly evidence for an academic claim.

  • freeCodeCamp – Interactive practice in HTML, CSS, JavaScript, Python, databases, and frameworks.
  • The Odin Project – Project-based full-stack web development learning.
  • Kaggle Learn – Short hands-on lessons for Python, data analysis, and machine learning basics.

3. Version Control & Collaborative Development

Version control helps you work safely, explain changes, and collaborate without losing earlier versions of a project.

  • GitHub Skills – Guided exercises for repositories, branches, pull requests, and collaborative workflows.
  • Good collaboration habits: use a branch for a focused change, commit in small logical steps, write readable commit messages, describe changes in pull requests, and document decisions that affect other contributors.

4. Testing, Debugging & Code Quality

Testing is part of programming, not a final step added after the work is finished. Use a repeatable process so that your fixes can be checked and explained.

  • Reproduce the error: record the inputs, steps, environment, and expected result.
  • Isolate the problem: reduce the failing case and identify whether the issue is in data, logic, configuration, or an external dependency.
  • Use evidence: inspect logs, use a debugger, add focused tests, or compare actual output with the expected output.
  • Check edge cases: test empty input, invalid input, boundary values, permissions, network failures, and repeated use where relevant.
  • Document the fix: state the cause, the change made, and the test that shows the problem is resolved.

5. Programming Languages & Development Tools

Distinguish between official documentation and tutorial sites. Tutorials can help you learn a pattern; official documentation is the authority for supported syntax, configuration, APIs, version differences, and security notes.

6. Software Engineering Concepts & Best Practices

Programming becomes maintainable software when the team manages requirements, design, implementation, review, and change deliberately.

  • Requirements: define users, inputs, outputs, constraints, acceptance criteria, and non-functional needs such as performance or accessibility.
  • Design: break the system into understandable components, choose clear interfaces, and record important trade-offs before implementation.
  • Agile and Scrum: use short cycles, visible work, feedback, and review to keep a project moving without losing its goal.
  • Planning: estimate tasks, identify dependencies, track risks, and agree what “done” means.
  • Maintainability and change management: prefer readable structure, consistent conventions, small changes, reviewable commits, and updated documentation.

7. Secure Coding & Cybersecurity Awareness

Apply security guidance for defensive, educational, and authorized work only. Do not test systems or access data without permission; document risks responsibly and protect credentials and personal information.

8. Technical Documentation & Communication

Good code is easier to use, review, and maintain when its purpose and setup are clear.

  • Google Technical Writing Courses – Practical guidance for clear technical documentation.
  • README files: state what the project does, prerequisites, setup steps, usage examples, configuration, and known limitations.
  • Code comments: explain decisions or non-obvious constraints where useful; do not use comments to excuse unclear code.
  • Reports and diagrams: explain the problem, design, implementation, testing, results, limitations, and next steps. Use a diagram when it makes structure or data flow easier to understand.

9. Research & Academic Support

Match the source to the claim. Practice platforms and official documentation help you build software; academic claims need appropriate scholarly evidence.

Peer-reviewed sources

Discovery tools

  • Google Scholar – Broad discovery across articles, books, theses, and conference papers; results are not automatically peer reviewed.
  • BASE – Discovery of full-text research papers and repository records; verify the original publication.

Theses and dissertations

Open Access Theses and Dissertations (OATD) can provide advanced research examples and useful methods. A thesis or dissertation is not automatically a peer-reviewed journal article, so check the source type before citing it as journal evidence.

Best Starting Point by Task

  • Learning a concept: start with OpenStax, Open Textbook Library, or a focused practice course.
  • Solving a coding problem: reproduce the issue, isolate a small example, then check official documentation and test the fix.
  • Planning a software project: define requirements, use GitHub Skills for collaboration habits, and consult Scrum Guide or PMI for planning ideas.
  • Researching a software engineering topic: use the Peer-Reviewed Scholarly Articles Guide, JOSS, IEEE Access, DOAJ, Google Scholar, and BASE.
  • Preparing a technical report: use Google Technical Writing Courses, document the implementation and tests, and cite the sources behind academic claims.
  • Checking secure coding practices: start with OWASP Top 10 and NIST, then use Hacker101 only for authorized defensive learning.

Suggested Software Project Workflow

Problem → Requirements → Research → Design → Implement → Test → Document → Review

Keep evidence at each stage: record requirements, note sources and design decisions, test expected and edge-case behaviour, document setup and limitations, and ask for review before treating the project as complete.

Recommended Companion Guides


Prefer official documentation for implementation details and peer-reviewed sources for academic claims. Ask the VTI Library for help when you need to locate, evaluate, or cite a source.

Table of Contents