0% found this document useful (0 votes)
23 views4 pages

ENCMP 100 Syllabus PDF

ENCMP 100 is a computer programming course for engineering students, focusing on Python to solve engineering problems. The course includes lectures, labs, and assessments such as quizzes and a final exam, with a grading structure based on lab assignments, quizzes, and the final exam. Students will learn programming fundamentals through a structured curriculum aligned with Bloom's Taxonomy of Learning.

Uploaded by

ddddevoe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views4 pages

ENCMP 100 Syllabus PDF

ENCMP 100 is a computer programming course for engineering students, focusing on Python to solve engineering problems. The course includes lectures, labs, and assessments such as quizzes and a final exam, with a grading structure based on lab assignments, quizzes, and the final exam. Students will learn programming fundamentals through a structured curriculum aligned with Bloom's Taxonomy of Learning.

Uploaded by

ddddevoe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

ENCMP 100 Computer Programming for Engineers © Joseph et al.

, 2020–23

Course Outline1 (FAQ format)


Who is teaching this course?
ENCMP 100 is taught by multiple instructors, listed below, and teaching assistants (TAs), listed on eClass.
This academic year, all lecture sections are coordinated. Each year, all lab sections are coordinated.

Section Term Instructor Contact Details


All LABs F2022 Wing Hoy (he/him/his) Wing ([email protected])
LEC A1/800 F2022 Dileepan Joseph (he/him/his) Dr. Joseph ([email protected])
LEC A2 F2022 Mahdieh Khoshniat (she/her) Ms. Khoshniat ([email protected])
All LABs W2023 Wing Hoy (he/him/his) Wing ([email protected])
LEC B1 W2023 Dileepan Joseph (he/him/his) Dr. Joseph ([email protected])
LEC B2 W2023 Jason F. Myatt (he/him/his) Dr. Myatt ([email protected])
LEC B3 W2023 Kamal Ranaweera (he/him/his) Dr. Ranaweera ([email protected])

The lab instructor is available via email for any inquiry and also has office hours. He can help students,
who need either asynchronous or synchronous help, and consults a lecture instructor as required.

What is this course about?


Calendar description: “Fundamentals of computer programming with emphasis on solving engineering
problems. Structure and syntax of computer programs, variables, data types, data structures, control
structures, functions, input/output operations, debugging, software development process.” A former
Associate Dean recommended Python to become, from 2022, the language of instruction.

Goals and objectives: The primary goal is to teach, via a team approach, the “fundamentals of computer
programming with emphasis on solving engineering problems.” A secondary goal is for students, who
Excel (A− to A+ grades) in the course, to learn how to program both capably and productively, with
Python in particular and, via continued education, with any procedural programming language.
Objectives are to teach six aspects of programming, using Python, as outlined below.

Category Subcategory Duration Labs


1. Programming Basics a) Expressions and Statements About 3 weeks 1
b) Inputs, Outputs, and Plots
2. Selection and Repetition a) Expressions and Statements About 3 weeks 2–3
b) Inputs, Outputs, and Plots
3. Functions and Structures a) Advanced Sequential Flow About 2 weeks 4
b) Adv. Selection and Repetition
4. Text and File Processing a) Advanced Sequential Flow About 2 weeks 5
b) Adv. Selection and Repetition
5. Additional Topics (e.g., a) Advanced Sequential Flow About 2 weeks 6
image processing) b) Adv. Selection and Repetition

