From The Circuits and Biology Lab at UMN
Revision as of 18:42, 16 September 2017 by Student (talk | contribs) (→‎Sample Problems)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Introduction to Computing Systems, Fall 2013


Instructor Email Tel. Office Office Hours
Prof. Marc Riedel 612-625-6086 Keller Hall 4-167 Tues. & Thurs. 4:00 - 5:00pm (or stop by my office anytime)

Teaching Assistants

T.A. Email Office Office Hours
Eric Rutayisire (grading) Keller 2-127 Mon. 9–11am; Tues. 4–6pm; Thurs. 4–6pm
Hamid Safizadeh (lab) Keller 4-138 Thurs. 5:15–6:15pm

Course Information

Lecture: 2:30pm – 3:45pm, Tues. and Thurs., in Ackerman 319

Final Exam: 10:30am – 12:30pm, Thurs., Dec. 19, 2013 in Ackerman 319

Prerequisites: concurrent registration is required in MATH 1271 or MATH 1371

Motivation: By some measures, modern integrated circuits are among the most complex devices ever designed by humankind. The circuitry in an iPhone consists of billions of transistors, each only a few billionth of a meter in size, switching billions of times a second. The true marvel is not in the physical complexity of such devices but in the scale of the computation that they perform, shuffling around billions of zeros and ones, faithfully serving all our digital needs. The discipline of computer engineering is fundamentally different from other disciplines of engineering. Computers are needed to design computers; software is need to produce software to run computers to design computers. Hardware and software exist in a vast, complex design ecosystem.

Objectives: This course will introduce students to fundamental concepts in computer engineering, with an emphasis on programming and programmable micro controllers. Students will acquire familiarity with the binary number system, digital logic circuits, and Boolean functions. They will become proficient in procedural programming in the C language, and have some exposure to object-oriented programming in the C++ language. They will acquire practical experience programming sensors and actuators with Arduino boards.

Required texts and equipment:

  • No required text for lecture.
  • Teaching of C will follow the classic textbook by Kernighan and Ritchie [1].
  • Teaching of C++ will follow the website [2].
  • For the lab, students must buy the Arduino Starter Kit, available through the UMN bookstore.

Computer Accounts: You will have access to the IT workstation labs for use in this class. If you don’t already have an account, see for information about initiating your account.


  • You can get a copy of the Microsoft Visual Studio C compiler (for free) here.
  • You can get a copy of the Arduino software (for free) here.


Date Topic
Sep. 3 to Sep. 24 Transistors and Logic Gates
Number Systems and Boolean Algebra
Data Types, Arithmetic, Conditional Statements
Iteration and Recursion
Intro to the Arduino
Sep. 26 Quiz 1
Oct. 1 to Oct. 29 Bit-Level Operations
Arrays, Pointers, and Dynamic Memory
Trees, Graphs, Sorting, Searching
Sensors and Actuators
Oct. 31 Quiz 2
Nov. 5 to Nov. 19 Lists, Dynamic Programming
Memory and File I/O
Regular Expressions
Dec. 03 Quiz 3
Nov. 26 to Dec. 12 Objects, Classes, Friendship and Inheritance
Computer Organization
Machine Language, Assembly, Compilers
Dec. 19 Final Exam, 10:30am – 12:30pm, Ackerman 319

Course Postings

Grades will be posted on Moodle. All other course material will be posted on this site,


Date Topics
Sep. 03, 2013 - Intro to Intro to Computing Systems
- A Vertical Slice of Computer Engineering
- Billions of Transistors per Chip; Each Roughly a Billionth of a Meter in Size; Each Switching Billions of Times a Second
- Integrated Circuits: Accept 0's & 1's; Produce 0's and 1's
- Tower of Hanoi Problem
- Powerpoint Slides
Sep. 05, 2013 - Moore's Law
- Ray Kurzweil's Technology Singularity
- CMOS Transistors
- Logic Gates
Sep. 10, 2013 - Positional Number Systems
- Converting Between Different Number Systems
- Elements of C Programming
Sep. 12, 2013 - Computer Memory
- Modular Arithmetic and Two's Complement Representation of Negative Numbers
Sep. 19, 2013 - Compiling a Line of Code: an Addition Operation Implemented with a Ripple-Carry Adder
Sep. 24, 2013 - Iteration
- Recursion
Oct. 01, 2013 - Career Presentation by Kyle Dukart and Pamela from NetApp
- Optimal Substructures in Optimization Problems
Oct. 03, 2013 - Sorting Algorithms (Animations)
- Bitwise Operations
Oct. 08, 2013 - Program Arguments in C
- Sorting Redux
- C Syntax
Oct. 10, 2013 - From Circuits to Truth Tables
- Representing Logic Circuits as Graphs-
- Binary Decision Diagrams
- Powerpoint Slides
Oct. 15, 2013 - ASCII Code
- Data Compression and Huffman Codes
- Pointers
Oct. 22, 2013 - Pointers
- Structures
Nov. 05, 2013 - Branch and Bound Algorithms
Nov. 07, 2013 - Sorting and Counting in Hardware
- Powerpoint Slides
Nov. 12, 2013 - Computing XOR
Nov. 14, 2013 - Coding Operations in Binary
- Hamming Code
Nov. 19, 2013 - Misc. Aspects of C/C++
Nov. 21, 2013 - Objects and Classes in C++


