How beneficial is this thematic combination for student-student-junior?

I am a graduate student and study online. There are many independent studies, independent studies and practices that I must do myself. I wonder how profitable it would be to choose this topic in programming:

  • Data structures
  • Oop
  • Language and Computer Assembly Architecture

Although I also have the option of using DLD (Digital Logic Design) or exchange rates instead of Assembly. My interest is in programming, and I also work as a programmer in a local software house. Can anyone give me some good tips and suggestions.

+2
computer science
source share
5 answers

The only thing on your list that can be considered a delay is OOP. I try to distinguish between object-oriented design and object-oriented programming:

  • Object-oriented design is the term today for teaching programming with data abstraction. This is an integral part of every toolkit and should be part of any good course in data structures.

  • Object-oriented programming is the art of reusing implementations through inheritance . Years of experience in teaching student students showed me that this is a complex, advanced topic, with the possible exception, perhaps, in very specialized settings, such as creating two-dimensional graphical user interfaces.

Get as much OO design as you can, but avoid inheritance until you get more experience.

Finally, assembly code and machine architecture are important topics if you want to develop a deep understanding and intuitive sense of computational cost. These topics are highly recommended. Definitely take this course instead of logical design (an honorable theme, but far from programming) or data transfer (whatever that is).

As soon as at least one other poster has noticed, as soon as you have these topics under your belt, some functional programs will be good.

+3
source share

Digital Logic Design and Computer Architecture will help you understand the concept of a low-level computer and your gratitude for the excellent compilers that optimize the work for you. These courses sound like a good combination with me.

+5
source share

It looks good. If you can study some functional programs while you are at university, I think you should do this, as this will expand your horizons.

If you want to get a programming task at the end of this, you might want to join an open source project and gain real world experience. You will learn a lot more about programming and tool programmers using actually programming for a real project than you by learning to program in a classroom. Although it is important to have both theoretical knowledge and experience.

+3
source share

The first two objects (data structures and OOP) seem to have a dependency - you must understand OOP before entering Data Structures.

The last question (assembly language and computer architecture) will be fine at the same time as Data Structures, but I would take a basic programming class and study OOP before diving into the assembly.

For reference, this is the structure that my school honors program runs (and it has been wonderful 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(ex 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 can pretty much take whatever you want (as a student with honors) - most people take gradient classes at that moment.

My point is to demonstrate that my school uses a two-track theory model (logic, discrete coincidence, etc.) and implementation (architecture, operating systems, etc.). If you're interested in CS, it's important to be well prepared in both. You need both to understand the theory and how to implement it in order to be a good "well-rounded" scientist-programmer.

My advice will follow a similar model. Take classes of architecture, but also take classes of theory.

+1
source share

A course of algorithms is needed. A compiler design course is also very useful. And then there is a vast and interesting field of Artificial Intelligence.

0
source share

All Articles