Difference between revisions of "CoE 164 S2 AY 2023-2024"

From Microlab Classes
Jump to navigation Jump to search
(Initial creation of page)
 
m (Added links)
 
(5 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
'''Online Platforms''': UVLe, Piazza, Google Meet, Zoom, other quiz platforms, other code submission platforms.
 
'''Online Platforms''': UVLe, Piazza, Google Meet, Zoom, other quiz platforms, other code submission platforms.
 
<br>
 
<br>
'''Course Guidelines''': [[:File:Coe164 2122s2 Syllabus.pdf | <nowiki>[syllabus]</nowiki>]]
+
'''Course Guidelines''': [[:File:CoE 164 2324s2 Syllabus.pdf | <nowiki>[syllabus]</nowiki>]]
 
<br>
 
<br>
'''Grade Lookup''': [https://script.google.com/macros/s/AKfycbzMlzZHeiimZrs_XoeVdX0xjpgC9CyeuFrjLbjLA8tWqZwlEvrmwNhLR1bnnBtdYKVHzQ/exec <nowiki>Google Apps Script</nowiki>]
+
'''Grade Lookup''': [https://script.google.com/macros/s/AKfycbwfEfaFKrWGG5GrCSaFUIFaPDFCul_tCiwXxbMQJhV5CyNXK9LdzbDpncUIGiJ8-9hyuQ/exec <nowiki>Google Apps Script</nowiki>]
 
<br>
 
<br>
  
Line 29: Line 29:
 
| 0
 
| 0
 
|
 
|
[00] Course overview and synopsis<br>
+
[00] Course overview<br>
 
[00] Course requirements
 
[00] Course requirements
 
|
 
|
 
|
 
|
[[:File:Coe164_2020s2_00_about.pdf | [slides]]]<br>
+
[[:File:Coe164 2324s2 00 about.pdf | [slides]]]<br>
[[:File:Coe164_2020s2_Syllabus.pdf | [syllabus]]]
+
[[:File:CoE 164 2324s2 Syllabus.pdf | [syllabus]]]<br>
 
|-
 
|-
 
| 1
 
| 1
 
|
 
|
[01] Rust: About<br>
+
[01] Rust: First program<br>
[01] Rust: Basic data types and language grammar<br>
+
[01] Rust: Language basics<br>
[01] Rust: Control statements and functions
+
[01] Rust: Functions and control
 
|
 
|
[[:File:CoE 164 2s2223 W01 SE.pdf | [SE01] Specifications]]<br>
+
[[:File:CoE 164 2s2324 W01 SE.pdf | [SE01] Specifications]]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=433590 <nowiki>[SE01A][bin] Submission Bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=594526 <nowiki>[SE01A][bin] Submission Bin</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=433617 <nowiki>[SE01B][bin] Submission Bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=613085 <nowiki>[SE01B][bin] Submission Bin</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=433618 <nowiki>[SE01C][bin] Submission Bin</nowiki>]
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=613086 <nowiki>[SE01C][bin] Submission Bin</nowiki>]
 
|
 
|
 +
[[:File:Coe164 2324s2 01a rust install.pdf | [01a] [Rust] About]]<br>
 +
[[:File:Coe164 2324s2 01b rust basics.pdf | [01b] [Rust] Basics]]<br>
 +
[[:File:Coe164 2324s2 01c rust fcn ctrl.pdf | [01c] [Rust] Functions and Control Statements]]
 
|-
 
|-
 
| 2
 
| 2
 
|
 
|
[02] Rust: Advanced data structures<br>
+
[02] Rust: Data ownership<br>
[02] Rust: Data ownership
+
[02] Rust: Compound data structures<br>
 +
[02] Rust: Selection statements<br>
 +
[02] Rust: Error handling
 
|
 
|
[[:File:CoE 164 2s2223 W02 SE.pdf | [SE02] Specifications]]<br>
+
[[:File:CoE 164 2s2324 W02 SE.pdf | [SE02] Specifications]]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=439375 <nowiki>[SE02A][bin] Submission Bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=613146 <nowiki>[SE02A][bin] Submission Bin</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=441954 <nowiki>[SE02B][bin] Submission Bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=617534 <nowiki>[SE02B][bin] Submission Bin</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=441955 <nowiki>[SE02C][bin] Submission Bin</nowiki>]
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=617535 <nowiki>[SE02C][bin] Submission Bin</nowiki>]
 
