How to prepare for uni computer science

Click For Summary

Discussion Overview

The discussion centers around preparing for a university course in computer science for physical sciences, with participants sharing resources, programming languages, and strategies for getting ahead in coding. The focus includes both foundational knowledge and practical applications relevant to physics and engineering.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • One participant suggests starting with C as a foundational language.
  • Another proposes MATLAB, numerical Python, and Java as relevant languages for physics applications, noting the popularity of MATLAB in engineering and numerical Python for simulations.
  • A participant mentions that Java is widely used in industry, especially for web technologies and Android apps, and references a book on physical systems simulation with an open-source Java library.
  • Some participants highlight the importance of C for performance optimization and its interoperability with other languages like Fortran and Python.
  • One suggestion includes using Arduino projects to apply C in a practical context, while another recommends gaining Linux experience through Raspberry Pi.
  • A participant questions the specific programming languages used in the course and advises contacting the instructor for clarification.
  • Concerns about Java's verbosity are raised, with some noting that practical exercises are crucial for learning programming effectively.
  • Python is mentioned as an underrated language that can be quite powerful.
  • A participant shares a link to a site with tutorial videos and exercises for various programming languages, expressing a preference for it over other platforms.
  • Another participant suggests exploring the Processing IDE as a way to learn Java basics while creating graphics, indicating it could serve as a stepping stone to more complex programming.

Areas of Agreement / Disagreement

Participants generally agree on the value of learning C and Java, with multiple suggestions for additional languages and resources. However, there is no consensus on which language is definitively the best starting point, as various opinions and preferences are expressed.

Contextual Notes

Some participants note the uncertainty regarding the specific programming languages used in the course, as well as the lack of information about the instructors, which may affect preparation strategies.

starstruck_
Messages
185
Reaction score
8
Hey! So, I'm starting university this year, going in for a BSc. Physics and Astronomy, and one of my first year courses is computer science for the physical sciences. I do have some coding experience but it's very minimal with html and and Visual Basic, not very good languages. I did well in grade 11 computer science but I need a refresher, and perhaps something that'll let me get ahead. Are there any sites anyone can share that may help me?
I don't exactly want to use code.org but I am, along with code academy. Is there anything else?
 
Physics news on Phys.org
Start learning C.
 
  • Like
Likes   Reactions: starstruck_
If you want to do something relevant to physics you could consider MATLAB, numerical Python or Java. MATLAB is often used by the engineering folks. Numerical Python is popular for computer simulation.

Java is very dominant in industry especially web related technologies and Android apps. In addition, there's a Book on physical systems simulation with an open source library written in Java at

www.compadre,org/osp

I studied from this book in Computational Physics and use the library occasionally at work.

Legacy systems will use Fortran and really modern systems might use Julia.

In conclusion though, it can't hurt to learn C since it's the mother of many of these languages except for Fortran but can interoperate with Fortran libraries and with Python and Java code. Sometimes you just need C to speed up a portion of your code bogged down by your chosen language's limitations like dynamic variables and automatic garbage collection.
 
  • Like
Likes   Reactions: starstruck_
jedishrfu said:
If you want to do something relevant to physics you could consider MATLAB, numerical Python or Java. MATLAB is often used by the engineering folks. Numerical Python is popular for computer simulation.

Java is very dominant in industry especially web related technologies and Android apps. In addition, there's a Book on physical systems simulation with an open source library written in Java at

www.compadre,org/osp

I studied from this book in Computational Physics and use the library occasionally at work.

Legacy systems will use Fortran and really modern systems might use Julia.

In conclusion though, it can't hurt to learn C since it's the mother of many of these languages except for Fortran but can interoperate with Fortran libraries and with Python and Java code. Sometimes you just need C to speed up a portion of your code bogged down by your chosen language's limitations like dynamic variables and automatic garbage collection.

Thank you so much! Will take a look at the book and go through at least C before school begins!
 
C is also used in Arduino projects so that's a good excuse to build your own personal robot friend for school and get your parents to pay for it.

Of course, another idea would be to play with a Raspberry PI and get some Linux experience especially using vi and the command line commands like ls, cp, mv ... which will be useful in computer based lab work. The PI can be programmed with c as well and is a bit friendlier than the Arduino.
 
Last edited:
starstruck_ said:
one of my first year courses is computer science for the physical sciences.
What language(s) does this course use? If the university website is vague about this (they often are, so as to give the instructor flexibility), email the instructor and find out.
 
Java is quite verbose in comparison to other languages, some may find it scary at first but it's just a matter of getting used to it.
In my first computer science class, I learned about 1% from lectures and 99% from practical exercise and assignments. I also wrote some simple programs to calculate answers for past papers for my physics classes.
 
  • Like
Likes   Reactions: jedishrfu
Java is a great language to learn
You can look for the :head first java textbook: it's very helpful especially for beginners
 
  • Like
Likes   Reactions: jedishrfu
I must agree with some, C is a very good language but can be very tedious. I learned it over summer and it made it so much easier to learn other languages, it actually helped me with math oddly enough as well. Other than that Python can be quite underrated but you can do quite a bit with it.
 
  • Like
Likes   Reactions: jedishrfu and starstruck_
  • #10
I wanted to add that this site has amazing tutorial videos and exercises. Also has every language I know of so that's a bonus. I prefer this over code academy :)
Link: https://thenewboston.com/videos.php
 
  • #11
Thank you all sooo much! I keep seeing c and java being repeated so I'm going to focus on both as much as I can, unfortunately they haven't released who our professors are yet, so there's no one ik to email but hopefully at least some exposure and review will help me out
 
  • #12
A compromise would be to explore the processing IDE where you can use java to draw cool graphics. It's a stepping stone where you learn the basics of Java but don't have to get into class usage until later. Much of what you'd learn would be applicacble for Core C as well.

Www.processing.org

I wrote an insights article for PF on Processing called the Joy of Processing where you can learn more. it's free and easy to setup and use.
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
3K
Replies
3
Views
5K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 13 ·
Replies
13
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
22
Views
3K
  • · Replies 7 ·
Replies
7
Views
3K