C++ Logo PNG Transparent & SVG Vector - Freebie Supply

Free Python Logo PNG Transparent Images, Download Free Clip Art ...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

Top 3 Programming Languages for Chemical Engineers - Simulate LiveMany 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.

Order LicensesThe 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.


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.


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.


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.


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.