- 2023 Spring
- Instructor: Dov Kruger
- **Meeting Times and Office hours
- Resources
- Course Web Address
This course covers how computers work (computer architecture) through assembly language and learning how to program them at a low level. It also uses microcontrollers to interact with their external environment (embedded systems).
We have a wide variety of software and hardware labs. While there are more than can be done in any semester these include
- Programming together in git (using version control)
- Bit manipulation
- Implementing drawing primitives in a bitmap
- Optimizing floating point computation in a gravity simulator
- Controlling motors using MOSFETs, H-Bridge controllers and Pulse Width Modulation (PWM)
- Generating waveforms using a DAC and measuring them
- Building a photogate using photoresistors and A/D converter
After successful completion of this course, students will be able to
- Use a knowledge of how microprocessors work to reduce errors or to know how some of the major problems that can occur
- Overflow
- Roundoff
- Memory faults
- Use a knowledge of how compilers and microprocessors work to write programs that are more efficient
- Access Memory sequentially where possible
- Use cache efficiently to avoid memory accesses
- Know when the compiler will not be able to optimize and do it manually
- Read and write digital voltagese
- Use power transistors and H-bridge controllers to drive motors
- Use A/D and D/A converters to interact with the analog world
- Practice using oscilloscopes to
- Learn to use git to work in teams effectively (a bit).
- Use a CAD package to record your hardware designs.
- Use LTSpice to analyze simple hardware designs.
- Classes involve live coding demonstrations, you are encouraged to join in sometimes using vscode.
- The instructor will ask questions and you are encouraged to actively participate.
- There will be weekly coding homework/labs and/or handwritten assignments.
- Quizzes and tests on paper verify that students know the material they have submitted as homework.
- Textbook(s): none. Notes provided.
- Other Readings: Papers available in ref directory
-
Attendance: Attendance is crucial for an effective learning but will not be graded. Your work will speak for itself.
-
Homework: Coding assignments will be submitted via canvas for individual single files, or via github.
-
Labs: Lab attendance is mandatory. You may work with a partner but all labs must be submitted individually. Late work will not be accepted. Any help on a lab must be cited. This includes any code from online, help from friends or peer mentors. You do not have to cite the TA. Failure to cite sources is cheating and will result in a zero.
-
Exams: There will be two exams and a final.
Grades will be based on:
- Programming Assignments (15 %)
- Homework Assignments ( 5 %)
- Quizzes ( 0 %)
- Labs (20 %)
- Exams (60 %)
[Grading Policies] (https://github.com/StevensDeptECE/DovKrugerCourses/blob/main/grading.md) [Academic Honesty and Discipline] (https://github.com/StevensDeptECE/DovKrugerCourses/blob/main/integrity.md)
- Test 1 ** 2023-TBD **
- Test 2 ** 2023-TBD **
- Final ** 2023-05-?? **