Overview

Course Content

Welcome to ECEn 224! We are excited to teach you all about computer systems. This class will provide you with the fundamental knowledge of how a computer works and will be your anchor for all future computing classes. This class is a sampling class. We will cover many different topics, but we will not dive too deep into any particular subject. The course will give you a taste of what each follow-on computing class offers. After taking this class, you will be familiar with the vocabulary, challenges, and exciting aspects of computer systems. You will be ready to take high-level computing classes.

In terms of preparation for the class, we only assume that you have had one semester of programming (CS 111). If you know nothing else about computers, that is great! That’s why you are here—to learn more about computers! The class will follow a bottom-up approach. We will start with one of the fundamental building blocks of computers: data. From data, we will learn how to manipulate and control data through programming by learning the C programming language. We will then learn how a computer takes a C program and translates it into something it can understand and executes that program. Finally, we will learn how computers get and output data to different systems.

This class has three primary goals:

  1. Understand how a computer works.

  2. Become an excellent C programmer.

  3. Learn important practical computing skills.

We have designed the lectures and labs to be engaging, practical, and (hopefully) fun. This class will not be easy, but it will be gratifying.

Course Makeup

This course is made up of six major components that all work together to help make you an expert in computer systems.

  • Lectures. Lectures are one of the most important ways to learn the material. Please come to lecture. Reading the book, though it is important, is not a substitute. While in lecture, take notes. It will help you stay engaged in the lecture, help you remember the content better, and you have a great study resource for the tests.

  • Homework. Homeworks are due one week after the unit’s material is covered. They will cover information from the lecture and book. The homework will help apply the ideas you have learned from lecture and book and prepare yourself for the exams.

  • Programming Assignments. Some of the topics we learn about in this class require extra practice to truly become a master. This mastery will be accomplished through programming assignments. You will have two programming assignments where you will do a deep dive on one or two of the concepts you learned in class.

  • Exams. There are two midterms and a comprehensive final. No one likes exams, but they are essential to gauge how well you have mastered the content and prove to yourself that you are an expert at computer systems.

  • Labs. Labs are due every week (with a few exceptions). Labs are passed off with a TA and turned in through Github. For every lab, there is also a feedback component. This feedback gives you a chance to tell me what you liked and did not like about the lab so that I can improve the labs for future years. The purpose of the labs is to learn how to build something complex and apply what you have learned in lecture. Throughout the semester you will be building a smart doorbell system. This project will give you the confidence you need to build interesting projects in the future.

  • Recitations. Recitations are a chance for you to meet together as students with a TA and go over the content from the class. Initially, recitation will be focused on skills you will need to be a successful electrical and computer engineer, such as command line tools and debugging code. As the semester progresses, the recitations will shift to focus more on course content and help with labs and programming assignments. While recitations are optional, we highly recommend it.

Grade Breakdown

Component % of Grade
Labs 40
Programming Assignments 15
Homeworks 10
Exams 35

Communication

All communication will be done over Slack. Slack is intended to be used for announcements, questions, and facilitate student communication. If you have a question, ask it on Slack so that everyone can benefit from seeing the question and answer.

Attendance and Participation

This is a sophomore-level class, so I expect participation. I expect all students to attend every lecture and be engaged in the lecture. Asking and answering questions in class is essential. When you are in a lecture, I expect your attention, so students should not be on their phones or doing non-class related things on laptops.

Late Policy

Don’t be late. Homeworks will not receive any late credit. For lab and programming assignments, 10% of the grade will be subtracted for each day late, not including weekends, upto 5 days (1 week). After that, we still want you to do the labs, so you can still turn them in for 50%. However, do not fall behind. The labs all build on one another, so you will not be able to complete the next lab if you have not completed a previous one. Please reach out to the lab instructor or TA if you feel like you are falling behind. Please, just don’t turn them in late!

Source Code Sharing

No source code should be shared between students. Students can work on assignments together, but no direct or indirect copying from another student is allowed. This class will use a code similarity checker to determine if students are copying code.

Policies

Honor Code

In keeping with the principles of the BYU Honor Code, students are expected to be honest in all of their academic work. Academic honesty means, most fundamentally, that any work you present as your own must in fact be your own work and not that of another. Violations of this principle may result in a failing grade in the course and additional disciplinary action by the university. Students are also expected to adhere to the Dress and Grooming Standards. Adherence demonstrates respect for yourself and others and ensures an effective learning and working environment. It is the university’s expectation, and every instructor’s expectation in class, that each student will abide by all Honor Code standards. Please call the Honor Code Office at 422-2847 if you have questions about those standards.

Preventing & Responding to Sexual Misconduct

In accordance with Title IX of the Education Amendments of 1972, Brigham Young University prohibits unlawful sex discrimination against any participant in its education programs or activities. The university also prohibits sexual harassment-including sexual violence-committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of “Sexual Misconduct” prohibited by the university.

University policy requires all university employees in a teaching, managerial, or supervisory role to report all incidents of Sexual Misconduct that come to their attention in any way, including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of Sexual Misconduct should be reported to the Title IX Coordinator at t9coordinator@byu.edu or (801) 422-8692. Reports may also be submitted through EthicsPoint at https://titleix.byu.edu/report or 1-888-238-1062 (24-hours a day).

BYU offers confidential resources for those affected by Sexual Misconduct, including the university’s Victim Advocate, as well as a number of non-confidential resources and services that may be helpful. Additional information about Title IX, the university’s Sexual Misconduct Policy, reporting requirements, and resources can be found at http://titleix.byu.edu or by contacting the university’s Title IX Coordinator.

Student Disability

Brigham Young University is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. A disability is a physical or mental impairment that substantially limits one or more major life activities. Whether an impairment is substantially limiting depends on its nature and severity, its duration or expected duration, and its permanent or expected permanent or long-term impact. Examples include vision or hearing impairments, physical disabilities, chronic illnesses, emotional disorders (e.g., depression, anxiety), learning disorders, and attention disorders (e.g., ADHD). If you have a disability which impairs your ability to complete this course successfully, please contact the University Accessibility Center (UAC), 2170 WSC or 801-422-2767 to request a reasonable accommodation. The UAC can also assess students for learning, attention, and emotional concerns. If you feel you have been unlawfully discriminated against on the basis of disability, please contact the Equal Employment Office at 801-422-5895, D-285 ASB for help.

Academic Honesty

The first injunction of the Honor Code is the call to “be honest.” Students come to the university not only to improve their minds, gain knowledge, and develop skills that will assist them in their life’s work, but also to build character. “President David O. McKay taught that character is the highest aim of education” (The Aims of a BYU Education, p.6). It is the purpose of the BYU Academic Honesty Policy to assist in fulfilling that aim. BYU students should seek to be totally honest in their dealings with others. They should complete their own work and be evaluated based upon that work. They should avoid academic dishonesty and misconduct in all its forms, including but not limited to plagiarism, fabrication or falsification, cheating, and other academic misconduct.