ECE177: Programming I: From C Foundations to Hardware Interaction

University of Maine ECE

Spring 2026

Instructor: Vincent Weaver
The class meeting time is Mon/Wed/Fri at 1:00pm-1:50pm.
The meeting place is Williams Hall 120.

Labs: There are four lab sections, Mon/Tues/Wed/Thurs 2pm-4:50pm in Barrows Hall 228.

Final exam: Wednesday 6 May 2026, 1:30pm, Williams Hall 120


Office hours:

Syllabus

ece177_2026s.pdf

Course Listing

Introduction to computer programming with emphasis on algorithms and an understanding of underlying hardware. Topics include syntax, variables, control structures, pointers, operators, functions, and input and output.

What We'll Do this Semester

Learning about C

Class Schedule

LabLectures
MondayWednessdayFriday
Week 1 No Lab 19 January
No Class (MLK Day)
21 January
Introduction / Hello World!
Lecture 1 Notes
23 January
C History, CPU/Memory Background
Lecture 2 Notes
Week 2 Lab 1 26 January
No Class (snow)
28 January
Lab1 Preview, Code Comments/Style, C Data Types Lecture 3 Notes
30 January
Number Systems, Type Promotion Lecture 4 Notes
Week 3 Lab 2 2 February
Simple Arithmetic, Hello World Revisited
Lecture 5 Notes
4 February
Lab2 Preview, printf
Lecture 6 Notes
6 February
for/while loops
Operators/Statements/Functions
Lecture 7 Notes
Week 4 Makeup Lab 9 February
if/else Statements
Logical Boolean Operators
Lecture 8 Notes
11 February
Switch/Case Statements, getchar
Lecture 9 Notes
13 February
Bitwise Logic Operators
Lecture 10 Notes
Week 5 Lab 3 16 February
No Class (President's Day)
18 February
Arrays
Lecture 11 Notes
20 February
Strings
Lecture 12 Notes
Week 6 Lab 4 23 February
No Class (snow again)
25 February
Lab#4 Preview, HW#3 Notes
Lecture 13 Notes
27 February
Variable Scope, Pointers, scanf()
Lecture 14 Notes
Week 7 Lab 5 2 March
Lab5 Preview, GPIO, Structs
Lecture 15 Notes
4 March
Midterm Preview
Lecture 16 Notes
6 March
Midterm #1
Week 8 Makeup Lab 9 March
C Pre-processor
Lecture 17 Notes
11 March
Commas, Ternary Operator, sizeof, Casting
Lecture 18 Notes
13 March
goto
Lecture 19 Notes
Spring Break 16 March
18 March
20 March
Week 9 Lab 6 23 March
Lab6 Preview
25 March
Operator Precedence
More Pointers
27 March
File Scope
Serial Port, enums
Week 10 Lab 7 30 March
String Manipulation
Bit Manipulation
Binary Addition
1 April
PWM, ADC on Pico
3 April
File I/O
Week 11 Lab 8 6 April
fgets/scanf
8 April
Midterm Preview
10 April
Midterm #2
Week 12 Lab 9 13 April
malloc/calloc
15 April
unions, bitfields
17 April
state machines
Week 13 Lab 9 continued 20 April
command line arguments
22 April
debugging
24 April
recursion
Week 14 No Lab 27 April
Senior Project Presentations
29 April
git
1 May
final exam review

Homework Assignments

All homeworks will be done via CodeLab. You should have received an e-mail with the information you need to log into the CodeLab site.

Labs


Optional Useful Textbooks


Useful Links


Back to my homepage
Last updated 18 March 2026, 16:24