ENG 1410: Introductory Programming For Engineers

School of Engineering , University of Guelph
Fall 2021

****
Handout (Course Outline)
****
1st Meeting (Introduction)

**** Instructor:

Prof. Shawki Areibi  
Office: 2335, ext. 53819  
Email: sareibi@uoguelph.ca  
Web site: https://sareibi.uoguelph.ca/  
Office Hours: Tuesdays 2:00 PM - 3:00 PM
 

**** Lab Instructor/Coordinator:

Matt Saunders  
Room 1506, ext. 53916  
Email: msaund05@uoguelph.ca  

**** Teaching Assistants:

TA #1: xxxxxx xxxxxxxxxx  
Office Hours: Monday 10:30 AM - 11:30 AM  
Room Thorn xxxx, ext. NA  
Email: xxxxxxxx@uoguelph.ca
TA #2: xxxxxx xxxxx  
Office Hours: Tuesday 10:30 AM - 11:30 AM  
Room Thorn xxxx, ext. NA  
Email: xxxxxxxx@uoguelph.ca
TA #3: xxxxxxx xxxxxx  
Office Hours: Thursday 10:30 AM - 11:30 AM  
Room Thorn xxxx, ext. NA  
Email: xxxxxxx@uoguelph.ca  

**** Schedule:

Class Times:(In THRN xxxx)
Mon & Wed & Fri: xx:xx AM - xx:xx PM (Webex)
Tutorials:
T01: TUE 16:30 PM - 17:20 PM (Virtual)
T02: WED 13:30 PM - 14:20 PM (Virtual)
T03: THUR 16:30 PM - 17:20 PM (Virtual)
Lab times:(As Indicated Below)
L01: (Wednesday) (15:30 PM - 17:20 PM) RICH 1532
L02: (Thursday) (8:30 AM - 10:20 AM) RICH 1532
L02: (Friday) (09:30 AM - 11:20 AM) Virtual
L02: (Friday) (14:30 PM - 16:20 PM) Virtual

**** Course Description:

This course is for students requiring an introduction and understanding of programming. The goal of this course is to introduce students to the basics of computer software and understand how to use it for problem solving. Topics include the structure of computers, developing and debugging software, data representation and manipulation, functions and program modularization, complex data types, pointers, strings, recursion, file I/O, and simple data structures. Students planning to take additional CIS courses require this course. Previous programming experience is recommended. Students lacking programming experience should consult with their program counsellor.

**** Course Objective:

The main goals of the course are (a) to teach students the fundamental concepts of programming (b) to illustrate clearly how programming can be used to solve engineering problems, (c) demonstrate the relationship between hardware and software in computer systems. At the successful completion of this course, the student will have demonstrated the ability to:
  1. Design and implement a solution for a given problem.
  2. Write a structured program in C to solve many Engineering problems.
  3. Manage storage by statically and dynamically allocating and freeing space for arrays, strings, structs etc.
  4. Debug and correct the syntax of a written program in C.
  5. Use most aspects and constructs in C including flow control, structures and File I/O.
  6. Understand the scope of variables and functions and their usage of the stack.

**** Course Text:

S. Kochan Programming in C, 4th Edition , Pearson, 2015.
Link to Textbook at Pearson

**** Reference:

C Programming: Absolute Beginner's Guide, 3rd Edition
G. Perry and D. Miller, Pearson Education, 2014.

**** Evaluation:

Assignments: (12 Assignments) 20%
Labs: (7 Lab Components) 25%
Midterm Exam: Week 6 (Time, Location: TBA)) 15%
Final Exam: December xxth, 2021, (Location: TBA) 40%

**** Safety:

To ensure your safety and the safety of others, please abide by the lab safety regulations. The lab coordinator will explain them to you during your first lab session.

**** Academic Misconduct:

Please refer to the regulations outlined in the student handbook regarding academic misconduct. The policy for this course is zero tolerancy for any form of academic misconduct. Further, late assignments and labs will not be graded.

**** Tentative Schedule:

Week Topics
1 Introduction to Programming
2 Variables, Data Types, Arithmetic Operations
3 Input/Output Operations in C
4 Program Looping and Decision Making
5 Functions in C
6 Arrays, Strings, Pointers
7 User Defined Data Types (Structs, Union, enum)
8 File I/O in C
9 Operation on Bits
10 Abstract Data Types
11 Makefiles and Version Control
12 Introduction to Object Oriented Programming (C++)





Last updated Sept. 2021