Overview
Hi! This is the homepage of the Computer Engineering class taught at FSU Jena by the Scalable Data- and Compute-intensive Analyses lab and the Advanced Computing group. The class is new and continuously evolving. Let us know if you get stuck, stumble over errors or have any other feedback!
Communication
Our class has a separate e-mail: ti22@uni-jena.de. Additionally, we operate a team in MS Teams called Computer Engineering. Use your Office 365 university login to join the team. Details are available from URZ. The respective team code is shared in class. Please use common sense when navigating the virtual space, examples:
You may use the team’s channels to ask questions.
You may use the team’s channels to discuss class-related topics with you peers.
Before the respective due dates, you may only share solutions of the assignments with your direct teammates.
Slides and recordings are shared in the “General” channel.
All files of the class, i.e., slides, recordings and assignments, are also available from a password-only NextCloud share. You may obtain the share’s link and password through Moodle.
Sessions
Day |
Time |
Location |
Type |
---|---|---|---|
Mon |
12:15PM - 01:45PM |
HS 7 CZ |
Lecture |
Mon |
04:00PM - 07:00PM |
3228, EAP2 |
Open Lab, Q&A |
Tue |
12:15PM - 01:45PM |
HS 6 CZ |
Lecture |
Tue |
04:00PM - 06:15PM |
3220, EAP2 |
Regular Lab |
Wed |
04:00PM - 06:15PM |
3220, EAP2 |
Regular Lab |
Thu |
04:00PM - 06:15PM |
3220, EAP2 |
Regular Lab |
Fri |
01:00PM - 04:00PM |
3228, EAP2 |
Open Lab, Q&A |
Fri |
04:00PM - 06:15PM |
3220, EAP2 |
Regular Lab |
Special Events
What? |
Date |
Comment |
---|---|---|
Reformationstag |
Mon 10/31 |
No lecture, no open lab |
Dies Academicus |
Tue 11/22 |
No lecture |
Guest Lecture |
Mon 12/12 |
starts 4:15PM, Hörsaal 6, Carl-Zeiß-Str. 3 lecturer: Alex Heinecke (Sr. Principal Engineer at Intel), no open lab |
Assignments
Week |
Due Date |
Mandatory Tasks |
Optional Tasks |
---|---|---|---|
1 |
10/24 |
1.1, 1.2 |
– |
2 |
10/31 |
2.2 - 2.5 |
2.1 |
3 |
11/07 |
3.1 - 3.3, 3.5 |
– |
4 |
11/14 |
4.2, 4.3 |
3.4 |
5 |
11/21 |
5.1 - 5.4 |
5.5 |
6 |
11/28 |
6.1 - 6.3 |
– |
7 |
12/05 |
7.1, 7.2 |
7.3 |
8 |
12/12 |
8.1, 8.2 |
8.3 |
9 |
01/02 |
8.4 |
– |
10 |
01/09 |
9.1, 9.2 |
9.3, 9.4 |
11 |
01/16 |
10.1, 10.2 |
– |
12 |
01/23 |
11.1, 11.2 |
– |
13 |
01/30 |
12.1.1 - 12.1.3, 12.2, 12.3.1 - 12.3.5 |
12.1.4, 12.3.6 |
14 |
02/06 |
13.1, 13.2 |
13.3 |
15 |
– |
– |
– |
Literature
Sarah Harris, David Harris: Digital Design and Computer Architecture: ARM Edition. In addition to the linked electronic version, you may borrow a hard copy from thulb.
Sarah Harris, David Harris: Companion Materials of Digital Design and Computer Architecture: ARM Edition.
SystemVerilog Guide of Harvard’s CS141 class.
Larry Pyeatt, William Ughetta: ARM 64-Bit Assembly Language.
Neil Weste, David Harris: CMOS VLSI Design: A Circuits and Systems Perspective.
MIT: Computation Structures.
Columbia: Fundamentals of Computer Systems.
Submissions
Our class follows good computer and software engineering practices. In short: Have a keen eye on the quality of your work!
Do the following:
Document your source code, especially modules and functions you introduce.
Write testbenches for SystemVerilog modules and unit tests for software. Make it a habit to introduce these together with new features, this makes this requirement painless.
Take “issues” seriously, e.g., compiler warnings, and don’t take short-cuts: no hacks!
Test your code and your user guides on the reference-machine(s).
If not stated otherwise, the following deliverables have to be handed in for every submission:
Cover sheet with the full names of all group members!
Source code where required in the assignments. Respective source code documentation and tests are mandatory.
Project report as PDF with no more than a single page addressing the respective submission. Briefly address individual contributions of each group member.
Use the following directory structure for every submission:
Name the root directory
submission_<due_date>_<surname_1>_<surname_2>
;Save your cover sheet in file
submission_<due_date>_<surname_1>_<surname_2>/cover.pdf
;Put all source code in the sub directory
submission_<due_date>_<surname_1>_<surname_2>/src
; andSave your report in file
submission_<due_date>_<surname_1>_<surname_2>/report.pdf
.
Now let’s go through an example. Assume that the due date for our submission is October 24 2022. The full names of the two team members are Johann Sebastian Bach and Friedrich Schiller. In this case we’d do the following:
Name the root directory
submission_22_10_24_bach_schiller
;Save our cover sheet in file
submission_22_10_24_bach_schiller/cover.pdf
;Put our source code in
submission_22_10_24_bach_schiller/src
; andSave our report in file
submission_22_10_24_bach_schiller/report.pdf
.
Create an xz tarball from your root directory with the name submission_<due_date>_<surname_1>_<surname_2>.tar.xz
.
Once again, the two team members Bach and Schiller would name their file submission_22_10_24_bach_schiller.tar.xz
.
Hint
The following command creates the tarball for our running example:
tar -cvJf submission_22_10_24_bach_schiller.tar.xz submission_22_10_24_bach_schiller
Upload your tarball to Moodle.
Every team member has to do this!
In our example: Team Bach and Schiller is ready to submit submission_22_10_24_bach_schiller.tar.xz
.
Now, Bach logs in to Moodle and uploads the file.
Further, Schiller logs in to Moodle and uploads the file as well.