2019-05-14 03:13:03 (edited by Mitch 2019-05-15 22:14:23)

Hi. So next thear I will be majoring in computer science, and I'm curious with two questions: how does core count affect programming run time, and is a touch screen needed? I know that the more cores you have, the better, but when you are writing out Java or Python code, do these cores have any practical impact on performance?
Regarding the touchscreen, I assume that it wouldn't realy help, and even if it did, is it even accessible? Thanks for your feedback.

A winner is you!
—Urban Champion

2019-05-14 03:27:21

More cores equals more speed for some use cases, though with python that can be a bit tricky to implement.

As for touchscreens, it depends, but generally no, their not essential. Is it accessible? Yes they can be, such as with cells phones, though certain things like haptics help alot. For example there's [DrawBack] and [BlindPaint], both are accessible touch screen drawing tools.

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2019-05-14 03:29:19

Okay. Thanks a bunch!

A winner is you!
—Urban Champion

2019-05-14 15:30:34

So actually I have another question regarding programming. Are there any features in Windows 10 Pro that would help with programming, and are there any advantages for Puadro over GeForce graphihis

A winner is you!
—Urban Champion

2019-05-14 19:44:06

Not to sidestep your question, but if you're just starting the major, you can expect installing the Python interpreter or Java compiler and writing your code in NotePad++ (or some other text-editor) and run your code on the command-line.
The short answer? No. I wouldn't concern yourself with performance, especially for the basic programs you'll start out writing.

What game will hadi.gsf want to play next?

2019-05-15 01:48:16

There are advantages between the two graphics cards; however, if your starting out, 5 has it right: don't worry about performance at this point. As you learn and your knowledge grows, you will begin to see when high-performance and performance-critical code is required and when it isn't.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-05-15 03:48:04

There are classes dedicated to these kinds of things -- typically in a system software course (C is the language my university uses for this course). Until then, the programs you code will A, be lightweight so it's no sweat to the processor, and B, will, in all reality, just teach you the syntax of whatever language those courses use. The more computer science-y stuff doesn't come until late mid-level and upper-level courses.
All that being said, CS is a fun major. Good luck!

What game will hadi.gsf want to play next?

2019-05-15 04:55:19 (edited by Ethin 2019-05-15 04:55:55)

@7, definitely true. I'm going into computer science but have taken various programming classes already, and fully agree on that. The programs you make will be so easy to execute that the processor won't bat an eye. (The processor could probably execute fifty million programs of the kind your learning about before it began to suffer.) Good luck though -- I'll be right alongside you, not physically mind, but learning similar stuff to what your learning! Tis shall be fun, my CS brothers! Fun, I say! big_smile

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-05-15 21:38:14

It's great to see other CS majors out here. big_smile

Admittedly, I'm not a huge guru like some of my classmates, but I do find what I learn interesting. Data structures has been one of the most jam-packed courses I've taken thus far. One fascinating project I completed was using stacks to process Infix mathematical expressionsand evaluate them by converting them to and using Reverse Polish Notation, or postfix notation. A pretty useless thing to do in the real world, but hey, stacks are fun!
Would love to hear more about others' experiences, perhaps on a dedicated post. wink

What game will hadi.gsf want to play next?

2019-05-15 22:08:49

Thanks. This definitely helps a lot. I know some programming, but the one CS course I did take the teacher didn't teach very well. Well, I a; least hope that was the case. Only time will tell.
I found out that the IDE that the class will be using it IntelliJ, but I will probably at least run some programs from the command line, because I assume that is more doable.

A winner is you!
—Urban Champion

2019-05-16 00:06:02

Hey. I just want to chime in and say that Computer Science is much more than programming. There is a little bit of everything from math, to electrical engineering, to even some minor philosophy concepts. Multithreading and performance optimizations are concepts that you will most likely learn in an Operating Systems class, which if your university is anything like mine, is going to be your third or fourth year. As others have already mentioned, the first steps of your CS journey is to learn the basics of compiling, language-specific features, command line, etc. Then, you'll get into the fun stuff with Discrete Mathematics and data structures and even into designing your own compiler. I should dig up my compiler I wrote for a class. haha The best of luck to you, and I offer my assistance if you need it. I am a recent graduate in Computer Science and Electrical Engineering.

