Course Syllabus

Home | Syllabus | Schedule | Videos | Assignments | Resources

Course Description

EECS10 Computational Methods in Electrical and Computer Engineering (4)
An introduction to computers and structured programming. Binary Data Representation. Hands-on experience with a high-level structured programming language. Introduction to algorithm efficiency. Applications of structured programming in solving engineering problems. Programming laboratory.
Prerequisite or corequisite: Mathematics 2A.
Overlaps with EECS 12, ICS 31.
(Design units: 0)

Course Objectives and Student Outcomes

This course relates to Student Outcomes: EAC-1, EAC-6.

  • Related EAC Student Outcomes:

    • EAC-1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
    • EAC-6. An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
  • Course Learning Outcomes:

    • Develop programs using structured design methodology. (EAC-1)
    • Use C language syntax and semantics as well as compilation and debugging techniques. (EAC-1)
    • Manipulate C structures and arrays and use recursion. (EAC-1)
    • Develop programs with simple probability applications using random number generators. (EAC-1, EAC-6)
    • Solve numerical problems with floating point values using approximation and error bounds. (EAC-1, EAC-6)

Course Resources

  • Text book:
    Paul Deitel, Harvey Deitel:
    C: How to Program,
    Eighth Edition,
    Pearson, 2016.
    ISBN-10: 0133976890
    ISBN-13: 978-0-13-397689-2
  • Reference book:
    B. W. Kernighan, D. M. Ritchie:
    The C Programming Language,
    Second Edition,
    Prentice Hall, 1988.
    ISBN 0-13-110362-8
  • Course web site
    online at

Course Contents

Week Topic Reading
1 Introduction, course set up Chapter 1
  C programming: syntax, I/O, basic data types, operators Chapter 2
2 Structured programming: statements, conditionals, loops Chapter 3
  Program control: selection, repetition, control flow Chapter 4
3 Functions: function call and definition, scoping rules Chapter 5
  Arrays: definition, access, operations Chapter 6
4 Pointers: definition, access, operations Chapter 7
  Characters and strings: operations, library functions Chapter 8
5 Formatted input and output Chapter 9
  Structures, unions, and enumerators Chapter 10
  File processing, I/O Chapter 11
  • Note that contents are tentative and may change.
  • Please see the Schedule page for up-to-date scheduling information.

Course Policies

  • Remote Instruction:

    Due to the COVID-19 pandemic, this course is taught remotely online. There is no need to be physically on the UCI campus.
    For remote participation, a laptop with audio and video capabilities and a stable and fast Internet connection are required. Software tools used include email, a web browser for Canvas-based course materials, Zoom video conferencing, and Linux programming tools. Access to the software tools is provided to all enrolled students.
  • Attendance Policy:

    Virtual attendance at lecture and discussion sections is required. It is the student's responsibility to make prior arrangements with the instructor for any absence known in advance. Make-up assignments and/or exams can only be arranged for absence due to medical (or similar) reasons. Proper documentation is required.
  • Laboratory Policy:

    Labs assigned to this course are listed in the Schedule of Classes (see course code 18012). Lab work is performed remotely from a laptop over a network connection to departmental servers. Students may remote login to the server at any time (24/7), but live instructor support is available only during the assigned lab hours.
    All lab work is to be done individually. Copying answers or program code is strictly prohibited.
    Programs must be well documented with useful comments. Excessive, insufficient, or useless comments in the program will result in deducted points.
    Linux is the standard programming platform used for this course. All processes run on the EECS Linux server, (or alternative While other platforms may be used to develop and test the programs, all course work will be checked and graded on the server.
    A command-line terminal with SSH is required to login to these servers. Please refer to the Resources page for a list of suitable SSH clients.
  • Assignments:

    Assignments are listed on the Assignments page. They are assigned on a weekly or bi-weekly basis as indicated on the course web pages.
    Assignments are generally due on Monday at 3pm, unless indicated otherwise on the assignment page.
    The deadline for assignments is hard. Home work turned in after the due date/time will not be graded and will receive no credit. The clock on the server shall be used as the reference clock.
    All assignments are to be submitted electronically while being logged into the account on the server. Detailed instructions on home work submission will be provided with the assignment description.
  • Exams:

    The course includes two midterms and one final examination, scheduled as listed on the Schedule page.
    Each exam covers all the material discussed in the course until the day of the examination.
    All exams are administered remotely. Details are announced before each exam.
    Final examinations are administered during examination week at the time announced in the Schedule of Classes.
  • Grading Policy:

    The final grade for the course will be calculated as a weighted sum of the points scored in the home works, the midterms, and the final examination, as follows:
    • 40% Assignments
    • 30% Midterms
    • 30% Final examination
    Extra credit may be earned with home works if indicated in the assignment.
  • Academic Honesty:

    Academic integrity is essential, as published by the Office of Academic Integrity and Student Conduct (AISC): Academic Integrity Information for Students.
    Under no circumstances are students allowed to work together on any of the examinations.
    Cheating is a dishonest representation of the course work, including but not limited to cheating on an exam, fraudulently presenting lab exercises or assignments by someone else as one's own, or getting someone else to take the course. It is a serious academic offense that will not be tolerated. Cheaters can expect to receive a failing grade and will be punished under University regulations.

Course Summary:

Date Details Due