CS245 - OOP with C++ Resources

    ~Download / Install

  • Azure for Students - Signup

    Sign up for a free account with Microsoft's popular Azure cloud computing service. Use your Thomas email and receive $100 in credits, good for up to 12 months.

  • Git for Windows Download

    Download the Git source control program's installer for Windows. NOTE: The installer download will begin immediately. Run the installer, hit Next on all screens to accept the default settings, then hit Finish.

  • Microsoft Visual Studio 2022: Download

    Download the Visual Studio 2022 installer for Windows or Mac from Azure Dev Tools for Teaching (NOTE: login required).

  • Microsoft Visual Studio 2022: Install

    Walks you through installing Visual Studio 2022 for developing programs and applications in C#, C++, and/or ASP.NET MVC.

  • Microsoft Visual Studio 2022: Register

    Walks you through registering your copy of Visual Studio 2022. Be sure to have your Product Key handy!

  • Microsoft Visual Studio 2022: Running for the First Time

    Walks you through the process of running Visual Studio for the first time. Includes links with tutorials to help you get started using the program.

  • Qt Download (Open Source)

    Download the latest version of Qt here. Choose the Online installer that matches your OS.

  • Qt Install (Open Source)

    Walks you through the process of installing Qt, assuming you have downloaded the Qt Online Installer. Windows Users: be sure to follow these directions and install the MinGW compiler. DO NOT INSTALL ANY OF THE VISUAL C++ Compilers

  • SQL Server 2019: Download

    Walks you through the process of downloading SQL Server 2019 Standard for free from Azure Dev Tools for Teaching.

  • SQL Server 2019: Install

    Tutorial from TechDirectArchive that guides you through the process of installing SQL Server. NOTE: the tutorial assumes you've already downloaded the SQL Server 2019 Developer installer from Azure Tools for Education.

  • SQL Server Management Studio (SSMS) Download

    Download the SQL Server Management Studio tool to manage your local or Azure-based SQL Server databases.

  • Visio 2019: Download & Install

    Download the Visio Professional 2019 64-bit installer from Azure Dev Tools for Teaching (login required). Don't forget to copy the Product Key!

  • Visio 2019: Register

    Walks you through registering your copy of Visio Professional 2019. Be sure to have your Product Key handy!

  • ~Reference

  • C++ Resources Network

    Comprehensive website with references, tutorials, forums, and other information on the C++ language.

  • C++: <random> Library Reference

    Reference for the <random> library with improved random number generators introduced in C++ 11. Includes an example that simulates rolling a die.

  • C++: Type Casting Operators

    Tutorial and reference on the different C++ casting operators. Includes an example using the general ( ) casting operator.

  • C++: const Declaration: Why & How

    Reference explaining the purposes of C++'s const keyword and how to use it.

  • C++: ctime Time Functions Reference

    Reference for time-related functions and types in C++. Includes struct tm, time_t, time(), asctime(), and others.

  • C++: map Class Template Reference

    Reference for C++'s map data structure class template

  • C++: string Class Reference

    Reference for C++'s string class functions

  • C++: vector Class Template Reference

    Reference for C++'s vector data structure class template

  • C++: Converting Strings and Numbers

    Reference that provides several examples of how to convert standard string objects to numeric types, and vice versa. Includes the C++11 functions (stoi, stod), as well as older functions (atoi, atof) inherited from C.

  • SEI CERT C++ Coding Standard (Security)

    Online book from Carnegie Mellon's Software Engineering Institute detailing recommended coding practices and rules for writing secure C++ applications.

  • ~Tutorials

  • C++: How to Sort a vector of Custom Objects

    Tutorial explaining how to implement a custom class whose objects can be sorted by the standard C++ sort algorithm. Provides examples using sort and operator overloading, as well as a function object.

  • C++: How to Use Lambda Expressions to Sort Custom Objects

    Tutorial on using lambda expressions (introduced in C++ 11) in lieu of predicate functions or function objects to sort a vector of custom objects. Also shows you how to use the capture list to allow for custom sorting of those objects.

  • C++: rand() and srand() Functions

    Tutorial on using the older C++ rand() and srand() functions to generate pseudo-random numbers.

  • Learn C++ Tutorials

    Comprehensive tutorial site that covers all of the C++ programming topics one would expect from a textbook. Each topic includes examples and a discussion forum with the website author.

  • Analysis & Design

  • Draw.io

    A free online diagramming software alternative to Microsoft Visio for building UML, E-R, and network diagrams, as well as process and organizational charts.

  • Entity-Relationship (ER) Diagram Tutorial

    Tutorial that describes how to create an entity-relationship (ER) diagram to design a database. Describes the components of an ER diagram, as well as the symbols for different notation schemes. Provides a full example in crow's feet notation.

  • Entity-Relationship Diagrams (Visual Paradigm)

    Tutorial on entity-relationship (ER) diagrams using crow's foot notation to design a relational database schema. Walks through the entire design process - from listing entities in the Requirements stage to building the logical and physical models.

  • System Use Cases: an Agile Introduction

    Discusses and presents both informal and formal system uses cases used in agile projects.

  • UML 2 Class Diagrams: an Agile Introduction

    Presents the first few iterations of a class diagram for a university enrollment system. Good example that not only uses simple, standard UML syntax, but also discusses the importance of developing diagrams iteratively.

  • Databases

  • Azure: Controlling and Granting SQL Database Access

    Discusses how to give people and applications access to your Azure SQL database, including the use of administrative accounts, groups and roles, server logins, and database users . Also discusses (with examples) how to grant limited user permissions using built-in stored procedures, as well as security policies and restrictions that govern which users can perform sensitive operations.

  • Azure: Design your first Azure SQL database

    Microsoft tutorial on setting up a SQL Server database server in your Azure account, as well as designing a database using SQL Server 2016 Management Studio. NOTE: Your Azure for Students license lets you set up one database per region (e.g., Eastern U.S., Southern U.S., Western Europe). You can still set up multiple databases in your account, as long as you choose a unique region for each instance.

  • Creating SQL Logins and SQL Users on your Azure SQL Database

    MSDN blog post tutorial on how to create logins and users for an Azure SQL Server and Database. Also shows you how to assign specific database roles to users. NOTE: the tutorial was written for an Azure database, but the same SQL commands, roles, and stored procedures apply to local SQL Server databases, as well.

  • How to Generate Database Scripts With Data In SQL Server

    Brief tutorial from Nutty About Hosting showing you how to use SQL Server Management Studio to generate SQL script with a database's schema AND data.

  • Securing Your Azure SQL Database

    Tutorial on securing your Azure SQL database at different levels: firewall settings; secure connection strings; user management; encrypting connections; and auditing database activity.

  • Using SQL Server Management Studio (SMSS): Quick Start

    Brief Microsoft tutorial on connecting to and querying Azure-based SQL Server DBMS instances. The same techniques and commands apply to local databases.

  • Git

  • Git: Grady's GitHub Repositories

    Link to the instructor's GitHub repositories for Thomas College exercises and labs.

  • Git: GitHub for Visual Studio Documentation

    Tutorials on using the GitHub for Visual Studio Extension from the project's official GitHub account. Helps you set up the extension; push repositories to your GitHub account; committing changes, and making pull requests to owners of another repository to "pull" your changes into their original repository for consideration.

  • Git: Setting Up and Using GitHub in Visual Studio

    Tutorial showing you how to install and configure the GitHub Extension for Visual Studio 2017. Walks you though setting up local and remote git repositories, committing code changes, and pushing those changes to your GitHub account. NOTE: feel free to choose any project type...it doesn't have to be an ASP.NET application.

  • Git: Working with GitHub Fork in Visual Studio

    Tutorial showing you how to fork other developers' GitHub projects to your own GitHub repository. Also shows you how to clone your fork to your local machine; create upstream remotes; pull updates from the original project; push your local changes to your remote fork; and create pull requests to the original project.

  • Qt & Git: Committing Changes

    Brief tutorial showing you how to commit code changes to your Qt project's local Git repository.

  • Qt & Git: Configuring and Pushing to a Remote Git Respository

    Tutorial showing you to configure a remote Git repository for use with a Qt project, then push your commits to that repository. Assumes you have created a local Git repository for your project.

  • Qt & Git: Creating a Local Git Repository

    Brief tutorial showing you to create a local Git repository for an existing Qt project.

  • Qt & Git: How to Configure Git

    Brief tutorial walking you through how to configure Qt to use Git. This assumes that you have downloaded and installed Git for Windows from the Git website.

  • Using Git with Visual Studio

    Tutorial on how to use version control with Git inside of Visual Studio. Learn about creating, cloning, and syncing repositories; workflows and branching; pushing and pulling commits; and merging changes and viewing version histories.

  • Qt

  • Introduction to Qt (VoidRealms Video)

    YouTube video series by Bryan Cairns (@VoidRealms) demonstrating all facets of developing a GUI with Qt Creator. The link takes you to Part 1 of the series.

  • Qt: QCheckBox (VoidRealms video)

    Short video tutorial demonstrating how to set up and use check boxes (QCheckBox) in your Qt GUI application.

  • Qt: QFileDialog: HowTo

    Video tutorial demonstrating how to set up and use a file dialog box (QFileDialog) to open a file in Qt.

  • Qt: QMessageBox (VoidRealms video)

    Video tutorial demonstrating how to set up and use a message box (QMessageBox) in your Qt GUI application.

  • Qt: QPushButton: HowTo

    Tutorial and quick reference for making and using basic buttons in Qt.

  • Qt: QRadioButton (VoidRealms video)

    Short video tutorial demonstrating how to set up and use radio buttons (QRadioButton) in your Qt GUI application.

  • Qt: QStringList (VoidRealms video)

    Video tutorial demonstrating how to use QStringList objects in your Qt GUI application.

  • Qt: QTimer Class Tutorial

    Tutorial walking through how to set up a QTimer timer to run at a fixed intervals in a Qt application.

  • Qt: Basic Programming Tutorial

    A step-by-step tutorial introduction to Qt programming using Qt Creator.

  • Qt: Calculator Form Example

    Qt sample code for a very simple calculator GUI application

  • Qt: Converting Text and Numbers to and from QString

    Reference that provides several examples of conversions among QString objects, standard strings, and numbers. Also provides an example of how to format numbers using QLocale.

  • Qt: Model/View Tutorial

    An introduction to the Model/View architecture design pattern used by Qt Widget applications, separating data from presentation

  • Qt: Signals and Slots (VoidRealms video)

    Video tutorial explaining Qt signals and slots: events and event handlers

  • Qt: SQLite database with Qt - step by step

    A tutorial explaining how to use Qt to connect to a database and run queries. The author uses SQLite, but you can easily adapt what she does to SQL Server and MySQL

  • Qt: Style Sheets Examples

    Qt documentation page with many examples of using a style sheet to control the appearance of GUI widgets. Particularly helpful as a reference for Qt-specific CSS selectors.

  • SQL

  • Intro to SQL @ Khan Academy

    Self-paced course that introduces basic SQL queries, queries with Booleans and criteria, joins, and table modification. Provides examples and tests your knowledge of SQL and databases.

  • SQL Tutorial &: Reference - W3Schools

    Less of a SQL tutorial and more examples and reference. Covers SQL syntax and table design, with references for specific DBMS. Best of all, you can practice writing SQL queries online with the Northwind database.

  • Visual Studio

  • Visual Studio: Changing the Default Projects Save Location

    Quick reference page showing you how to change the default folder location in which Visual Studio saves your projects.

  • Visual Studio: Cleaning Your Projects

    Tutorial explaining how to clean your Visual Studio projects prior to submitting them to Moodle.

  • Visual Studio: Getting Started

    Quick introduction and tour of the main parts of Visual Studio: the code editor; Solution Explorer; Properties window, toolbars and menus; Team Explorer, and the Output window.

  • Visual Studio: Getting Started with C++

    Short introduction tutorial on how to create a simple " Hello, World " C++ application using Visual Studio. Great place to start for beginners!

  • Visual Studio: Personalizing the IDE

    Links to reference pages on how to personalize your Visual Studio interface: change fonts and colors; customizing menus and toolbars; and customizing window layouts.

  • Visual Studio: Solutions and Projects

    Introduction tutorials on solutions and projects in Visual Studio. Helpful sections include creating solutions and projects; and adding and removing items from projects;

  • Visual Studio: Submitting Your C# and C++ Projects

    Quick help page explaining how to submit your C# and C++ projects from Visual Studio.

  • Visual Studio: Writing and Refactoring Code (C++)

    Discusses the different tools in Visual Studio to help you write and change C++ code. Quick introductions to IntelliSense; code snippets; the Class Wizard; the refactoring tools in the Quick Action menus and Edit > Refactor menu; QuickInfo tooltips; Peek Definition; and the Quick Launch search bar.