8/30/24, 4:58 PM Syllabus for Computational Engineering
Course Syllabus
Statement on Use of LLMs
Recently, machine learning systems called large-language models, trained on code bases, have become
publicly available. However, over-reliance on these tools will impair your learning. Therefore, you will not
be allowed to use such tools in this course.
Course Overview
Computational Engineering is common to both electrical and computer engineering programs. The
course focuses on software development but equally emphasizes the steps that should precede writing
code, such as abstract thinking, modeling, simulation, data analysis, and visualization. Computing is an
essential skill for all engineering disciplines, and one gets better through preparation (what one does
before writing code) and practice. Jumping into coding with a fuzzy understanding of the problem to be
solved is virtually guaranteed to be a long and frustrating experience. Not thinking first about the problem
before writing code, implementing everything before testing anything, and not decomposing the problem
into subproblems are great examples of “haste makes waste.”
Catalog Description
Software development processes for electrical and computer engineering applications. Modeling,
simulation, data analysis, and visualization. Computing abstractions and the use of application
programming interfaces. Software design and implementation using a procedural, class-based language.
Integrated code development and testing. Team-based development of autonomous system applications
reinforcing course topics. Pre-req: 1004. (3H,3C)
Required Materials
C++ material will be available on Canvas, supplemented by excellent online resources such as
https://www.learncpp.com/ (https://www.learncpp.com/) and https://www.cppreference.com
(https://www.cppreference.com) . Consider these popular, searchable, and up-to-date online resources to
serve as your C++ text.
You need a laptop that meets the College of Engineering requirements. It must be able to run 64-bit
Windows 10 or 11 either natively or with a VM. C++ code development will use VS Code
https://canvas.vt.edu/courses/196106/assignments/syllabus 1/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
(https://code.visualstudio.com/) , MSYS2 (https://www.msys2.org/) (for the GCC compiler), Git
(https://git-scm.com/) , GitHub (https://github.com/) , and CMake (https://cmake.org/) .
Grading
Class exercises 10%
Weekly assignments 35%
Ethics assignment 5%
Two midterm exams (15% each) 30%
Final exam (December 17, 2024, 11:05am – 1:05 pm) 20%
Letter grades are assigned according to the following table without rounding:
Minimum Numeric Grade Letter Grade
0 F
61 D-
64 D
67 D+
70 C-
74 C
77 C+
80 B-
84 B
87 B+
90 A-
94 A
Final semester grades will be determined after all work is completed and graded. The same grading
scale will always be applied to all students. There is no grade curving to produce specific proportions of
letter grades; in other words, everyone could receive a grade of A. Students with questions about their
performance should discuss them with the instructor.
Grading policies
https://canvas.vt.edu/courses/196106/assignments/syllabus 2/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
All assignments and projects are due when specified. No late exercises will be accepted, but for
assignments and projects, you get five free late days (24-hour periods, including weekends) during the
semester to accommodate emergencies. If you want to use one or more of these, turn it in as usual after
the due date. Once your late days are used up, only late work will be accepted with an official
accommodation from the Dean of Students. Work that is not turned in will receive a grade of zero.
If you feel that an error has been made in grading an assignment or an exam, you must present the work
to your instructor within one week after the graded work is made available to you. Virtual office hours are
an excellent time to address these issues rather than before/after class when we do not have access to
the grade list or proper time to consider the matter. Grades will not be changed after the one-week
period. Appeals should address specific grading errors.
Honor Code
Honesty in your academic work develops into professional integrity. As such, the Honor Code will be
strictly enforced in this course. The Honor System covers all aspects of your coursework. All
examinations and assignments are expected to be your own individual work unless a team project is
specified, in which case it is to be the work of only your team. It is an Honor Code violation to take credit
for work that another member of your team actually performs; this will be discussed in more detail in
class and assignment descriptions, but the gist of the policy is that you must not claim credit for work you
did not perform. We will use plagiarism detection tools that cannot be thwarted by superficial
changes such as changing variable names or reformatting. Report any suspected violations of the
Honor Code promptly. Discussion and cooperative learning on general topics covered in the course is
encouraged. However, revealing your solution code to other students when posting a question must be
avoided since it is an Honor Code violation.
The Undergraduate Honor Code pledge, which each member of the university community agrees to
abide by, states:
“As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor
will I accept the actions of those who do.”
Students enrolled in this course are responsible for abiding by the Honor Code. A student who has
doubts about how the Honor Code applies to any assignment is responsible for obtaining specific
guidance from the course instructor before submitting the assignment for evaluation. Students are
strongly discouraged from misusing sites such as Chegg and CourseHero, as well as misusing ChatGPT
and other Generative Artificial Intelligence. Students are strongly encouraged to consult their faculty
members regarding the use of such outside materials, as the misuse of these sources may constitute a
of the Honor Code. Ignorance of the rules does not exclude any member of the University
violation
community from the requirements and expectations of the Honor Code.
https://canvas.vt.edu/courses/196106/assignments/syllabus 3/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
Academic integrity expectations are the same for online classes as they are for in-person classes. We
strongly encourage all instructors to discuss the use of technology and specifically discuss areas we
know are problematic temptations for students, such as ChatGPT, Chegg, CourseHero, and GroupMe, to
discourage students from using them. When the semester starts is an appropriate time in addition to
providing a kind reminder before exams and assignments about expectations related to these sites.
Please make your students aware that we are able to effectively investigate these incidents. If you have
any questions about these sites or discussing them with your students, please do not hesitate to call our
office. All university policies and procedures apply in any Virginia Tech academic environment, and all
students are expected to follow them.
See additional information about the Honor Code (https://www.honorsystem.vt.edu/) .
Commission of any of the following acts shall constitute academic misconduct. This listing is not,
however, exclusive of other acts that may reasonably be said to constitute academic misconduct.
Clarification is provided for each definition with some examples of prohibited behaviors in the
Undergraduate Honor Code Manual.
Cheating: Cheating includes the intentional use of unauthorized materials, information, notes, study
aids or other devices or materials in any academic exercise, or attempts thereof.
Plagiarism: Plagiarism includes the copying of the language, structure, programming, computer
code, ideas, and/or thoughts of another and passing off the same as one's own original work, or
attempts thereof.
Falsification: Falsification includes the statement of any untruth, either verbally or in writing, with
respect to any element of one's academic work, or attempts thereof.
Fabrication: Fabrication includes making up data and results, and recording or reporting them, or
submitting fabricated documents, or attempts thereof.
Multiple Submission: Multiple submission involves the submission for credit – without authorization
from the instructor receiving the work – of substantial portions of any work (including oral reports)
previously submitted for credit at any academic institution of attempts thereof.
Complicity: Complicity includes intentionally helping another to engage in an act of academic
misconduct, or attempts thereof.
Violation of University, College, Departmental, Program, Course, or Faculty Rules: The
violation of any University, College, Departmental, Program, Course, or Faculty Rules relating to
academic matters that may lead to an unfair academic advantage by the student violating the rule(s).
If you have questions or are unclear about what constitutes academic misconduct on an assignment,
please speak with your instructor. We take the honor code very seriously in the course. The normal
sanction we will recommend for a violation of the Honor Code is an F* sanction as your final course
grade. The F represents failure in the course. The “*” is intended to identify a student who has failed to
uphold the values of academic integrity at Virginia Tech. A student who receives a sanction of F* as their
final course grade shall have it documented on their transcript with the notation “FAILURE DUE TO
ACADEMIC HONOR CODE VIOLATION.” You would be required to complete an education program
https://canvas.vt.edu/courses/196106/assignments/syllabus 4/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
administered by the Honor System in order to have the “*” and notation “FAILURE DUE TO ACADEMIC
HONOR CODE VIOLATION” removed from your transcript. The “F” however would be permanently on
your transcript.
Special Needs
Any student with special needs or circumstances should feel free to meet with or otherwise contact your
instructor.
Disability Accommodation:
The following is the Virginia Tech syllabus statement from the VT SSD office:
Virginia Tech welcomes students with disabilities into the University’s educational programs. The
University promotes efforts to provide equal access and a culture of inclusion without altering the
essential elements of coursework. If you anticipate or experience academic barriers that may be due to
disability, including but not limited to ADHD, chronic or temporary medical conditions, deaf or hard of
hearing, learning disability, mental health, or vision impairment, please contact the Services for Students
with Disabilities (SSD) office (540-231-3788, ssd@vt.edu (mailto:ssd@vt.edu) , or visit www.ssd.vt.edu
(http://www.ssd.vt.edu) ). If you have an SSD accommodation letter, please meet with me privately during
office hours as early in the semester as possible to deliver your letter and discuss your accommodations.
You must give me a reasonable notice to implement your accommodations, which is generally 5
business days and 10 business days for final exams.
Religious accommodation
If participation in some part of this class conflicts with your observation of specific religious holidays
during the semester, please contact your instructor during the first two weeks of the course to make
alternative arrangements.
Accommodations for medical or personal/family
emergencies:
If you experience a personal, medical, or family emergency that necessitates missing class or being
unable to participate in coursework, then please get in touch with the Dean of Students. They will get
https://canvas.vt.edu/courses/196106/assignments/syllabus 5/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
the necessary information from you and can arrange to notify all of your professors regarding the time
that you will be unable to participate in the course.
Course Summary:
Date Details Due
Exercise 01.0 - Set up your
development environment due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2109118)
Mon Aug 26, 2024
Exercise 01.00 - Programming
background survey due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2109116)
Exercise 01.1 - Visual Studio
Tue Aug 27, 2024 and Git test drive due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2113500)
Wed Aug 28, 2024 Exercise 01.2 - Types and I/O due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2116177)
Fri Aug 30, 2024 Exercise 01.3 - Control flow due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2113518)
Wed Sep 4, 2024 Exercise 01.4 - Functions due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2113646)
Fri Sep 6, 2024 Exercise 01.5 - Vectors due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2116713)
Assignment 01 - Functions
with control flow due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2113648)
Mon Sep 9, 2024
Exercise 02.1 - Debugging due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2113647)
Wed Sep 11, 2024 Exercise 02.2 - Testing due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2114960)
Fri Sep 13, 2024 Exercise 02.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2114959)
https://canvas.vt.edu/courses/196106/assignments/syllabus 6/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
Date Details Due
Assignment 02 - Functions
with strings and vectors due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2114951)
Mon Sep 16, 2024
Exercise 03.1 - Functional
requirements due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2117202)
Wed Sep 18, 2024 Exercise 03.2 - 2D vectors due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2122071)
Fri Sep 20, 2024 Exercise 03.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2122126)
Exercise 04.1 - Static local
variables due by 11:55pm
(https://canvas.vt.edu/courses/196106/assignments/2126079)
Mon Sep 23, 2024
Assignment 03 - Edge
detection for grayscale images due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2117056)
Fri Sep 27, 2024 Midterm Exam 1 - 10:10 AM due by 11am
(https://canvas.vt.edu/courses/196106/assignments/2126072)
Assignment 04 - Report on
chosen case study due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2117058)
Mon Sep 30, 2024
Exercise 05.1 - Define and
initialize a struct to capture course
due by 11:59pm
information
(https://canvas.vt.edu/courses/196106/assignments/2126081)
Exercise 05.2 - Coffee shop
Wed Oct 2, 2024 menu due by 11:55pm
(https://canvas.vt.edu/courses/196106/assignments/2126080)
Fri Oct 4, 2024 Exercise 05.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126083)
Mon Oct 7, 2024 Assignment 05 - From due by 11:59pm
requirements to structs, enums
https://canvas.vt.edu/courses/196106/assignments/syllabus 7/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
Date Details Due
and functions
(https://canvas.vt.edu/courses/196106/assignments/2127162)
Exercise 06.1 - Reading and
writing into streams due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126082)
Wed Oct 9, 2024 Exercise 06.2 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126084)
Assignment 06 - Football game due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2117059)
Mon Oct 14, 2024
Exercise 07.1 - Pointers and
references due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126086)
Exercise 07.2 - Palindromes
Wed Oct 16, 2024 using pointers due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126089)
Fri Oct 18, 2024 Exercise 07.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126087)
Assignment 07 - Using a String
Manipulation Library due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126069)
Mon Oct 21, 2024
Exercise 08.1 - Dynamic
memory allocation due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126090)
Exercise 08.2 - Playlist
Wed Oct 23, 2024 Manager due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126091)
Fri Oct 25, 2024 Exercise 08.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126092)
Assignment 08 - Team Roster
Mon Oct 28, 2024 Management due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126068)
https://canvas.vt.edu/courses/196106/assignments/syllabus 8/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
Date Details Due
Wed Oct 30, 2024 Midterm Exam 2 due by 11am
(https://canvas.vt.edu/courses/196106/assignments/2126071)
Exercise 09.3 - A state
Fri Nov 1, 2024 machine to make coin change due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126085)
Assignment 09 - FSM for the
Football game due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126070)
Mon Nov 4, 2024
Exercise 10.1 - Fraction class due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126093)
Wed Nov 6, 2024 Exercise 10.2 - 3D point class due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126105)
Fri Nov 8, 2024 Exercise 10.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126125)
Assignment 10 - Football game
with classes due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126075)
Mon Nov 11, 2024
Exercise 11.1 - Date class due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126126)
Wed Nov 13, 2024 Exercise 11.2 - Money class due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126127)
Fri Nov 15, 2024 Exercise 11.3 - In class lab due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126128)
Mon Nov 18, 2024 Assignment 11 - Bank System due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126073)
Mon Dec 2, 2024 Assignment 12 - Tic Tac Toe due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126076)
https://canvas.vt.edu/courses/196106/assignments/syllabus 9/10
8/30/24, 4:58 PM Syllabus for Computational Engineering
Date Details Due
Assignment 13 - Football
Mon Dec 9, 2024 Game due by 11:59pm
(https://canvas.vt.edu/courses/196106/assignments/2126077)
Late Day Credits Left (max 5)
(https://canvas.vt.edu/courses/196106/assignments/2137551)
Practice Questions for
Midterm Exam 1
(https://canvas.vt.edu/courses/196106/assignments/2119047)
https://canvas.vt.edu/courses/196106/assignments/syllabus 10/10