ESE 124 — C Programming

4 credits

The course presents fundamental and more advanced C programming concepts. Lectures discuss the C language constructs and exemplify their using in relevant programming applications. The course also introduces fundamental concepts in electrical and computer engineering, such as bitwise operations, text file scanning, stack-based computation, table-based finite state machine implementation, hash tables, and linked lists. Scheduled lab activities focus on devising, implementing, debugging, and validating C programs for the concepts discussed in class. A course project focuses on developing a more extensive C program that comprehensively utilizes the programming concepts discussed during the semester. May not be taken for credit in addition to EEO 124.

Prerequisite: Declared Area of Interest or Major in Electrical or Computer Engineering.

Programming code on a computer screen with a robot visible in the background.

Programming resources

Semester syllabi

The source includes separate spring, summer and fall outlines. The Spring 2025 dates and Summer 2025 document are retained as historical course material; policies differ by semester.

Semester outlines

Spring syllabus

ESE 124 spring course outline
Week Topic Overview
1 Introduction to C Programming Basic syntax, #include, variables, operators
2 Data Types and Bitwise Operations Primitive types, logic & bitwise operations
3 Conditionals and Loops Control structures: if, switch, loops
4 Functions and Scope Function declarations, variable scope
5 Arrays and Strings Working with structured data
6 Abstract Data Types Header files, modular programming
7 Pointers and Memory Management Pointer arithmetic, dynamic memory allocation
8 Finite State Machines Table-based FSM implementation
9 Linked Lists Implementation and applications
10 Hash Tables Implementing hashing techniques
11 Recursion Recursive programming concepts
12 Final Review & Project Completion Course wrap-up and final project work
Grading policy
Component Weight
Midterm Exam 25%
Final Exam 25%
Weekly Homework 15%
Lab Assignments 20%
Course Project 15%
Extra Credit (Participation & Bonus) Up to 5%

Late Submission Policy: Homework submitted up to 2 days late will be graded out of 75% of the maximum.

Passing Criteria: In the final exam, you must score at least 45 out of 100 to pass.

Final grade scale
Grade Percentage range
A 90–100
A− 85–89.99
B+ 80–84.99
B 75–79.99
B− 70–74.99
C+ 65–69.99
C 60–64.99
C− 55–59.99
D+ 52–54.99
D 48–51.99
F 0–47.99

Important dates — source Spring 2025

  • First Day of Lectures: Tuesday, January 27, 2025
  • Lab Activities Start: Week 2
  • Midterm Exam: Thursday, Week 8
  • Final Exam: As scheduled by the university

Source date conflict: The source says “Tuesday, January 27, 2025.” January 27, 2025 was a Monday; the source wording is retained here pending clarification.

Summer syllabus overview

Six-week summer outline
Week Syllabus Overview
1 Foundation: Programming fundamentals, data types, expressions Starts with basic building blocks
2 Logic & Control: Decision-making, repetition, control statements, loops, bits, number systems Advances to decision-making and repetition in code
3 Data Structures: Arrays, strings, text processing Introduces ways to store collections of data
4 Core Operations: Mathematical operations, type conversion, bitwise operations, functions Covers mathematical operations and essential core operations
5 Advanced Concepts: Finite State Machines, pointers, memory management, ADT implementation (Stack, Queue) Introduces advanced concepts and data structures
6 Applied Concepts: File input/output, data structures, algorithms Applies concepts to real-world problems

Summer 2025 — Programming Fundamentals

Historical syllabus: July 7–August 15, 2025. Required course; 4 credit hours; synchronous attendance. Instructor: Jenny Chen — jenny.chen.4@stonybrook.edu.

Open / download the complete Summer 2025 syllabus (PDF)

The course covers basic and advanced C programming concepts, language constructs and practical applications; bitwise operations, text file scanning and stack-based computation. Labs create, debug and validate C programs related to class material, and the final project uses the learned concepts in a comprehensive program.

Goals: Understand C fundamentals (syntax, data types, functions, pointers, bitwise operations, text file scanning, stack-based computation, table-based finite state machine implementation etc.), write clear programs, solve problems, and prepare for advanced computer science and engineering.

