ICEN 360: C Programming for Engineers
Course Description

This course serves as an introduction to programming for computer engineering majors and others with a strong interest in the discipline of computer engineering. The course will focus on broad theoretical concepts as well as language syntax. Students will learn how to program in this course by using C programming language. This course will help students develop the critical thinking skills to design the logic flow for a program, irrespective of the programming language. Students will learn how to create structured, procedural programs using variables, functions, control statements and structures, memory management, and pointers. By the end of the course, students will be comfortable with the key concepts, techniques, and software development tools used for writing programs in C to solve engineering problems. Students will also get exposed to programming in Arduino platform, an open-source electronics platform, to utilize the fundamental knowledge of programming for physical computing. The course will focus heavily on applications, tie every aspect of programming to specific applications, either in an independent field, or a part of some large software.

This is a hands-on, cumulative skill practice and development kind of course – not a course of just learning facts. The critical thing you must do to succeed is to actively participate (not just listen, read and study). The course plan gives incentives for regular, frequent and sometimes challenging engagement with the subject’s intellectual work, but also makes it more fun and easier to maintain the necessary attention. You need to practice constantly to understand the concepts of programming, which usually requires 10 to 15 hours per week aside from the classes.

Time and Location: T/Th 11:45-01:05PM @ Arts & Sciences (AS) 013

Prof. Dola Saha
Prof. Dola Saha
Email: dsaha AT albany DOT edu
Office hours: In BA 312
Tuesday: 1:15-2:15PM
Thursday: 2:00-3:00PM

Blackboard: ICEN 360: C Programming for Engineers

Required: "C How to Program, 8th Edition", Paul Deitel and Harvey Deitel, Pearson

  1. "The C Programming Language", Brian W. Kernighan and Dennis Ritchie, Pearson
  2. "Problem Solving and Program Design in C", Jeri R. Hanly and Elliot B. Koffman, Pearson

Grading Information
  1. Attendance and class Participation - 5%
  2. Class Assignments - 15%
  3. Homework Assignments - 40%
  4. Midterm 1 - 10%
  5. Midterm 2 - 10%
  6. Final Exam - 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

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.

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 be punished. Read the Standards of Academic Integrity and Policies in the Undergraduate Bulletin.

Course Calendar

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

Date Discussion Topic Assignment
January 24Introduction
January 26Simple Program, Arithmetic
January 31Data Types, Decision Making
February 2Structured Programming
February 7Selection
February 9Class cancelled due to snow
February 14Selection & Iteration
February 17Iteration
February 21Function
February 23Midterm 1
February 28Recursion
March 2Arrays
March 7Multidimensional Array
March 9More Arrays, Pointers
March 14No classes, Spring Break
March 16No classes, Spring Break
March 21Pointers, Array of pointers
March 23Structures and Unions
March 28Bit Manipulation, Enumeration
March 30Characters and Strings
April 4Strings
April 6Midterm 2
April 11No classes, Passover
April 13File Processing
April 18Programming embedded system - Overview, Digital Write Resources: Language Reference, Tutorials, Book, Lessons from Adafruit, Slides from Sparkfun
April 20Programming embedded system - PWM, Analog Write
April 25Programming embedded system - Digital Read, Analog Read, Serial In
April 27Data Structure
May 2Programming embedded system - Project PresentationJorge Gomez - slides, video
Lucas Henry - slides, video
Hun Heo - slides, video
Bradey Liverio - slides, video
Ian Walter - slides, video
May 4Object Oriented Programming
May 9Review
May 18Final Exam 8:00-10:00AM