You are here: Home / Past Courses / Fall 2012 - ECPE 170 / Syllabus


ECPE 170 - Computer Systems and Networks - Fall 2012



Jeff Shafer

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

How to find me:

  • Office Hours: Wednesday 1-3pm, Thursday 2-4pm, Other times/days by appointment
  • COMP 177 Computer Networking Lab: Tuesday 2-5pm in Baun 214
    (The lab students get first priority, but typically I have plenty of time to answer other questions, so feel free to stop by...)


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
  • Understand how data flows among primary computer components, and how these data flows impact the efficiency of software applications
  • Write programs in assembly language for the MIPS 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 pre-lab homework assignments, in-class lab sessions, and post-lab 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 Sakai).



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 be 75-90 minutes long and will cover material since the previous exam.  Make­-up exams will be given only for excused absences.

Labs: 70% - There will be ten lab exercises spread throughout the semester. The purpose of labs is for you to gain hands-on experience with common computer science skills and solve problems.  Most labs consists of a pre-lab assignment (to be completed as homework before the lab start date), at least one in-class tutorial and work session, and a post-lab assignment (to 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.

Late assignments will be accepted with a 2% deduction in points for every day late. Late assignments will not be accepted more than 5 days past the deadline. You will have plenty of time to do assignments, but only if you start when they are assigned.


Honor Code Policy

University Statement: The University Honor Code is an essential element in academic integrity. It is a violation of the Honor Code to give or receive information from another student during an examination; or to submit all or part of someone else's work as one's own. If a student violates the Honor Code, the faculty member may refer the matter to the Office of Student Life. If found guilty, the student may be penalized with failure of the assignment or failure of the course. The student may also be reprimanded or suspended from the University. A complete statement of the Honor Code may be found in the student handbook, the Tiger Lore.

SOECS Implementation Process: The School of Engineering and Computer Science holds all of its students to a strict standard of academic integrity. In the case of a suspected violation of the University academic honor code, the faculty member will evaluate the alleged infraction and may take a range of actions, up to and as serious as submitting an “F” or “No Credit” for the course. They will also report it immediately to the chair of the department, the School Assistant Dean’s Office, and the Office of Student Conduct and Community Standards. The Assistant Dean’s Office and the Office of Judicial Affairs may pursue further sanctions, up to and as serious as disqualification from the University, based in part on the seriousness of the incident and any prior violations. Students may also be prevented from dropping or withdrawing from the course, even if the deadline to do so has not expired.


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.


Students with Disabilities

Any student with a physical disability or with a learning disability needing accommodations should register with the Office of Services for Students with Disabilities, in Bannister Hall. The office will assist with any needed accommodations. If you have questions or wish to discuss your disability, please feel free to see me directly.


Nondiscrimination Policy

The University of the Pacific does not discriminate in the administration of any of its educational programs, admissions, scholarships, loans, athletics, or other University activities or programs on the basis of race, color, national and ethnic origin, handicap, sexual orientation or preference, sex or age.