You are here: Home / Past Courses / Spring 2017 - ECPE 170 / Syllabus


ECPE 170 - Computer Systems and Networks - Spring 2017



Jeff Shafer

Office: Anderson Hall 205
Phone: (209) 946-2302
Email: jshafer at pacific dot edu

Office Hours: Tue 1-2pm, Wed 10am-12pm, Thur 2-3pm, and by e-mail appointment.
Please email to request alternate meeting times outside of scheduled office hours.

TA: Kelvin Flores and David De La Vega

Course Basics


Course Description

This course is a comprehensive and holistic examination of the modern computing environment. Students gain an understanding of the various hardware and software components that enable computers and networks to process information and execute applications. Students learn to apply this knowledge in the development of efficient and robust software applications.

The vision for this course is: What do I, as an application programmer, need to understand about the underlying computer (including the operating system and hardware components) in order to write efficient, high-performing programs?


Learning Objectives

After completing this course, you should be able to:

  • Install and use a virtual machine manager to run a hosted operating system on a computer
  • Install and use a modern Linux distribution for a variety of common programming tasks
  • Explain what assemblers, linkers and compilers do, and how they work together to generate and execute libraries and programs
  • Create a Makefile from scratch and use it to compile a program
  • Use a distributed version control system to manage your workflow both as an individual programmer, and as a member of a team
  • Write programs in the C programming language
  • Characterize the behavior of a program in terms of CPU and memory usage
  • Optimize program performance through automated tools
  • Optimize program performance through source code modifications
  • Optimize program performance through an understanding of the underlying hardware mechanisms, such as the computer memory hierarchy
  • Use both big and little endian data representations and convert between them
  • Describe the basic components of a central processing unit, and its instruction execution cycle
  • Describe the components of the memory hierarchy, how these various components are utilized, and how data is moved between them
  • Write programs in assembly language for an ARM processor
  • Explain the primary services provided by an operating system
  • Write client/server Python programs that communicate through standard TCP/IP sockets
  • Explain the protocols and models that underlie computer networks
  • Describe the physical components and communication paths of modern computer networks


Assessment of these topics will be conducted through labs (which include in-class exercises and homework/programming projects) and exams.

Please note that copies of student work may be retained by the instructor to assess how the learning objectives of the course are met.


Attendance Policy

Regular class attendance is strongly encouraged.  Students who miss class meetings are responsible for keeping up with the class.  The course website and companion Sakai site will be used to assist in instruction. You are responsible for keeping up with lab/homework assignments, lecture notes, announcements, and other materials that may be posted on the course website or sent via email (at your email address posted in Canvas).



Grades for the course are assigned on the scale below:


> 93


< 90-­87

< 87-­83

< 83-­80

< 80-­77

< 77-­73

< 73-­70

< 70-­67

< 67-­60

< 60













Your course grade is based on the following items:

Exams: 30% - There will be two equally weighted exams - a mid-term exam halfway through the normal 15-week session, and a final exam during the university-scheduled examination period. Each exam will take the entire class period and will cover material since the previous exam.  Make­-up exams will be given only for excused absences.

Labs: 70% - There will be twelve lab exercises spread throughout the semester. The purpose of labs is for you to gain hands-on experience with common computer skills and solve problems.  A few labs contain pre-lab assignments, which are to be completed as homework before the lab start date. All labs contain in-class tutorials and work sessions. Any lab content not completed in the allocated class time must be completed as homework before a set due date. Make-up labs will be given only for excused absences.

Late Assignments

The only acceptable excuses for missing an assignment due date are serious illness, death in the immediate family or important professional activities. Illness or death in the family may require documentation. Excuses for professional activities must be approved by the instructor in advance.

You will have plenty of time to do assignments, but only if you start when they are assigned.  Late assignments will be accepted with a 2% deduction in points for every day late, up to 7 days past the deadline (for a total deduction of 14%).  Assignments will not be accepted after this 7-day late period without written permission from the instructor *prior* to the start of the late period.


Honor Code 

The Honor Code at the University of the Pacific calls upon each student to exhibit a high degree of maturity, responsibility, and personal integrity. Students are expected to:

  • Act honestly in all matters
  • Actively encourage academic integrity
  • Discourage any form of cheating or dishonesty by others
  • Inform the instructor and appropriate university administrator if she or he has a reasonable and good faith belief and substantial evidence that a violation of the Academic Honesty Policy has occurred.

Violations will be referred to and investigated by the Office of Student Conduct and Community Standards. If a student is found responsible, it will be documented as part of her or his permanent academic record. A student may receive a range of penalties, including failure of an assignment, failure of the course, suspension, or dismissal from the University. The Academic Honesty Policy is located in Tiger Lore and online at


ECPE 170-specific Honor Code Policy

Engineering is generally a cooperative endeavor and collaborative learning can be a valuable experience for all involved. However, proper assessment (i.e., grading) requires that work be done by individuals. To balance these two requirements, the following policy will apply:

  • Collaborative work on lab assignments is encouraged. This includes working together on planning solution strategies and helping each other to debug programs.
  • Collaboration must stop short of someone else writing your assignment. You may not directly copy the work of another student. You also may not copy the work of another student, and then modify it so that it does not look the same as the original author's work. It is your responsibility to ensure that the work you submit is an honest representation of your own understanding of the material.

Marginal cases will be resolved by oral examination of the student(s) involved. If they each understand the material in the assignment, it will be considered honest collaboration. If they do not, then it will be considered academic dishonesty.

In many cases, it may be possible to identify reusable source code from textbooks, web sites or other resources that can help you with assignments.  You are permitted to use such references provided that:

  • The amount of code reused does not exceed 25% of the total assignment length, and
  • In the source code and accompanying lab report (if applicable), you clearly identify any code that you did not write, state where it came from, and to what extent you modified it.

You are responsible for understanding the theory behind all algorithms or source code used, regardless of their source.


Accommodations for Students with Disabilities

If you are a student with a disability who requires accommodations, please contact the Director of the Office of Services for Students with Disabilities (SSD) for information on how to obtain an Accommodations Request Letter.

3-step Accommodation Process

  • Student meets with the SSD Director and provides documentation and completes registration forms.
  • Student requests accommodation(s) each semester by completing the Request for Accommodations Form.
  • Student arranges to meet with his/her professors to discuss the accommodation(s) and to sign the Accommodation Request Letter

To ensure timeliness of services, it is preferable that you obtain the accommodation letter(s) from the Office of SSD within two weeks of the start of the semester.
 After the instructor receives the accommodation letter, please schedule a meeting with the instructor during office hours or some other mutually convenient time to arrange the accommodation(s).

The Office of Services for Students with Disabilities is located in the McCaffrey Center, Rm. 137.
Phone: 209-946-3221