Attendance and camera policy

Keep cameras on during lectures and lab activities. Students are randomly selected to answer questions for extra points; wrong answers do not lose points. This supports participation and attendance tracking.

Submit online exercise activities from Brightspace assignments to GitHub. Quiz, exams and final use the LockDown browser: Brightspace LockDown browser instructions.

Summer 2025 grading
Component Weight
Lab Activity 20%
Quiz 15%
Exam 1 25%
Exam 2 25%
Final Project 15%

Late submissions: Grades are deducted by one-quarter grade for each overdue day.

Weekly quiz: Thursday, 9:30–9:55 AM, camera on. Log in to the Brightspace course first, then use LockDown browser. The lowest score is dropped.

Success tips

  • Watch weekly Brightspace videos before lectures and bring questions.
  • Find question and solution links in Brightspace; use rubrics to guide answers.
  • Log in daily for at least 3.5 hours; consistent daily engagement is required in this intensive course.
Summer 2025 weekly schedule
Week and dates Topics Important notes
1: July 7–11 Basic C, bitwise operations, ASCII, control statements  
2: July 14–18 Taylor Series, text scanning, File I/O, Bubble Sort  
3: July 21–23 Review; Exam 1 July 23 evening; LockDown browser
4: July 28–August 1 Functions; Finite State Machines (FSM)  
5: August 4–8 Pointers, function pointers, structs, ADT  
6: August 11–15 Exam 2; final project and summary Exam 2: August 11 evening. Final (make-up): August 13, harder, evening.

Lab submissions: Two exercises per week, due Friday and Sunday at 11:59 PM. Submit on GitHub through the Brightspace assignments tab.

Summer 2025 meeting times
Meeting Time and location
Lecture Monday/Wednesday, 9:30 AM–12:55 PM, Zoom
Lab Tuesday/Thursday, 9:30 AM–12:55 PM, Zoom
Office hours Thursday, 2–3 PM, Zoom

Student Accessibility Support Center

Students with a physical, psychological, medical or learning disability that may affect coursework should contact the Student Accessibility Support Center, 128 ECC Building, (631) 632-6748, sasc@stonybrook.edu. The center determines necessary and appropriate accommodations with the student; information and documentation are confidential.

Academic integrity and critical incident management

Students must pursue academic goals honestly and be personally accountable for submitted work. Representing another person’s work as your own is wrong. Faculty must report suspected dishonesty to the Academic Judiciary; Health Sciences Center and School of Medicine faculty follow school-specific procedures. Academic integrity information.

Respect other people’s rights, privileges and property. Faculty must report disruptive behavior that interrupts teaching, compromises safety or inhibits learning to the Office of University Community Standards. HSC and School of Medicine faculty follow school-specific procedures. Further academic information is available in the Undergraduate Bulletin, Undergraduate Class Schedule and Faculty-Employee Handbook. Full policy wording is retained in the linked PDF, prepared April 30, 2025.

Fall syllabus overview

Fall ESE 124 course outline
Week Syllabus Overview
1 Foundation: Programming fundamentals — syntax, compilers, IDEs, variables, data types, operators and expressions. Command line and debug tools. Introduction to programming basics
2 Logic & Control: Decision-making through control statements, operators, ASCII values, bitwise operations and number systems. Control structures for decision-making
3 Data Structures: Arrays, C strings and Taylor Series implementation. Introduction to data structures and arrays
4–5 Continuation of Data Structures and Introduction to File Input/Output More on data structures and file handling
6–7 Functions, Modular Programming and Debugging Techniques Modular programming and debugging
8–10 Object-Oriented Programming (OOP) Concepts, Inheritance, Polymorphism, Encapsulation, Abstraction OOP principles and concepts
11–12 Advanced Topics: Pointers, Dynamic Memory Allocation, Linked Lists, Stacks, Queues, Trees, Graphs Advanced data structures and memory management
13–14 Project Development, Implementation and Testing Project implementation and testing
15 Final Project Presentations and Review Final project presentations

The fall source explicitly includes object-oriented programming topics in weeks 8–10; that wording is preserved.