Course Home | Syllabus | Assignments(WAV) | Schedule | Downloads | [print]
CS 3005: Programming in C++
@ Utah Tech University
Spring 2025 Syllabus
Course Description
For students pursuing degrees in Computer Science and Computer and Information Technologies, or any student with a strong interest in computer programming. Covers syntax and semantics of C++ programming language through completion of hands-on projects. The student must already be fluent in some other programming language. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct computer programs in C++, using functions, classes and STL elements. 2. Construct computer programs using stack, heap and static memory. 3. Construct computer programs in a statically typed language. 4. Construct and use unit tests. 5. Use version control to manage code. 6. Use memory checking and debugging tools. 7. Create larger programs than in previous course work. Course fee required. Prerequisites: CS 1410 (Grade C or higher). FA, SP.
Prerequisites
CS 1410 (Grade C or higher)
Course fees
Course fee: $20, used to assist in maintaining department infrastructure.
Sections
MWF 8:00 - 8:50 am in Smith 116
CRN: 20278
Final exam on April 28 at 7:00 am - 8:50 am
MWF 9:00 - 9:50 am in Smith 116
CRN: 23080
Final exam on April 30 at 9:00 am - 10:50 am
Instructor
Instructor: Curtis Larsen
Email: curtis.larsen@utahtech.edu
Phone: 435-652-7972
Office: Holland Centennial Commons 463
Office Hours:
- Mondays 9:30 am - 11:30 am
- Tuesdays 3:00 pm - 4:00 pm
- Wednesdays 1:00 pm - 2:00 pm
- Thursdays 3:00 pm - 4:00 pm
Office hours are a fantastic opportunity to receive personalized assistance with any questions or concerns you may have about course concepts, assignments, or anything else on your mind.
I’m here to support you throughout the week with regular office hours. No need to worry about telling me in advance to use the scheduled office hours, just drop by whenever it suits you! Whether you prefer a face-to-face chat in my office at HCC 463 or joining me virtually via Zoom, the choice is yours. You can find the Zoom link conveniently posted in an announcement on Canvas.
If these times don’t fit your schedule, don’t hesitate to reach out to me. Simply shoot me an email or a message through Canvas, and we can find a time that works better for you. When you message me, suggesting a few alternative times would be incredibly helpful.
Looking forward to connecting with you during office hours!
Course Learning Objectives
At the successful conclusion of this course, students will be able to:
Construct computer programs in C++, using functions, classes and STL elements.
Construct computer programs using stack, heap and static memory.
Construct computer programs in a statically typed language.
Construct and use unit tests.
Use version control to manage code.
Use memory checking and debugging tools.
Create larger programs than in previous course work.
Resources
Textbook
There is no required text for the course. However, reference sources for C++, the STL and C will be very helpful.
Online References C++ Reference C++ Tutorial
The C++ Programming Language, Special Edition by Bjarne Stroustrup ISBN: 978-0201700732 (optional)
The C Programming Language, Second Edition by Brian Kernighan and Dennis Ritchie ISBN: 0-13-110362-8 (optional)
The Annotated ANSI C Standard by Herbert Schildt ISBN: 0-07-881952-0 (optional)
Other Resources
- Notes for installing g++
- Notes for editing in Windows and using build tools in bash
- Notes for getting started with git
- Notes for installing Google Test
- Using Unit Tests CS 3005-style
- Understanding Unit Test Output
- Linux: Create, Compile, Link, Run Simple Program(3:23)
- Linux: Create, Compile, Link, Run Multiple File Program(9:45)
- Git and grind starter(14:49)
- Segmentation Faults
Computer Labs
You may use departmental computers and software in the Smith Computer Center. Some lab assistants may be able to help with assignments and pass off homework assignments for introductory courses.
Course Web Site
Assignment submissions and grades will be managed in the Canvas System.
Assignments and Exams
Reading
While there is no required text book. Students are expected to find and read relevant references and example programs.
Assignments
A series of programming assignments will be required. These assignments are due on the date and time listed on Canvas, or as stated by the instructor during class. It cannot be over emphasized that it is important to start early and get all of your assignments done before their due dates. Programs that do not run correctly will receive no credit.
Assignments will be completed using the C++
programming language. A working
build system using Makefile
s will also be required.
Students may use various developement environments such as XCode or Visual Studio Code.
Submissions will still be required to build and run using the compiler and make
on the grading system.
The source code for programming assignments will be submitted through commits and pushes to a git repository.
Assignment submissions must be correct to receive credit.
Exams
There will be four examinations during the semester and a final examination. Test tasks will be extensions of homework assignments or small new programs. Be sure to understand your assignments and keep backups of all your work.
Grading
Each assignment is worth 10 points total. Your assignment group score will be a floating point number between 0 and 1, found by adding up the number of assignment points obtained, and dividing by the number of possible assignment points.
The four examinations during the semester are worth 100 points each. The final examination is worth 300 points. Your examination group score will be a floating point number between 0 and 1, found by adding up the number of examination points obtained, and dividing by the number of possible examination points.
Your course score will be a floating number between 0 and 1, found by multiplying your assignment group score and your examination group score.
Your course letter grade will be assigned based on treating your course score as a percentage and looking up the grade in the table below.
Minimum Percentage | Letter Grade | Minimum Percentage | Letter Grade | Minimum Percentage | Letter Grade | Minimum Percentage | Letter Grade |
94 | A | 84 | B | 74 | C | 64 | D |
90 | A- | 80 | B- | 70 | C- | 60 | D- |
87 | B+ | 77 | C+ | 67 | D+ | 0 | F |
Course Policies
Attendance
Students are responsible for material covered and announcements made in class. School-related absences may be made up only if prior arrangements are made. The class schedule presented is approximate. The instructor reserves the right to modify the schedule according to class needs. Changes will be announced in class and posted to the website. Exams and quizzes cannot be made up unless arrangements are made prior to the scheduled time.
Occasional absences are acceptable as long as the student keeps up with assignment work. Students who miss more than two consecutive weeks of class or who miss more than 20% of scheduled classes during the semester without making prior arrangements will receive a failing grade. Students who miss any scheduled exam (including midterm exams and the final exam) or fail to complete a final project without making prior arrangements will receive a failing grade.
Time Commitment
Courses should require about 45 hours of work per credit hour of class. This class will require about 135 hours of work on the part of the student to achieve a passing grade, which is approximately 9 hours per week. If you do not have the time to spend on this course, you should probably rethink your schedule.
Late Policy
Each assignment has a due date and a submission-cutoff date. The due date is the required date. The submission-cutoff date is to allow students to correct small problems discovered during pass-off, or to allow for minor interruptions to personal schedules.
Collaboration
Limited collaboration with other students in the course is permitted. Students may seek help learning concepts and developing programming skills from whatever sources they have available, and are encouraged to do so. Collaboration on assignments, however, must be confined to course instructors, lab assistants, and other students in the course. Students are free to discuss strategies for solving programming assignments with each other, but this must not extend to the level of programming code. Each student must code his/her own solution to each assignment. See the section on cheating.
Cheating
Cheating will not be tolerated, and will result in a failing grade for the students involved as well as possible disciplinary action from the college. Cheating includes, but is not limited to, turning in homework assignments that are not the student’s own work. It is okay to seek help from others and from reference materials, but only if you learn the material. As a general rule, if you cannot delete your assignment, start over, and re-create it successfully without further help, then your homework is not considered your own work.
You are encouraged to work in groups while studying for tests, discussing class lectures, discussing algorithms for homework solutions, and helping each other identify errors in your homework solutions. If you are unsure if collaboration is appropriate, contact the instructor. Also, note exactly what you did. If your actions are determined to be inappropriate, the response will be much more favorable if you are honest and complete in your disclosure.
Where collaboration is permitted, each student must still create and type in his/her own solution. Any kind of copying and pasting is not okay. If you need help understanding concepts, get it from the instructor or fellow classmates, but never copy another’s code or written work, either electronically or visually. The line between collaborating and cheating is generally one of language: talking about solutions in English or other natural languages is usually okay, while discussions that take place in programming languages are usually not okay. It is a good idea to wait at least 30 minutes after any discussion to start your independent write-up. This will help you commit what you have learned to long-term memory as well as help to avoid crossing the line to cheating.
University Policies
Student absence related to college function
Disability/Accessibility Resources
Utah Tech welcomes all students and strives to make the learning experience accessible. If you are a student with a medical, psychological, or learning disability that may require accommodations for this course, you are encouraged to contact the Disability Resource Center (DRC) as soon as possible. You may request reasonable accommodations at any time during the semester; however, they are not retroactive. The DRC is located next door to the Testing Center in the North Commons Building. (435-652-7516, drc@utahtech.edu).
Title IX Statement
Utah Tech University affirms its commitment to the promotion of fairness in all aspects of the educational institution. Harassment and discrimination – including sex/gender discrimination, gender identity, gender expression, sexual harassment, sexual misconduct, gender-based violence, dating violence, domestic violence, stalking, pregnancy or parental , family or marital status and or retaliation –not only disrupts our commitment to maintaining an environment in which every member of the University community is treated with respect and dignity, but may also violate University policy and federal, state, and/or local law. Should you or someone you know experience behavior that is coercive, discriminatory, harassing, and or sexually violent in nature, or if you or someone you know has questions about their rights and options regarding such behavior, you are encouraged to contact:
Hazel Sainsbury
Dir. Of Equity Compliance, Title IX Coordinator
435.652.7747 (ext. 7747)
hazel.sainsbury@utahtech.edu
titleix@utahtech.edu
Incidents may also be reported directly to law enforcement, either separately or in conjunction with any report made to the University’s Title IX Coordinator, and the University will aid in making contact if requested.
Utah Tech University Police
435.275.4300 or by calling 9-1-1
Maintaining a safe and inclusive University community is a shared responsibility. For more information on how Title IX protections can benefit you and help us keep a productive campus environment, visit titleix.utahtech.edu to learn more.
Email Disclaimer
You are required to frequently check your Utah Tech email account as important class and university information will be sent to this account, including bills, financial aid/scholarship notices, notices of canceled classes, reminders of important dates and deadlines, course information, and other information critical to your success at UT. To access your Utah Tech email account, visit mail.utahtech.edu. Your email account username is Digital-ID@utahtech.edu (e.g. D12345678@utahtech.edu). If you don’t know or have forgotten your Digital-ID or password, please visit changepassword.utahtech.edu.
Useful Resources
NAME | SERVICE |
Utah Tech Student Resources | Visit this site to see many student resources in one place. |
Academic Advisement | Helps students make decisions about their courses and degree path. |
Academic Performance and Tutoring Center | Offers one-on-one tutoring, study hall, and online tutoring to help students in many subjects ranging from Math to Foreign Language. |
Booth Wellness Center | Provides acute health care, referral services, health education, and brief mental health services. |
Campus Life | The Utah Tech University Student Association offers a variety of ways to get involved socially at the university. |
Career Services | Assists students with career exploration, choosing a major, writing a resume, and getting a job. |
Dean of Students Office | Serves as a primary advocate and support network for students. Assists students who are facing personal challenges, including financial, food, and housing concerns. |
Disability Resource Center | Serves students with disabilities by providing equal access to academic programs, non-academic activities, and campus facilities |
DRC Accessibility | A list of DRC services including exam accommodations, ASL interpreting, materials in alternative format, and more. |
Help Desk | Provides assistance for Canvas, Student Email, Student Services, Trailblazers wireless configuration, laptop assistance, and any other technical troubleshooting you may need help with. |
Library | Provides the resources necessary to facilitate research and enhance university curriculum and programs. |
Math Tutoring Center | Students can drop in to work on homework, take tests, and receive individualized or group tutoring. Online tutoring is also available. |
Student Support Services | Provides a variety of free services to help first-generation, low-income, or students with disabilities to complete an associate degree and move on to a bachelor degree. |
Testing Center | Provides all proctored exams on campus and can make accommodations for remotely proctored exams. |
Utah Health Scholars | Provides tutors for upper-division, health-related courses. Students must register into the UHP program to qualify for this free tutoring. |
Veterans Services | Offers tutoring for some classes and arranges tutoring in other centers for other classes. Must have VA benefits to qualify. |
Writing Center | Offers students personalized attention from tutors for writing. |
Important Dates Fall 2025
Click on this link for important dates: https://catalog.utahtech.edu/academiccalendar
Aug 20 - Classes Begin
Aug 26 – Last day to add w/out instructor signature
Aug 29 – $10 drop/audit fee begins ($10 per class)
Sept 1 Labor Day Holiday (no classes)
Sept 2 - Residency application deadline, $100 late registration/payment fee
Sept 10 – Last day for refund; Last day to drop w/out a W, Pell Grant Census
Sept 17 – Last day to add/audit any course w instructor signature
Oct 9-Oct 10 - Semester Break (no classes)
Oct 13 - Midterm grades due
Oct 17 - Last day to drop an individual class
Nov 14 - Last day for complete withdrawal from all classes
Nov 24-Nov 28 - Thanksgiving Break (no classes)
Dec 5 - Classes End
Dec 8 - Dec 11 - Final Exams
Dec 15 Final grades due by instructors
Last Updated 01/02/2025