2019-05-16 00:26:01

Ditto to post 11. Get ready for calculus and more abstract-based concepts. Programming and computer science are not one in the same. Programming is just a single facet. There are some computer scientists who do not actively code, yet they still know their stuff when it comes to computerized audio engineering, cyber security, and AI. I strongly encourage you to play around with things as you go along -- don't wait for your college classes to teach you things! Install NodeJS, MySQL, etc and sandbox them.

P.S.: Don't bother with IDE's. They won't do anything for you right now except give you more unnecessary things to deal with. Just my 2 cents.

What game will hadi.gsf want to play next?

2019-05-16 01:32:33 (edited by Ethin 2019-05-16 01:32:56)

@12, I love playing with things! I'd encourage people to do that too -- self-education is sooooooo much fun! smile (Currently I'm self-educating myself on LDAP. Fun stuff!)

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-05-16 03:00:03

@13, right on! It's really the only way people truly learn about things; there's less competition on the extra mile!

What game will hadi.gsf want to play next?

2019-05-16 03:51:25

@12-14, thanks. That's something I really should work on, as I tend to not self-educate much. I do agree that it will help in the long run, though.

A winner is you!
—Urban Champion

2019-05-16 04:13:21

No prob! Always happy to pass on advice when I can. Feel free to ask any questions/share your progress!

What game will hadi.gsf want to play next?

2019-05-16 20:32:56 (edited by amerikranian 2019-05-16 20:33:56)

So I am considering majoring in CS. Trouble is, there are a lot of options when it comes to that sort of thing. Could you all give me an idea as to what sort of assignments are you doing?
The problem I found in school is that the teachers are focused on one single way of doing something and that's the only way they teach that concept. It seems like they don't know anything else besides what the book tells them to memorize. Case and point, my current computer science teacher.
Our school has something called BPA. BPA is where students get together in teams and code something that follows a prompt that is given to them. The coding can be done in any language of the team's choice, but when chosen the language can not be changed.
When I found out about it I was like "Cool! I wana do that! How do I get started?"
Who do you think I asked first? If you guessed my teacher, you're correct. I was learning Python at that point and I go "So, what are some good tutorials for me to start with?" I can not describe to you the combinations of umms and uhs my teacher produced, but what I can tell you is that she ultimately said "I don't know."
You're telling me that the leader and the coordinator for an event does not know what to start with when it comes to Python? You could argue that she never worked with it, but she's teaching a class on it, so... Yeah...
So, are college professors better than that? Are they more experienced, or do they just memorize from the book and that's all they know? Do they know multiple ways of accomplishing the same task and the benefits/drawbacks to each method, or do they insist on you doing a task in a certain way and tell you that that is the only correct option?

2019-05-16 20:57:45

@17, the answers to your questions vary widely and depend on what college your going to. I'd say that my experiences indicate that yes, teachers at college allow exceptions to the rule, if you will, and will be happy to try alternatives and other ways of doing things, and yes, college teachers will actually know what their talking about (at least mine did) because your paying them huge amounts of money for that. Granted, I had this one networking teacher that would never respond ot my emails (that was so damn infuriating), but I only took one of his courses and no more. My remaining teachers were quite willing to help me find or do thigns in an alternative method, so long as said alternative method lined up with the course objectives.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-05-16 21:37:57 (edited by leibylucw 2019-05-18 20:43:26)