1
Policy about course outlines can be found in the “Course Requirements, Evaluation Procedures and Grading”
section of the University Calendar (https://calendar.ualberta.ca/).

1
ENCMP 100 Computer Programming for Engineers © Joseph et al., 2020–23

6. Software Engineering Selected concepts (e.g., debugging, Throughout the 1–6


modularization, and refactoring) term

Outcomes: What students will learn to do is organized using Bloom’s Taxonomy of Learning. Thus,
learning outcomes are grouped into six, i.e., one group at each taxonomic level, as follows:

1. [REMEMBER] Recognize the course vocabulary, namely the selected keywords, operators, and
functions, of the chosen programming language. Recall the grammar or syntax of the same.
2. [UNDERSTAND] Summarize the meanings or semantics, such as input-output relationships, of
course vocabulary. Give examples of items being used in the main ways they can be used.
3. [APPLY] Demonstrate an understanding of program flow, namely sequential flow, selection,
repetition, and invocation (function calls). Predict the effects of short (modular) programs.
4. [ANALYZE] Compare different programs for the same purpose in terms of correctness or
readability. Explain how one or a few lines of code relate to the program's purpose.
5. [EVALUATE] Critique examples of incorrect or unreadable code, identifying syntax, run-time,
logical, or style errors/issues. Assess programs against their stated requirements.
6. [CREATE] Design, implement, and test an original program to meet given requirements, using a
debugger as needed. (Compose requirements and develop a program to meet them.)

Required: Chapters 1 to 9 of Python for Everyone 3E, by Horstmann and Necaise (2018), plus Chapters 2
and 4 of Python Machine Learning, by Lee (2019), are available via the bookstore as one (e)book and via
the library as one or two (e)books. Books on reserve in the library are available to borrow for free.

Where is this course held?


Lectures are held in T LB-001 (Fall Term) or ETLC E1-001 (Winter Term) and labs in ETLC E2-005/009
(both Terms). Please download and install Spyder, the Scientific Python Development Environment, on
your own computer. It is available to everyone free of charge for Windows, Mac OS, and Linux. Course
materials, and announcements, are shared online via eClass. Open-book quizzes are held online. A
closed-book final exam is held in the Universiade Pavilion (Butterdome). There is no midterm.

When are the course events?


A schedule of lecture topics, lab assignments, and term quizzes, cross-referenced to teaching objectives,
is available online. Lectures should be attended synchronously in person as scheduled in Bear Tracks.
Thanks to audiovisual tech support, lecture recordings are available asynchronously, either before/after
the synchronous date and time. There are no lectures on public holidays or during a Reading Week.

As scheduled in Bear Tracks, each student has a synchronous lab section, 80 minutes long, almost every
week. A detailed schedule, including deadlines, is on eClass. Students must manage time wisely because
lab and quiz assessments overlap. If accepted, late submissions are penalized 10% per business day.

A three-hour final exam is from 2 to 5 PM (MT) on Tue, Dec. 20th, in the Fall Term, and from 2 to 5 PM
(MT) on Wed, Apr. 26th, in the Winter Term. To request an excused absence on the final exam, students
must apply directly to Engineering Student Services. A deferred exam will be scheduled if the request is
granted. Please read “Absence from Final Exams” in the University Calendar for additional details.

2
ENCMP 100 Computer Programming for Engineers © Joseph et al., 2020–23

Why should I take this course?


The short answer is that ENCMP 100 is a required course for engineering students. In 2008, an ENCMP
100 Task Force, chaired by an Associate Dean, with representation from each engineering department,
recommended that ENCMP 100 continue as a required course for all engineering students. In 2021, an
Associate Dean initiated a process to replace MATLAB with Python as the language of instruction.

That said, we hope that you will enjoy ENCMP 100. The way to enjoy learning how to program and/or
learning how to program (better) in Python, if you already know how to program, is to focus on
developing skills, especially creative skills, while trusting that knowledge is the bedrock of skills. If you
were to learn a natural language, e.g., French, you would not learn it for the sake of its vocabulary and
grammar, but you would need that knowledge to be capable and productive with the language.

How is my course grade chosen?


Three components determine the final mark: six lab assignments, five term quizzes, and, one final exam,
worth 60%, 10%, and 30%, respectively. The lab instructor may grant you an excused absence for a lab
assignment and/or a term quiz, in which case its weight will be transferred to the other lab assignments
and/or term quizzes. Please read “Absence from Term Work” in the Calendar for additional details.

Grades reflect judgments of student achievement and correspond to an associated descriptor. Difficulty
of the course follows a Faculty of Engineering recommendation for a B− class average. Award of a grade
is based mainly on absolute achievement, as determined by instructors and TAs, and has little to do with
relative performance in the class. Please see “Grade Cutoffs” and “Lab Assignment Grading” online.

Descriptor: Excellent Good Satisfactory Min. Pass Failure


Grade: A+ A A− B+ B B− C+ C C− D+ D F
Value: 4.0 4.0 3.7 3.3 3.0 2.7 2.3 2.0 1.7 1.3 1.0 0.0

The final exam and term quizzes are composed exclusively of multiple-choice questions (MCQs).
Research indicates that well designed MCQs are appropriate to assess learning outcomes at the first five
levels of Bloom’s Taxonomy of Learning. This means that MCQs are appropriate to assess learning
outcomes 1 to 5 (REMEMBER to EVALUATE). Lab marks serve to assess learning outcome 6 (CREATE). An
optional and not-for-credit programming contest, which emphasizes and assesses learning outcome 6,
may be offered to students in coordinated lecture sections. Details will be announced online.

Ethical behaviour is important not just at university but everywhere. Do not cheat, do not plagiarize, do
not disrupt class, and do not participate in an offence! Otherwise, you will be placed on the naughty list
of the Associate Dean and Santa Claus, along with other much more serious consequences. 2

2
The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are
expected to be familiar with these standards regarding academic honesty and to uphold the policies of the
University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code
of Student Behaviour (online at www.governance.ualberta.ca) and avoid any behaviour which could potentially
result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic
dishonesty is a serious offence and can result in suspension or expulsion from the University.

3
ENCMP 100 Computer Programming for Engineers © Joseph et al., 2020–23

Can I record the course lectures?


Audio or video recording, digital or otherwise, of lectures, labs, seminars or any other teaching
environment by students is allowed only with the prior written consent of the instructor or as a part of
an approved accommodation plan. Student or instructor content, digital or otherwise, created and/or
used within the context of the course is to be used solely for personal study, and is not to be used or
distributed for any other purpose without prior written consent from the content author(s).

Revision History
This document was created in 2017 by Dileepan Joseph, as was a related “Goals, Objectives, Outcomes,
and Assessments” document. They have since been revised by Joseph (2018–23) with input from other
instructors (2018–23) whose ideas for course content and methodology were sufficiently similar.

You might also like