Welcome to Programming C++

A Quick Overview

Introduction to Programming Using C++ is designed to give you, the student, basic computer programming skills using the high-level programming language C++. Thus, you will learn the syntax of the language – the commands and rules for those commands. Additionally, you will learn problem solving skills applicable to various disciplines in engineering, the hard sciences, and the social sciences. You should note that we say basic skills because the scope of this course is limited. A complete skill set in C++ is huge and not normally attained by an individual. At S&T, three semesters of instruction in C++ are needed to reach a high level of proficiency in the language, though we would not deem even that complete. Do not be confused: you will learn a lot in this course, we think more than most such courses. But, there is always more there to learn.

What do I need to know before taking this course?

You need to have a firm understanding of algebra and be independently capable of performing basic everyday tasks on the computer. If you used the computer to navigate to this website without assistance, you have the necessary computer skills to get started in this class. Assuming you have these two skills, we will take you the rest of the way.

What kind of equipment do I need?

Our assignments do not require a lot of computational power. If you are reading this webpage on a modern browser, you have all the computer you need for this course. However, because you will be streaming these videos from YouTube and because you will be remotely connecting to our campus network, you do need a significantly fast internet connection. Check out some of the videos on the other pages. If they are quick to load, you will have no problems connecting to the S&T network to submit your assignments.

What will I learn in Introduction to Programming?

You will learn how write an algorithm to solve a problem using the computer programming language C++. This means that you will, after analyzing the problem and mapping out a solution plan, edit an electronic file that contains C++ code, compile that code, and test your resulting computer program. Let’s briefly talk about these three parts.

NOTE: You will discover that there are many compilers provided by many vendors (Microsoft, Boreland, etc.), but you don’t have to be concerned with them or even obtaining a compiler. The GNU compiler is provided by S&T to you as a student. As a student in Introduction to Programming, you are required to take an accompanying lab course. In that course, during the first lab, you will learn the computing system on this campus:

What will I take away from having taken this course?

The goal of this course is that you will have a foundational understanding of what it is to write software and to create a C++ program that will solve a problem. For many types of scientific problems, you will be able to formulate an algorithm for the solution, and then translate that into C++ code that compiles and runs correctly to completion, generating a correct solution to the problem intended.

What kind of time is required for Introduction to Programming?

This course is intense. You will learn a lot! In order to really learn this material, you will need to devote a lot of time. Material presentations and reading will go much as any other course, but the programming assignments have the potential for being time consuming. The first few programs may come easy to you, and may not. But the later assignments will require more time to complete. We strongly urge you to start the assignments early, as soon as they are announced. You may be surprised by an assignment when you find you don’t know how to accomplish a particular task.

How does this course work?

The Introduction to Programming course is made up of two different, but symbiotic classes: the lecture and lab. For those of you who have signed up for the blended class instruction, your entire lecture course will take place on this website. Your course coordinators have created a collection of text and lecture videos that ensure all of the instruction you need to complete this course is available from these pages. Those of you in the blended course will never attend an in-person lecture, you will never need to report to a class, and all of your assignments for the lecture class will be distributed and submitted electronically.

Everyone must attend an in-person lab class. There you will receive personal assistance from a department instructor. In each lab session you will work to complete a collection of exercises designed to reinforce the knowledge you've learned in lecture and the knowledge you need to complete the more comprehensive lecture assignments. Additionally, all of your lecture exams will be distributed during your lab class time.

What can you expect of the instructors of the online and lab courses?

The Introduction to Programming team is composed of your lab instructor who you will see in-person in your lab sessions, the LEAD tutors who are available to help you overcome any programming roadblocks, and the online course coordinators who oversee and orchestrate the entirety of your in-person and online learning experiences. We will do our best to make you feel comfortable with the material presented in this course. It is understandable that computers/computing can be a bit intimidating, but the Introduction to Programming team will do what we can to allay fears. You should never be afraid to ask questions; all of us will do our best to give you informative answers.

Though the online class and in-person lab are separate classes, they are tied together since one supports the other. Most of your experience with Introduction to Programming will revolve around your lab instructor. You will meet with your lab instructor in class throughout the semester. The lab instructor is there to provide a personal learning experience through the lessons taught in class and in one-on-one tutoring during their office hours. Your lab instructors and classes will be the conduits through which all exams and and lab exercises are exchanged. They are your first point of contact whenever you have a question about anything.

In the event that you need personal assistance that the lab instructor is unable or unavailable to provide, the university and Computer Science Department provide additional one-on-one tutoring through the LEAD program. These students are made available to you through email and office hours which will be published in your syllabus handouts in your first lab class.

Behind the scenes, your course coordinators have worked hard to create a complete online course that provides all of the information needed to complete all of the assignments, exams, and lab exercises. They have created all of the content, lesson plans, exercises, and exams that you will interface with throughout the semester. Though they are the faceless figures behind the scenes, you are still encouraged to reach out and contact them whenever you have a question, comment, or complaint that you would like to be addressed by someone other than your lab instructor or LEAD tutor. You can find the names and contact information of the coordinators on the syllabus page of this site.

Because the knowledge built in this class is cumulative, the Introduction to Programming team feels that prompt and continuous feedback is important. Tests are graded as quickly as possible and are usually returned within two days. Programming assignments take an average of 5 days to grade, but that time will vary depending on the complexity of the assignment and the number of students. Furthermore, we will send you messages concerning the classes via email. So check your email regularly (at least once a day, and preferably twice) as it is the medium in which we will be announcing information about new assignments, exams, etc.

What will be expected of the student?

You should read all presented materials, read the recommended text, complete all programming assignments, take all tests, attend all lab sessions, and ask questions. It is also immensely helpful to you to code up examples that are presented in the online course content modules. You can do this quickly by coding very simple programs containing the sample code given in an example, compiling it, and running it. This will go a long way to helping you manage the syntax of C++ and understanding code structure.

Please note that for the sake of consistency and ease of support, we will only be using the GNU compiler to compile and execute your programs after you have submitted them. Thus, you must make sure that any example code based from the samples on this site, any lab exercises, or your programming assignments are written using the GNU compiler. You may develop your programs on any platform and using any compiler, but we will not grade or assist with anything that does not ultimately compile on GNU. Please don't question us about any compiler other than the GNU, it is enough to keep up with. Understand that there are subtle differences between compilers and you will be responsible for that problem if you use any compiler other than GNU.

Finally, all of this being said, the course menu on the right of this page will be your guide. So follow it on down and let’s see what we can learn together!

Course Menu
0. Getting Started
0.0. Welcome
1. The Big Picture
2. Programming Fundamentals
3. Operators
4. Branching
5. Loops
6. Advanced Branching
7. Odds and Ends
8. Functions
9. Random Number Generation
10. Multiple Files
11. Arrays
12. Structs
13. Character Arrays
14. File I/O
15. Objects
16. Output Formatting
16.0. Overview
17. Namespaces
18. Enumerations
19. Sample Homework