On-line Information
All relevant information for the course is available at
http://www.cs.gettysburg.edu/~ilinkin/courses/Spring-2023/cs221/
Check this page at least twice a day, since this will be the only source of last-minute pertinent information.
Course Outline
The course will cover the following topics (not necessarily in this order):
- Number systems representations and conversions
- Machine representation of numbers and arithmetic
- Boolean operators and functions; minimization
- Digital circuits (basic gates, multiplexors, flip-flops)
- Digital circuit design (registers, memory, ALU, CPU)
- Instruction representation and machine level programming for the Hack platform
- Assembly programming for the Hack and the ARM platforms
- Low-level C programming including pointers and bitwise operators
These topics correspond to Chapters 1-6 in N2T and 1-9 in IMAL (if time permits, we may cover sections from other chapters). Visit daily the "Readings List" section of the class webpage as this will be updated frequently with the suggested readings.
Workload
The general guideline is to be prepared to spend at least 2-3 hours outside of the classroom for each lecture hour. You should expect to spend significant amount of preparation for this course working on a computer to design digital circuits in HDL and Simulator and to develop the programming assignments; some assignments may have foundation/theory-type problems.
You are encouraged to form study groups with colleagues from the class. The goal of these groups is to clarify and solidify your understanding of the material, and to provide for richer and more engaging learning experience.
However, you are expected to turn in your own code that represents the results of your own effort. See the policy outlined in the "Scholastic Conduct" and "Assignments" sections of the syllabus, or talk to the instructor, if you are unsure about the expected level of collaboration.
Attendance
Attendance is expected for each class period. Two late arrivals will count as one absence. If you are late, make sure you notify the instructor after class. Attendance, participation, and an apparent overall trend of improvement may be considered in assigning the final grade.
Note that excessive absence may lead to withdrawal from the course. For more information see
Assignments and Exams
There will be several assignments during the semester of various types -- theory (CS201-type), circuit design (CS221), and programming (CS111-type). Each assignment will be evaluated based on a number of criteria including design, correctness, clarity of explanation, documentation, and testing (as applicable).
In general, you are free to discuss the assignments with others and brainstorm high-level ideas
but you must work out the details of the solution on your own and write your own code. You may consult on-line resources, as long as they contain only expository material; resources that contain solutions to the assigned (or very similar) problems, pseudocode, or code written in a programming language may not be consulted. If group work is allowed, this will be
mentioned explicitly in the guidelines of the particular assignment.
Here is a set of guidelines of practices that are not allowed while working on the assignments and exams. This is not an exhaustive list -- talk to the instructor if you are unsure about the allowed level of collaboration:
- sending solutions to someone else (electronically, on paper, screen share, etc.); this is not allowed even if the intent is to share the solution only for reference (you are bound by this even after the course ends)
- asking someone else to share with you their solution; this includes asking someone who took the course in a previous semester
- searching for assignment solutions on-line; submitting solutions found on-line or someone else's solution as your own work
- looking at someone else's monitor in the lab or letting others look at your monitor in the lab, via screen share, etc
- submitting your own work from another course or from your previous attempt of the same course; even if you have worked on a similar assignment in the past, you should recreate your own solutions
- using electronic devices (mobile phones, smartwatches, calculators, computers, etc.) during the exams; these devices should be stored away during the exams
- note that each assignment is approximately 5% of the final grade; incomplete work will likely receive some partial credit, and therefore, it is not worth violating the above guidelines
Here are the relevant dates and how much each portion of your work will contribute to your final grade:
Programming Assignments |
Jan 26, Feb 2, Feb Feb 9, Feb 16, Feb 23, Mar 1
Mar 23, Mar 30, Apr 6, Apr 13, Apr 27, May 4 |
61% |
Fourth Hour |
weekly Sunday quizzes |
2% |
Exam 1 |
evening of Wed, Mar 15, at 7:00-8:30pm |
18% |
Exam 2 |
evening of Wed, Apr 19, at 7:00-8:30pm |
18% |
Final Project (Assignments 11&12) |
Thu, May 4, at 11:30am (Assignment 12 due date) |
|
Department Colloquia |
must attend at least 2
arrive on time, stay for entire talk, no phone/laptop use
|
1% |
The exams will be closed-book, closed-notes, closed-neighbor, closed-electronic devices, etc. The work you turn in on the exams must represent solely the results of your own individual effort.
Note the dates of the exams carefully --- make-up exams will be given only under extreme circumstances provided that arrangements are made at least a week in advance.
Late Assignments
Late assignments will incur a 1% penalty for each late hour (or fraction thereof) for a maximum of 10%. Assignments that are more than 1 day late will not be accepted, but incomplete assignments will receive partial credit.
This is intended to give some flexibility and is meant to be used when much of the assignment has been completed. Note that there is no course staff on duty on Friday and it will not be possible to get help: ideally most of the major difficulties will have been discussed by Thursday.
Note that each assignment is approximately 5% of the final grade and incomplete work will likely receive some partial credit, so an individual assignment does not have significant negative impact.
Fourth Hour
This course meets the Fourth Hour requirement through weekly online quizzes due on Sundays by 11:59pm.
Grading
Grading for this course is based on the scale below. For borderline cases attendance, participation, and apparent trend of improvement during the semester may be taken into consideration.
Your final grade will be at most 10% higher than the lower of your overall exam and overall homework score. For example, if your overall exam score is 61.5%, your final grade level will be at most 71.5%.
You are expected to receive the equivalent of at least a C- on the final exam in order to pass the class.
Incompletes
Incompletes (or make-up exams) will be considered only when a serious family or personal emergency arises and all but a small portion of the work has been completed. (Incompletes will not be given for reasons such as a heavy course load.) Arrangements for the incomplete, including obtaining all required documentation, should be made as soon as possible.
Special Accommodation
Students needing special accommodation are encouraged to contact the Academic Advising Office as soon as possible so that all required documentation can be processed and all necessary arrangements can be made on time.
For more information on the support available at Gettysburg College see
Scholastic Conduct
Students at Gettysburg College are governed by the Honor Code. Failure to abide by the scholastic conduct expected on assignments or exams is a violation of the Honor Code tradition at Gettysburg College. It is your responsibility to read carefully the "Assignments" section of the syllabus which outlines the policy on assignments and exams. If you need help and are unsure about the expected level of collaboration, see the instructor for clarification and help with the assigned material.
For further general information on the Honor Code tradition at Gettysburg College see