Lab Assignments

Lab References


The course grade will be assigned according to the following weighting:

  • Labs: 30%
  • Quizzes: 30%
  • Final Exam: 40%

Letter grades will be assigned according to the following scale:

A ≥ 90%, A- ≥ 85%,
B+ ≥ 80%, B ≥ 75%, B- ≥ 70%,
C+ ≥ 65%, C ≥ 60%, C- ≥ 55%,
D+ ≥ 50%, D ≥ 45%,
F < 40%.

Even though the grading is quantitative and objective, we're required to state the following university grading standards. According to University policy, grades are assigned with the following meaning:

  • A - Achievement that is outstanding relative to the level necessary to meet course requirements.
  • B - Achievement that is significantly above the level necessary to meet course requirements.
  • C - Achievement that meets the course requirements in every respect.
  • D - Achievement that is worthy of credit even though it fails to meet fully the course requirements.
  • S - Achievement that is satisfactory (equivalent to a C or better).
  • F (or N) - Represents failure (or no credit) and signifies that the work was either completed, but at a level of achievement that is not worthy of credit, or was not completed and there was no agreement between the instructor and the student that the student would be awarded an incomplete.
  • I (Incomplete) - Assigned at the discretion of the instructor when, due to extraordinary circumstances, a student is prevented from completing the work of the course on time. Assignment of an ‘‘I’’ grade requires a written agreement between the instructor and the student. ‘‘Extraordinary circumstances’’ are such things as hospitalization, serious car accidents, and major illnesses. They do not include excuses such as ‘‘working too much,’’ ‘‘took too many credits,’’ and so forth. Furthermore, an ‘‘I’’ can be assigned only when a small portion of the course remains to be completed.


Credits and Workload Expectations: For undergraduate courses, one credit is defined as equivalent to an average of three hours of learning effort per week (over a full semester) necessary for an average student to achieve an average grade in the course. For example, an average student expecting to get an average grade in a three credit course that meets for three hours a week should expect to spend an additional six hours a week on course-work outside the classroom. If you want to earn a better-than-average grade, you most likely are going to need to spend even more time working on the course outside of the classroom or the lab.

Course Policies:

  • You are responsible for all assigned readings and all information presented in class, including any changes in due dates, assignments, exams,
  • You are expected to attend all of the class meetings and to attend the lab/discussion section for which you are registered.
  • You are not permitted to submit extra work in an attempt to raise your grade.
  • Students with disabilities that affect their ability to participate fully in class or to meet all course requirements are encouraged to bring this to the attention of the instructor so that appropriate accommodations can be arranged. Further information is available from the Disability Services office.

Homework and Lab Policies:

  • All homework and lab assignments will be posted on the class web page. No paper copies will be distributed in class.
  • All assignments are due at the time indicated in the assignment description. Late assignments will receive a reduction of 15% of the maximum possible score for each 24 hour period that they are late, except for documented illnesses and family emergencies.
  • Any questions about the grading of homework, projects, or exams must be brought to the attention of your TA or the instructor within one week after the item in question is returned. Your request must include a short written summary describing your concern.

Student Conduct Code: The University seeks an environment that promotes academic achievement and integrity, that is protective of free inquiry, and that serves the educational mission of the University. Similarly, the University seeks a community that is free from violence, threats, and intimidation; that is respectful of the rights, opportunities, and welfare of students, faculty, staff, and guests of the University; and that does not threaten the physical or mental health or safety of members of the University community.