|
 
|
 +
[[:File:Coe164 2324s2 02a rust ownership.pdf | [02] Rust: Data Ownership]]<br>
 +
[[:File:Coe164 2324s2 02b rust struct enum.pdf | [02] Rust: Structs and Enums]]<br>
 +
[[:File:Coe164 2324s2 02c rust selection.pdf | [02] Rust: Selection Constructs]]<br>
 +
[[:File:Coe164 2324s2 02d rust error.pdf | [02] Rust: Error Handling]]
 
|-
 
|-
 
| 3
 
| 3
Line 63: Line 72:
 
[03] Rust: OOP features<br>
 
[03] Rust: OOP features<br>
 
[03] Rust: Generic types<br>
 
[03] Rust: Generic types<br>
[03] Rust: Error handling
+
[03] Rust: Lifetimes
 
|
 
|
[[:File:CoE 164 2s2223 W03 SE.pdf | [SE03] Specifications]]<br>
+
[[:File:CoE 164 2s2324 W03 SE.pdf | [SE03] Specifications]]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=447755 <nowiki>[SE03][bin] Submission Bin</nowiki>]
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=617556 <nowiki>[SE03A][bin] Submission Bin</nowiki>]<br>
 +
[https://uvle.upd.edu.ph/mod/assign/view.php?id=621110 <nowiki>[SE03B][bin] Submission Bin</nowiki>]<br>
 +
[https://uvle.upd.edu.ph/mod/assign/view.php?id=621114 <nowiki>[SE03C][bin] Submission Bin</nowiki>]
 
|
 
|
 +
[[:File:Coe164 2324s2 03a collections.pdf | [03] Rust: Collections]]<br>
 +
[[:File:Coe164 2324s2 03b rust generics traits.pdf | [03] Rust: Generics and Traits]]<br>
 +
[[:File:Coe164 2324s2 03c rust lifetimes.pdf | [03] Rust: Lifetimes]]
 
|-
 
|-
 
| 4
 
| 4
 
|
 
|
 +
[04] Rust: Pointers<br>
 
[04] Rust: Packages and modules<br>
 
[04] Rust: Packages and modules<br>
 +
[04] Rust: Unit tests<br>
 
[04] Test-driven development
 
[04] Test-driven development
 
|
 
|
 
|
 
|
 +
[[:File:Coe164 2324s2 04a pointers.pdf | [04] Rust: Pointers]]<br>
 +
[[:File:Coe164 2324s2 04b rust packages.pdf | [04] Rust: Packages and Modules]]<br>
 +
[[:File:Coe164 2324s2 04c rust tests.pdf | [04] Rust: Tests]]
 
|-
 
|-
 
| 5
 
| 5
 
|
 
|
 +
[05] Rust: Iterators<br>
 +
[05] Rust: Paths and files<br>
 +
[05] Rust: Advanced topics
 
|
 
|
 
|
 
|
 +
[[:File:Coe164 2324s2 05a rust iterators.pdf | [05] Rust: Iterators]]<br>
 +
[[:File:Coe164 2324s2 05b rust files paths.pdf | [05] Rust: Paths and Files]]
 
|-
 
|-
 
| 6
 
| 6
| colspan="3" | <div style="text-align: center;">'''READING BREAK'''</div>
+
| colspan="3" | <div style="text-align: center;">'''LENTEN BREAK'''</div>
 
|-
 
|-
 
| 7
 
| 7
| colspan="3" | <div style="text-align: center;">'''LENTEN BREAK'''</div>
+
| colspan="3" | <div style="text-align: center;">'''READING BREAK'''</div>
 
|-
 
|-
 
| 8
 
| 8
 
|
 
|
 +
[MidP] Audio Codec
 
|
 
|
 +
[[:File:Coe164 2324s2 MidP.pdf | [MidP] Specifications]]<br>
 +
[https://uvle.upd.edu.ph/<nowiki>[MidP][bin] Submission Bin</nowiki>]
 
|
 
|
 +
[https://script.google.com/macros/s/AKfycbw5RUFT61DU2vN5MipkFCy3OkECQV2__N2dG42u8kwZXHEw036X6KdJcdLxd2SQ_gTFvA/exec<nowiki>[MidP][form] Group Assignments</nowiki>]<br>
 +
[[:File:Coe164 2324s2 MidP Annex.pdf | [MidP][doc] Algorithms and File Formats]]
 
|-
 
|-
 
| 9
 
| 9
 
|
 
|
[MidP] Message Obfuscation
 
 
|
 
|
[[:File:CoE 164 2s2223 MidP.pdf | [MidP] Specifications]]<br>
 
[https://uvle.upd.edu.ph/mod/assign/view.php?id=452181 <nowiki>[MidP][bin] Submission Bin</nowiki>]
 
 
|
 
|
[https://script.google.com/macros/s/AKfycbzF8Lwx5dI98DSwVsyVe4J1zNhruzEf6QbFItTwNK7H19Sqya4Pfs1RgcXUz1qTE4Rv/exec <nowiki>[MidP][form] Group Assignments</nowiki>]<br>
 
[[:File:CoE 164 2s2223 MidP Annexes.pdf | [MidP][doc] Algorithm and File Format]]<br>
 
[[:File:CoE 164 2s2223 MidP DC3-skew Worked Example.pdf | [MidP][doc] DC3/skew Worked Example]]
 
 
|-
 
|-
 
| 10
 
| 10
Line 110: Line 133:
 
| 11
 
| 11
 
|
 
|
 +
[11] Rust: Concurrency<br>
 +
[11] Rust: SIMD Programming<br>
 +
[11] Rust: Parallel Programming
 
|
 
|
 
|
 
|
 +
[[:File:Coe164 2324s2 11a rust concurrency.pdf | [03] Rust: Concurrency]]<br>
 +
[[:File:Coe164 2324s2 11b rust simd.pdf | [03] Rust: SIMD Programming]]<br>
 +
[[:File:Coe164 2324s2 11b rust parallel.pdf | [03] Rust: Parallel Programming]]
 
|-
 
|-
 
| 12
 
| 12
 
|
 
|
[12] Rust: Concurrency<br>
 
[12] Rust: SIMD
 
 
|
 
|
 
|
 
|
[[:File:Coe164_2223s2_12a_rust_concurrency.pdf | [12a slides]]]<br>
 
[[:File:Coe164_2223s2_12b_rust_simd.pdf | [12b slides]]]
 
 
|-
 
|-
 
| 13
 
| 13
Line 146: Line 171:
 
= Grading Rubric =
 
= Grading Rubric =
 
50% Software exercises (SE)<br>
 
50% Software exercises (SE)<br>
30% Midterm project (MidP)<br>
+
20% Midterm project (MidP)<br>
20% Capstone project (CP)
+
30% Capstone project (CP)
  
 
= Completion Requirements =
 
= Completion Requirements =
  
Students are required to fulfill the following requirements for course completion. Failure to fulfill any of these requirements will result in receiving an INC in the course.
+
Students are required to fulfill the following requirements for ''course completion''. Failure to fulfill any of these requirements will result in receiving an INC (with passing standing) or 5.0 (with failing standing) in the course
  
 
* Submit half of the SEs offered throughout the semester
 
* Submit half of the SEs offered throughout the semester
 +
** If the SE has multiple components, each component is counted as one of the SEs for this purpose.
 +
** E.g. SE01 which has two components SE01A and SE01B, are counted as two for this requirement. Hence, you can opt to submit SE01A, SE01B, none, or all of them.
 
* Submit the MidP
 
* Submit the MidP
 
* Submit the CP
 
* Submit the CP

Latest revision as of 13:44, 6 May 2024

Course Information

Academic Period: 2nd Semester AY 2023-2024
Units: 1 (3 laboratory)
Workload:

  • 3 hours laboratory per week

Instructors:

  • Carl C. Dizon [carl.dizon at eeemail]
  • Carl Lester V. Fabian [carl.lester.fabian at eeemail]

Course Description: This is an advanced laboratory course on the application of the concepts, methodologies, skills, and tradeoffs in designing/building computing systems to solve challenging problems, in an efficient and structured way.
Synopsis: This course aims to 1) build and evaluate efficient computing platforms, 2) present algorithms, methods, and tools needed to solve challenging problems, and 3) practice sound engineering judgement in solving engineering problems.
Delivery Method: Digital materials and open-time laboratory sessions
Online Platforms: UVLe, Piazza, Google Meet, Zoom, other quiz platforms, other code submission platforms.
Course Guidelines: [syllabus]
Grade Lookup: Google Apps Script

Course Outline

Week Topics Academic Requirements Resource Links
0

[00] Course overview
[00] Course requirements

[slides]
[syllabus]

1

[01] Rust: First program
[01] Rust: Language basics
[01] Rust: Functions and control

[SE01] Specifications
[SE01A][bin] Submission Bin
[SE01B][bin] Submission Bin
[SE01C][bin] Submission Bin

[01a] [Rust] About
[01b] [Rust] Basics
[01c] [Rust] Functions and Control Statements

2

[02] Rust: Data ownership
[02] Rust: Compound data structures
[02] Rust: Selection statements
[02] Rust: Error handling

[SE02] Specifications
[SE02A][bin] Submission Bin
[SE02B][bin] Submission Bin
[SE02C][bin] Submission Bin

[02] Rust: Data Ownership
[02] Rust: Structs and Enums
[02] Rust: Selection Constructs
[02] Rust: Error Handling

3

[03] Rust: OOP features
[03] Rust: Generic types
[03] Rust: Lifetimes

[SE03] Specifications
[SE03A][bin] Submission Bin
[SE03B][bin] Submission Bin
[SE03C][bin] Submission Bin

[03] Rust: Collections
[03] Rust: Generics and Traits
[03] Rust: Lifetimes

4

[04] Rust: Pointers
[04] Rust: Packages and modules
[04] Rust: Unit tests
[04] Test-driven development

[04] Rust: Pointers
[04] Rust: Packages and Modules
[04] Rust: Tests

5

[05] Rust: Iterators
[05] Rust: Paths and files
[05] Rust: Advanced topics

[05] Rust: Iterators
[05] Rust: Paths and Files

6
LENTEN BREAK
7
READING BREAK
8

[MidP] Audio Codec

[MidP] Specifications
[MidP][bin] Submission Bin

[MidP][form] Group Assignments
[MidP][doc] Algorithms and File Formats

9
10
11

[11] Rust: Concurrency
[11] Rust: SIMD Programming
[11] Rust: Parallel Programming

[03] Rust: Concurrency
[03] Rust: SIMD Programming
[03] Rust: Parallel Programming

12
13
14
15
16
FINALS WEEK
17
FINALS WEEK

Grading Rubric

50% Software exercises (SE)
20% Midterm project (MidP)
30% Capstone project (CP)

Completion Requirements

Students are required to fulfill the following requirements for course completion. Failure to fulfill any of these requirements will result in receiving an INC (with passing standing) or 5.0 (with failing standing) in the course

  • Submit half of the SEs offered throughout the semester
    • If the SE has multiple components, each component is counted as one of the SEs for this purpose.
    • E.g. SE01 which has two components SE01A and SE01B, are counted as two for this requirement. Hence, you can opt to submit SE01A, SE01B, none, or all of them.
  • Submit the MidP
  • Submit the CP

Announcements

February 2024