
Programming for Engineers Fall 2021
ME EN 5250/6250 COMP 5005/6005 BME 5900/ 6900
Office Hours: 4PM on Monday, Tuesday, Wednesday, Thrsday (Virtually through Zoom or Microsoft Teams )
Course Instructors: Xuan Huang, Sam Leventhal, Valerio Pascucci
Instructor Webpage: www.cedmav.com
Course Description
Many
modern engineering systems incorporate computational elements, while
other engineering systems needed to be validated through computational
tools or computer-aided data analytics and collection. This course is
designed to provide a foundation in programming, software engineering,
debugging, and using existing computational codes in the context of
analyzing scientific data, develop efficient data processing modules,
and visualizing results.
The
course will be taught using the C++ and Python programming languages.
C++ provides high computing performance and modern programming
capabilities in an advanced object-oriented framework. Python provides
a programmer-friendly environment with high user productivity during
the development of new applications. The course provides a level of
programming proficiency to students planning on taking additional
coursework with a programming emphasis or who might need custom
computational applications in their research.
We
will start by covering all basic concepts in the C++ programming
language and the Visual Studio development environment. Prior
programming experience is not a strict requirement, but some exposure
to basic programming environments (Matlab, Arduino C, etc.) is very
helpful. The class will introduce the students to modern programming
concepts in object-oriented programming, including classes and methods,
polymorphism, and templates. Also, the Python language will be used to
allow students to gain familiarity with a modern GUI library like Bokeh
and quick prototyping capabilities in a scripting mode for data
analytics or for web exploration dashboards.
The course will
use a mixture of short programming exercises and longer, task-oriented
programming assignments that demonstrate commonly used tools and
libraries.
Upon completion of this class, the student should:
- know how to use popular programming languages such as C++ and Python,
- have seen and discussed examples of object programming in C++ and
being able to apply their principles in a practical implementation,
- be able to critique the organization and readability of a software
implementation and propose improvements if needed,
- be able to use basic C++ data structures in real examples efficiently,
- know where to locate additional Python libraries and their documentation as needed for a new project,
- be knowledgeable of efficiency vs flexibility tradeoffs between different C++ data structures,
- have demonstrated the ability to turn a formal description of a
problem into a working software implementation,
- understand the programming model underlying the design of a user
interface and use it in practice in python.
While this
semester the class will be completely on-line, we will distribute the
material on a weekly basis to give the students the proper learning
pace with alternating lectures, on-line office hours, homework, and tests. In
particular, Canvas will be the primary communication tool with lectures
and homework released regularly, and office hours held virtually
via Microsoft Teams or Zoom to allow feedback and clarifications.
Grading:
Programming Exercises (homework): 65%
Mid-terms and a final: 35%
This is a
combined 5xxx-6xxx level course. Students taking the 6xxx section will
have advanced material/extra work added in mid-terms and final.
Grade ranges
mapping of numerical scores to letter grades will be assessed at the
end of the semester based on a variety of factors including the overall performance of
the class.
Reading Material:
Extensive notes (100+ pages) written by David Johnson for the course
topics will be made available. There is also a variety of on-line
resources that will be provided as course page links that provide an
appropriate level of detail for this course. If you want a more
comprehensive book to refer to, you want to consider C++ Primer Plus,
sixth edition, but it is not required.
Late Policy:
Zero credit
is given for late work, please just submit what you have for partial
credit if unfinished. However, you can have a total of three late
calendar days to use at your discretion during the semester (a calendar day can be a reagular workday, a weekend day, or a day of vaction/holiday). The three
late days can be used for three extensions of one day, one extension of
three days, or two extensions of one and two days each. You must notify
the instructors via Canvas of your intent to use this privilege before
the original due date. Also, additional leeway can be given for
officially sanctioned University activities (conference travel, etc.)
if previous notice is given to the instructors via Canvas.
Communication:
A key
responsibility for a student in this course is to use the on-line
Canvas class website and to check it regularly for due dates, updated
materials, and corrections. To send urgent messages to everyone in the
class, such as corrections to assignments or changes in due dates, I
will make use of the email addresses connected to the Canvas site.
Students are expected to check their email and the class website
regularly.
Students who
would like to ask a question should email the instructors through the
Canvas site. Questions should be addressed to "All TAs", you will get
all the course staff, so that is really the best way to get a response.
For technical questions regarding clarification on assignments, it is
best to post the question on the discussion board so that everyone can
see the question and the response and possibly provide a suggestion. I
will often bounce technical questions sent personally and answer to the
entire class for a principle of fairness. In short, the discussion
forum is the best place for a technical discussion since it involves
the entire class.
Working Together:
Students
are encouraged to discuss assignments with fellow classmates, but
students are responsible for writing their own answers. Cheating is:
sharing written or electronic work either by copying, retyping, looking
at, or supplying a copy. Cheating is: writing a solution during or
immediately detailed discussion so that it leads to very similar
solutions. Cheating is not: discussing high-level ideas, answering
questions about concepts or clarifying ambiguities, or helping someone
understand how to use the class tools and software. Of course, there
must be no collaboration or access to any material during examinations.
Please see the University of Utah Student Code for a detailed description of the university policy on cheating.
Students with Disabilities:
The
University of Utah seeks to provide equal access to its programs,
services, and activities for people with disabilities. Students who
need accommodations in this class should give reasonable prior notice
to the Center for Disability Services, 162 Olpin Union Building,
581-5020 (V/TDD). CDS will work with the student and instructor to make
arrangements for accommodations.
Inclusivity:
It is our
intent that students from all diverse backgrounds and perspectives be
well-served by this course, that students' learning needs be addressed
both in and out of class, and that the diversity that the students
bring to this class be viewed as a resource, strength, and benefit. It
is our intent to present materials and activities that are respectful
of diversity: gender identity, sexuality, disability, age,
socioeconomic status, ethnicity, race, nationality, religion, and
culture.
We also expect
students to treat others in the class, including the teaching staff,
with the same level of respect. Your suggestions on how we can make the
course more inclusive and welcoming are encouraged and appreciated.
We take incidents of discrimination, bias, and harassment seriously. We will file reports with the Office or Equal Opportunity, Affirmative Action, and Title IX (OEO) about
such incidents. If you are unsure what differentiates free speech and
professional behavior from discrimination, bias, and harassment, we are
happy to have an open, judgment-free, and confidential conversation
with you, or refer you to the OEO.
Policies and Resources:
College of Engineering Guidelines. For information on withdrawing from courses, appealing grades, and more, see the College of Engineering guidelines.
School of Computing guidelines. For more information on School of Computing policies and guidelines, please refer to https://handbook.cs.utah.edu/2019-2020/Academics/policies.php.
Safety The
University of Utah values the safety of all campus community members.
To report suspicious activity or to request a courtesy escort, call
campus police at 801-585-COPS (801-585-2677). You will receive
important emergency alerts and safety messages regarding campus safety
via text message. For more information regarding safety and to view
available training resources, including helpful videos, visit safeu.utah.edu.
Students with Disabilities:
The
University of Utah seeks to provide equal access to its programs,
services and activities for people with disabilities. If you will need
accommodations in the class, reasonable prior notice needs to be given
to the Center for Disability and Access (http://disability.utah.edu
(Links to an external site.)Links to an external site.). CDA will work
with you and the instructor to make arrangements for accommodations.
Accommodations cannot be given without paperwork from this office.
Addressing Sexual Misconduct:
Title IX
makes it clear that violence and harassment based on sex and gender
(which includes sexual orientation and gender identity/expression) is a
civil rights offense subject to the same kinds of accountability and
the same kinds of support applied to offenses against other protected
categories such as race, national origin, color, religion, age, status
as a person with a disability, veteran's status or genetic information.
If you or someone you know has been harassed or assaulted, you are
encouraged to report it to the Title IX Coordinator in the Office of
Equal Opportunity and Affirmative Action, 135 Park Building,
801-581-8365, or the Office of the Dean of Students, 270 Union
Building, 801-581-7066. For support and confidential consultation,
contact the Center for Student Wellness, 426 SSB, 801-581-7776. To
report to the police, contact the Department of Public Safety,
801-585-2677(COPS).
Student Names & Personal Pronouns:
Class
rosters are provided to the instructor with the student's legal name as
well as "Preferred first name" (if previously entered by you in the
Student Profile section of your CIS account). Please advise me of any
name or pronoun changes (and update CIS) so I can help create a
learning environment in which you, your name, and your pronoun will be
respected. If you need assistance getting your preferred name on your
UIDcard, please visit the LGBT Resource Center Room 409 in the Olpin
Union Building, or email bpeacock@sa.utah.edu to schedule a time to
drop by. The LGBT Resource Center hours are M-F 8am-5pm, and 8am-6pm on
Tuesdays. The present class is completely on-line so it does not invovle general COVID risks.
Student taking classess in person or using the University facilities for homework, labs or other activitiesd, should refer to the offical University COVID guidelines.
Student Wellness:
Personal
concerns such as stress, anxiety, relationship difficulties,
depression, cross-cultural differences, etc., can interfere with a
student's ability to succeed and thrive at the University of Utah. For
helpful resources contact the Center for Student Wellness at
www.wellness.utah.edu or 801-581-7776.
Veterans Center:
If you are
a student veteran, the U of Utah has a Veterans Support Center located
in Room 161 in the Olpin Union Building. Hours: M-F 8-5pm. Please visit
their website for more information about what support they offer, a
list of ongoing events and links to outside resources:
http://veteranscenter.utah.edu/. Please also let me know if you need
any additional support in this class for any reason.
Learners of English as an Additional/Second Language
If you are
an English language learner, please be aware of several resources on
campus that will support you with your language and writing
development. These resources include: the Writing Center
(http://writingcenter.utah.edu/); the Writing Program
(http://writing-program.utah.edu/); the English Language Institute
(http://continue.utah.edu/eli/). Please let me know if there is any
additional support you would like to discuss for this class.
Note:
This
syllabus is meant to serve as an outline and guide for our course.
Please note that I may modify it with reasonable notice to you. I may
also modify the Course Schedule to accommodate the needs of our class.
Any changes will be announced in class and posted on Canvas under
Announcements.