What would help a Comp. Sci guy the most?

  • Thread starter tamtam402
  • Start date
In summary, if you are interested in applying your CS knowledge to fields such as video games or data-driven software, both mathematical and physics knowledge would be beneficial. Additionally, understanding flow control and systems design, particularly data-driven and component-based systems, would also be valuable.
  • #1
tamtam402
201
0
Undergrad mathematical knowledge, or undergrad physics knowledge? Both fields interest me a lot, and I can do a double major in CS + either math or physics. I love these 3 fields almost equally, so I figured I would study the thing that complements CS the best.

Sorry for my bad english btw.
 
Physics news on Phys.org
  • #2
Probably undergraduate mathematical knowledge. You aren't giving a whole lot of helpful information though.
 
  • #3
both are good complements, math will help create efficient equations in coding and a new way to solve problems but physics will teach the underlying electronics in the hardware and how they work.
 
  • #4
tamtam402 said:
Undergrad mathematical knowledge, or undergrad physics knowledge? Both fields interest me a lot, and I can do a double major in CS + either math or physics. I love these 3 fields almost equally, so I figured I would study the thing that complements CS the best.

Sorry for my bad english btw.

Depends on what you want to apply you're CS knowledge to. I'll list a few examples:

1) Video games
For this maths and physics would be beneficial. Let's say you model light. You have models that are dead simple (like ambient light aka sun light modeling) to raytracing and radiosity models. Same for geometry. You go from simple collision detection models in a plane (signed distance between point and respective plane) to convex hulls in any dimension (although you only typically use 3). Also think about writing camera systems: some use splines, springs + damping, quaternion interpolation on the unit sphere. And this is the tip of the iceberg. These million plus line monstrosities are very complicated

2) Data driven software
Apart from the particular sensory fields (visuals,audio) you will need to have good data driven software that's extensible and backwards compatible. Something like an XML container data structure is a good step in this direction.

3) Flow control
This is one thing that you should think about when you're writing programs or reading them. This is especially important with multi-core / highly parallel / independent hardware type systems where devices can work independently and fire off events independently.

Back in the day (and even now) our program would be nested in some infinite loop until some exit combination broke it and returned control back to the shell. While that probably won't change, what will change is that programs will more than likely move from one where you write heaps of do loop while not broken to the "register an event with the systemwide event handler" and hook the appropriate message.

On top of this you're event handler (if it is smart) could for example launch the callback in a different thread and monitor the time taken and if it is taking too long it can kill it. So if you did this and offered the ability for your program to be modded through DLL's then yeah you could in a way "debug" offensive addons.

4) Systems design

By systems design I don't mean the UML crap that software engineers do. When you design a system (any system) there are always going to be a few things that you should have especially when you are planning to have an application that can easily be extended. Some include it to be A) Data driven and B) Component Based

If you want to learn about this kind of thing your best bet is to look at the different standards of Microsoft's different technologies. If you don't like Billy G, then check out something like CORBA from the Object Management Group. I would however recommend that you look at the COM design (Component Object Model).

In relation to that things like Class Factory Templates, Interface Registration, Resource Templates, Some kind of interface that allows script language compatibility, and other metadata paradigms will help you get an idea of how to build rigid and robust systems with templates that will last a long time.

I'm just throwing some things out there since I don't know exactly what you're interests are or where you'd like to go with it.
 
  • #5


I would say that both undergrad mathematical and physics knowledge can greatly benefit a Comp. Sci guy. However, the specific field of study that would complement CS the best may depend on the individual's interests and career goals.

Mathematics is the backbone of computer science and having a strong foundation in mathematical concepts such as algebra, calculus, discrete mathematics, and statistics can greatly enhance one's understanding of algorithms, data structures, and computer programming. It can also help in developing problem-solving skills and logical thinking which are essential in the field of computer science.

On the other hand, physics can also be a valuable field of study for a computer scientist. It involves understanding the fundamental principles of the physical world and how they can be applied to real-world problems. This can be particularly useful in fields such as computer graphics, simulations, and artificial intelligence.

Ultimately, it would be beneficial for a Comp. Sci guy to have a well-rounded understanding of both mathematics and physics. A double major in CS and either math or physics can provide a strong foundation in both fields and open up a wide range of opportunities in the future. It is also important to keep in mind that the field of computer science is constantly evolving and may require knowledge from both mathematics and physics to solve complex problems. So, my advice would be to pursue the field that you are most passionate about and continuously learn and explore the connections between all three fields.
 

FAQ: What would help a Comp. Sci guy the most?

What programming languages should a Comp. Sci guy learn?

The most commonly used languages in computer science are Java, C++, Python, and JavaScript. It is important for a Comp. Sci guy to have a strong foundation in these languages, as well as being familiar with other popular languages such as HTML, CSS, and SQL.

What skills are important for a Comp. Sci guy to have?

Aside from programming languages, a Comp. Sci guy should also have strong problem-solving and critical thinking skills. They should also be proficient in data structures, algorithms, and have a good understanding of computer architecture and operating systems.

How can a Comp. Sci guy stay updated with new technologies and advancements?

It is important for a Comp. Sci guy to stay updated with the constantly changing technology landscape. They can do this by attending conferences, workshops, and seminars, as well as participating in online communities and forums. Reading books, articles, and blogs can also help them stay updated.

What are some recommended resources for a Comp. Sci guy to improve their skills?

There are many online resources available for a Comp. Sci guy to improve their skills, such as coding websites like Codeacademy and HackerRank, online courses like Coursera and Udemy, and YouTube channels like Computerphile and The Coding Train. They can also join coding bootcamps or take classes at a local university.

How important is having experience in the industry for a Comp. Sci guy?

Having experience in the industry is important for a Comp. Sci guy as it gives them hands-on experience and allows them to apply their skills in a real-world setting. It also helps them build a professional network and gain valuable insights and knowledge from experienced professionals. However, having a strong foundation in computer science concepts is also crucial and can be gained through education and personal projects.

Similar threads

Replies
6
Views
2K
Replies
17
Views
4K
Replies
2
Views
1K
Replies
3
Views
2K
Replies
8
Views
1K
Replies
21
Views
558
Back
Top