As a student at the University you are expected adhere to Board of Regents Policy: Student Conduct Code. To review the Student Conduct Code, please see: [3].

Note that the conduct code specifically addresses disruptive classroom conduct, which means "engaging in behavior that substantially or repeatedly interrupts either the instructor's ability to teach or student learning. The classroom extends to any setting where a student is engaged in work toward academic credit or satisfaction of program-based requirements or related activities."

Scholastic Dishonesty: You are expected to do your own academic work and cite sources as necessary. Failing to do so is scholastic dishonesty. Scholastic dishonesty means plagiarizing; cheating on assignments or examinations; engaging in unauthorized collaboration on academic work; taking, acquiring, or using test materials without faculty permission; submitting false or incomplete records of academic achievement; acting alone or in cooperation with another to falsify records or to obtain dishonestly grades, honors, awards, or professional endorsement; altering, forging, or misusing a University academic record; or fabricating or falsifying data, research procedures, or data analysis. (Student Conduct Code: [4]) If it is determined that a student has cheated, he or she may be given an "F" or an "N" for the course, and may face additional sanctions from the University. For additional information, please see: [5].

The Office for Student Conduct and Academic Integrity has compiled a useful list of Frequently Asked Questions pertaining to scholastic dishonesty: [6]. If you have additional questions, please clarify with your instructor for the course. Your instructor can respond to your specific questions regarding what would constitute scholastic dishonesty in the context of a particular class-e.g., whether collaboration on assignments is permitted, requirements and methods for citing sources, if electronic aids are permitted or prohibited during an exam.

Makeup Work for Legitimate Absences: Students will not be penalized for absence during the semester due to unavoidable or legitimate circumstances. Such circumstances include verified illness, participation in intercollegiate athletic events, subpoenas, jury duty, military service, bereavement, and religious observances. Such circumstances do not include voting in local, state, or national elections. For complete information, please see: [7].

Appropriate Student Use of Class Notes and Course Materials: Taking notes is a means of recording information but more importantly of personally absorbing and integrating the educational experience. However, broadly disseminating class notes beyond the classroom community or accepting compensation for taking and distributing classroom notes undermines instructor interests in their intellectual work product while not substantially furthering instructor and student interests in effective learning. Such actions violate shared norms and standards of the academic community. For additional information, please see: [8].

Sexual Harassment: "Sexual harassment" means unwelcome sexual advances, requests for sexual favors, and/or other verbal or physical conduct of a sexual nature. Such conduct has the purpose or effect of unreasonably interfering with an individual's work or academic performance or creating an intimidating, hostile, or offensive working or academic environment in any University activity or program. Such behavior is not acceptable in the University setting. For additional information, please consult Board of Regents Policy: [9]

Equity, Diversity, Equal Opportunity, and Affirmative Action: The University will provide equal access to and opportunity in its programs and facilities, without regard to race, color, creed, religion, national origin, gender, age, marital status, disability, public assistance status, veteran status, sexual orientation, gender identity, or gender expression. For more information, please consult Board of Regents Policy: [10].

Disability Accommodations: The University of Minnesota is committed to providing equitable access to learning opportunities for all students. Disability Services (DS) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations.

If you have, or think you may have, a disability (e.g., mental health, attentional, learning, chronic health, sensory, or physical), please contact DS at 612-626-1333 to arrange a confidential discussion regarding equitable access and reasonable accommodations.

If you are registered with DS and have a current letter requesting reasonable accommodations, please contact your instructor as early in the semester as possible to discuss how the accommodations will be applied in the course.

For more information, please see the DS website, [11].

Mental Health and Stress Management: As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance and may reduce your ability to participate in daily activities. University of Minnesota services are available to assist you. You can learn more about the broad range of confidential mental health services available on campus via the Student Mental Health Website: [12].

Academic Freedom and Responsibility: Academic freedom is a cornerstone of the University. Within the scope and content of the course as defined by the instructor, it includes the freedom to discuss relevant matters in the classroom. Along with this freedom comes responsibility. Students are encouraged to develop the capacity for critical judgment and to engage in a sustained and independent search for truth. Students are free to take reasoned exception to the views offered in any course of study and to reserve judgment about matters of opinion, but they are responsible for learning the content of any course of study for which they are enrolled.

Reports of concerns about academic freedom are taken seriously, and there are individuals and offices available for help. Contact the instructor, the Department Chair, your adviser, the associate dean of the college, or the Vice Provost for Faculty and Academic Affairs in the Office of the Provost.