IECE 141: Programming for Engineers - Spring 2022
Course Description

This is an introductory programming course covering the fundamentals of structured programming using the C programming language, and the fundamentals of object-oriented programming using the Java programming language. Topics covered include data types, arrays, multi-dimensional arrays, functions, pointers, strings, structures, static/stack/heap memory, file processing, command line arguments, handling multiple source and header files, classes/objects, code reusability, and inheritance.

After successful completion of this course, students will be able to:

  1. Solve problems and build complex programs, specifically through analyzing, designing, implementing, testing and debugging programs using various concepts including data types, loops, branches, arrays, structs, pointers, and file I/O.
  2. Differentiate, apply, and convert between primitive and composite data types to solve basic programming tasks, as well as understand how various data types are encoded in memory.
  3. Encapsulate code that performs specific tasks using programming functions, as well as apply understanding on how information is passed to functions using pass by value vs. pass by reference.
  4. Use variables that contain memory addresses (pointers) and solve programming problems that rely on referencing and dereference memory locations. Differentiate between various memory regions including stack, heap and static memory, and write code that utilizes the different memory regions.
  5. Apply principles of data abstraction and encapsulation allowing for reusable and extendable code specifically by designing, writing, testing and debugging object-oriented software.
  6. Given a written description of a problem, solve the program by formulating the appropriate algorithm, implementing the algorithm, and testing that the algorithm solves the described problem.


Prerequisites:
A grade of a C or better in both ICEN111/150 and AMAT112 or 118. It is open only to electrical/computer engineering majors.
Electrical and Computer Engineering majors must receive a C or better to avoid repeating this class.

Lecture:
         Time:
Tuesday and Thursday, 3:00PM-4:20PM
         Location: Lecture Center 3B


Lab:
         Time:
Wednesday, 6:00PM-8:50PM
         Location: Lecture Center 3B




Instructor Teaching Assistant Teaching Assistant
Prof. Dola Saha
Prof. Dola Saha
Email: dsaha AT albany DOT edu
Office Hours: HYBRID
Monday 10-11AM @ ETEC 213 OR Zoom
Tuesday 12:30-1:30PM @ ETEC 213 OR Zoom
Wednesday 12-1PM @ ETEC 213 OR Zoom
Thursday 1:30-2:30PM @ ETEC 213 OR Zoom
Xue Wei
Xue Wei
Email: xwei4 AT albany DOT edu
Office Hours: HYBRID
Friday 11AM-1PM @ ETEC 220 OR Zoom
Ehab Albadawy
Ehab Albadawy
Email: ealbadawy AT albany DOT edu
Office Hours: HYBRID
Friday 2PM-4PM @ ETEC 220 OR Zoom

Blackboard: IECE 141: Programming for Engineers
Book

Required:
This course has required readings and interactive exercises using an online textbook.

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBook code: ALBANYECE141SahaSpring2022
  3. Subscribe
A subscription is $79 and will last until Jun 14, 2022.

Laptop

Required:
All Electrical and Computer Engineers majors are required to have a personal laptop (Chrome book is not sufficient). Additional Details are available here (University at Albany Laptop Program).

Grading Information
  1. Participation Activities - 5%
  2. Labs - 15%
  3. Homework - 20%
  4. Exam 1 - 20%
  5. Exam 2 - 20%
  6. Exam 3 - 20%
Grading Scale
A: 100-95 points A-: 94-90 points
B+: 89-87 points B: 86-84 points B-: 83-80 points 
C+: 79-77 points C: 76-73 points C-: 72-70 points
D+: 69-67 points D: 66-63 points D-: 62-60 points
E: 59 points and below
Policies

Assignments: Assignments will be posted in Blackboard. No late assignments will be accepted. All assignments are due by 11:59PM on the due date in Blackboard (unless otherwise specified). Any re-grading requests will be considered up to 5 business days after posting the grades for the corresponding assignment. No re-grading requests will be entertained after the 5-day period has passed. You are not supposed to collaborate on homework assignments.


Academic Honesty and Overall Regulations: Every student has the responsibility to become familiar with the standards of academic integrity at the University. Plagiarism and any act of academic dishonesty will not be tolerated and will be reported to the Graduate/Undergraduate Education in UAlbany. Read the Standards of Academic Integrity and Policies in the Undergraduate Bulletin or Graduate Bulletin.


Course Calendar

Subject to change as per travel schedule, material progresses and unforseen events

Week Date Lecture Topic Lab Topic Other Topic
Module 1: Programming Fundamentals in C
1 Jan 25Introduction to C (Branch/Loop)
Jan 26 Branch and Loops
Jan 27 Datatypes and User I/O HW#1 Assigned, Due Feb 4
2 Feb 1 Type conversion, Variable Scope, Logical Operators, Booleans, Constants
Feb 2 Data types and conversion
Feb 3 Arrays HW#2 Assigned, Due Feb 11
3 Feb 8 Strings
Feb 9 Arrays and Strings
Feb 10 2D Array and Nested Loops HW#3 Assigned, Due Feb 18
4 Feb 15 Functions
Feb 16 Functions
Feb 17 Functions with Arrays and Strings HW#4 Assigned, Due Feb 25
5 Feb 22 Complete System Development
Feb 23 System using Functions, Arrays/Strings, Loops
Module 2: Dynamic Memory and Files in C
Feb 24 Structures and Enumerations Practice Problems Assigned, will not be graded
6 Mar 1 Source and Header Files
Mar 2 Examination on Module 1
Closed Book, closed notes, in-class exam through zyBooks.
Mar 3 Pointers HW#5 Assigned, Due Mar 11
7 Mar 8 Pointers to Arrays, Structures and Strings
Mar 9 Struct, Header Files
Mar 10 Function Pointers HW#6 Assigned, Due Mar 25
8 Mar 15 Spring Break, no lecture or lab
Mar 16
Mar 17
9 Mar 22 Pointer to Pointers
Mar 23 Pointers
Mar 24 Memory Regions HW#7 Assigned, Due Apr 1
10 Mar 29 Files Reading and Writing
Mar 30 File Handling
Mar 31 Binary Files Practice Problems Assigned, will not be graded
Module 3: Java
11 Apr 5 Introduction to Java
Apr 6 Examination on Module 2
Open Book, open notes, without any Internet, in-class exam through zyBooks.
Apr 7 Java Datatypes HW#8 Assigned, Due Apr 15
12 Apr 12 Branch, Loop in Java
Apr 13 Branch, loop
Apr 14 Arrays and Methods HW#9 Assigned, Due Apr 22
13 Apr 19 Object Oriented Programming (objects and class)
Apr 20 Array, Method and Objects
Apr 21 Constructor HW#10 Assigned, Due Apr 29
14 Apr 26 Array List
Apr 27 Constructor
Apr 28 Inheritance HW#11 Assigned, Due May 6
15 May 3 Exceptions and Error Handling
May 4 Inheritance
May 5 Reading Day
May 7Final Examination (3:30-5:30pm)
Open Book, open notes, without any Internet, in-class exam through zyBooks.