Truthfully, the scale for CS instructors is typical for college as it is in any other field: great, good, okay, meh, terrible. I've generally gotten amazing professors, but there are pretty bad ones at my university, as will there be at many other universities.
Assignments will very from university to university and even class section to class section within a university, but the courses are very similar among colleges. The assignments aren't actually bad - it's the exams (well, for me it is). I don't think it would be useful to describe the assignments in greater detail. The biggest difficulty in CS is problem-solving. The professors [should] give you the necessary information as to how to complete assignments. Your job, however, is to piece it all together like a puzzle. It really becomes a matter of tactic, so the nature of the assignments really shouldn't be a huge concern. After all, the purpose of the assignments is to enhance your understanding of the course material. (See post 9 if you'd like an example of a project I had to do)
The general flow of CS courses goes something like this:

  1. Syntax courses: This is where you learn the fundamentals of programming. Writing a "Hello world!" program is the classic first lecture. You learn printing to the screen, conditional statements/blocks, loops, and the object-oriented approach to programming

  2. Data structures, system programming, and logic: Usually, data structures is what comes next. Now that you know how Java syntax works, you'll learn data structures like bags, linked lists, stacks, queues, etc. This was the first of the several mid-level courses I was required to take. Assembly language is another dedicated course, along with C programming and discrete math, which is just logic

  3. Algorithms, formal methods, operating systems: The upper-most tier of CS programs usually covers these big three topics. Without getting too in-depth, it's where a lot of theoretical stuff comes into play, like automata theory. Of course, you'll get to choose some electives based on your focus of interest within the field

If you find yourself struggling, talk to your professor. Ask your TA questions. Go to your CS resource center. If it's a half-decent CS program, your university will have one. Talk to other classmates. Look online (don't copy and paste, that'll get you expelled!).

That being said, I've had great luck with CS professors. They explain things well, their lectures are fun, their assignments weren't anything crazy, and they were easy to talk to. They have always been understanding about how I do things as a blind student, and even allowed extensions just out of virtue of being compassionate and wanting me to succeed. Several professors even offered extra credit if students enhanced functionality of their programs by researching how to do so. They aren't going to be computer gods -- they won't know absolutely everything about CS. And that's where the self-guided portion of this field comes into play. Nobody really separates themselves if they just stick to what they learn in school. Tinker with things, install, play around, break things, fix them, break them again, just become familiar with as many things (especially things that interest you) as much as you possibly can. The point to all of this is so you can get work one day. Recruiters and interview committees absolutely love candidates who show that they have a genuine interest and curiosity for learning things and solving problems they've never encountered before. If you actively work on projects outside of class, it shows companies that you have great potential to be a dedicated and great software engineer.

Tangent aside, it's crucial that if you do decide to go major in CS at the collegiate level, you must be cautious as to which university or college you pick. Not any one will just do. Some programs are more refined while others may be newer and a little rough, or even very rough.
You also need to consider the quality of the disability services. I don't know too many people who go through a STEM field without some sort of accommodation, and if you're anything like me, you'll pull out all the accommodations for math courses. Just be cognizant of this part of the equation. Many blind people wind up failing some of the core requirements, not because they're too stupid to understand the material, but because they didn't get the proper accommodations in a timely fashion.

That's all I have for now.
big_smile

HTH

What game will hadi.gsf want to play next?

2019-05-18 20:18:22

if they want you to use IntelliJ, I recommend that you use Eclipse. it is a only fully accessible IDE for Java and as a beginner using an IDE is easier than the command line, especially for Java.

The thing you need to learn as quickly as possible is that you cant rely on your professors  fully and instead need to try to get as much help from them as you can, but ultimately rely on yourself and self study. Also come to terms with study material being inaccessible and having to do extra work either converting it to accessible format or finding accessible alternatives to the material.

time management is critical for any uni student, but for students with disabilities it is doubly critical, so practise organising your time and keeping track of your deadlines.

2019-05-22 01:20:01

Agreed with post 20.
A lot of the problems you face will be specific to your university, so it's crucial you stay consistently cognizant of this fact.
The other side to this is reach out to forums, mailing lists, and special groups to inquire about certain technologies or software your courses might use.
program-l
is a great mailing list for this purpose. Mind you, it's not just for college students. It's just a mailing list for the general field of CS. Lots of people exchange inquiries and info about software, so it's a great place to check against if you run into issues.
Ultimately, do what's optimal for your situation. If you encounter inaccessible software, like
MARS MIPS Simulator
, which is what my university uses to teach assembly language, then you're better off working out ways in which you can accomplish course objectives without sacrificing course content with your professor (and disabilities office if necessary). MARS could potentially be made accessible, but there's a bit of work involved, and quite honestly, it wasn't worth the hassle of going through all that when a perfectly-good solution was worked out between me and the professor. However, if there is a solution to figuring out how to make something work, mailing lists and groups are going to be of great help. Don't put yourself through the headache of figuring it out on your own. There's no use trying to reinvent the wheel. Expend energy only when necessary. As post 20 said, you're going to have to spend more time than your sighted counterparts to ensure you grasp all concepts and get the grades you need to pass (but hopefully do well).

What game will hadi.gsf want to play next?

2019-05-24 03:50:56

agree that above post said most of university teaching from book and don't allow alternative ways for us when learning
that happen with me when applied seeing teacher don't understand then they refuse me from passing interview
I have some question though regarding of cs major and engineering software and whatever major teach like this what would be different?
since I don't learn in university yet but maybe some of us could learn and give some idea for me

the bestest reward for people who are working so hard they should receive their experience of their own life.
everyone can collect in everyday.
:d

2019-05-30 13:08:18 (edited by leibylucw 2019-05-30 20:24:16)

To bring this topic back up to the top...
I'd strongly advise you learn LaTeX. Lots of CS students use it, and so do professors. You're going to have to take up to at least Calc2, and knowing LaTeX will almost be a must. You can render a LaTeX file into perfectly readable printed PDF's. This is especially useful for showing professors your work and submitting assignments. It's not the fastest process, but it's a perfectly-valid option. If you have Duxbury, you could convert to Braille, too. This brings me to my next point.
If you're a Braille reader, exploit that as much as you can. Get the book in Braille, get your assignments, exams, etc in Braille. If you're a heavy screen reader user, get the book in MathML-encoded MS Word or HTML files. Do what you need to prepare. Never walk into a class the first day and expect everything will fall into place. Have these conversations about what you need far in advance, maybe even a year (and no, I'm not kidding). If you need a math book, it can take upwards of 6-8 months to get it all embossed and shipped to your university.
Edit: The same is true for getting it in any format, really. Whether it's Braille, MathML, audio, etc, it'll take a good amount of time regardless what format it's in.
The general takeaway is to be always thinking ahead. It's NEVER too early to plan for these things.

What game will hadi.gsf want to play next?

2019-05-30 20:17:33

I definitely agree that planning ahead is key to keeping pace and not falling behind. If you are starting this fall, definitely contact your head of year to put you in touch with your professors so you can email back and forth about possible accessibility issues and how you will work around them.

For some assignments if they are only worth like 5-10% of the course marks and making it accessible is stupidly hard, then just ask for it to be voided.

The one thing i really wish I knew about when coming to Uni, which I learned pretty late is that other than braille, MathML is the most readable math format for blind people.

I did probably 50% - 90% of my studying for courses by reading the lecture slides. If possible if you know your courses in advance, ask your professors if you can check out previous year's slides. Do a quick check for accessibility and if they can be improved work with your professor to make it happen. Note that some professors will be very happy to make more things accessible, some will won't, but if your school is worth its salt they should still be obligated to make things accessible for you. Just don't be a dick about it when you ask for accessibility and make sure it is a reasonable adjustment. Then they have to help you.

2019-05-30 20:44:43

Thank you all for the help. I'm a Braille reader, but I'm going to get most of my stuff in properly formatted digital formats, because I think that technology has gotten to a point where if I use a Braille display, things like this should work. Math will probably be done in Braille, because I'm used to it, and I hope that this stuff will be will be done. When I do register for classes in a few weeks, I will definitely follow your advice, and try and plan ahead. Again, thanks for all the help!

A winner is you!
—Urban Champion