The first two subjects (Data Structures and OOP) seem to have a dependency - you should understand OOP before going into Data Structures.
The last subject(Assembly Language & Computer Architecture) would be fine to take concurrently with Data Structures - but I would take a basic programming class and learn OOP before diving into assembly.
For reference, this is the structure my school's honors program takes(and it's been great so far):
1st Semester:
Data Structures and Algorithms
Intro to Logic
2nd Semester:
Intro to Computer Architecture
Discrete math
3rd Semester:
Advanced Computer Architecture
Application of theory(e.x. compression, encryption, error correction)
Programming languages
4th Semester:
Operating Systems(done in x86, uses MIT course material) - challenging but very fun and rewarding class
Sometime after 4th semester:
Algorithms or Automata Theory
After the fourth semester at my school, you're pretty much free to take whatever you want(as an honors student) - most people take grad classes at this point.
My point in listing this out is to demonstrate that my school uses a "two track" model of theory(logic, discrete match, etc.) and implementation(architecture, operating systems, etc.). If you're interested in CS, it's important to be well-skilled in both. You need to both understand the theory and how to implement it well to be a good "well-rounded" computer scientist.
My advice would be to follow a similar model. Take architecture classes, but also take theory classes.