• Breaking News

    Friday, March 22, 2019

    CompSci Weekend SuperThread (March 22, 2019) Computer Science

    CompSci Weekend SuperThread (March 22, 2019) Computer Science


    CompSci Weekend SuperThread (March 22, 2019)

    Posted: 21 Mar 2019 06:05 PM PDT

    /r/compsci strives to be the best online community for computer scientists. We moderate posts to keep things on topic.

    This Weekend SuperThread provides a discussion area for posts that might be off-topic normally. Anything Goes: post your questions, ideas, requests for help, musings, or whatever comes to mind as comments in this thread.

    Pointers

    • If you're looking to answer questions, sort by new comments.
    • If you're looking for answers, sort by top comment.
    • Upvote a question you've answered for visibility.
    • Downvoting is discouraged. Save it for discourteous content only.

    Caveats

    • It's not truly "Anything Goes". Please follow Reddiquette and use common sense.
    • Homework help questions are discouraged.
    submitted by /u/AutoModerator
    [link] [comments]

    Diverse and robust molecular algorithms using reprogrammable DNA self-assembly

    Posted: 22 Mar 2019 01:37 AM PDT

    https://www.nature.com/articles/s41586-019-1014-9

    I don't have access to the full text, anyone knows more details on the implementation?

    submitted by /u/adarkar
    [link] [comments]

    Well explained daily coding challenges in Javascript

    Posted: 21 Mar 2019 06:39 PM PDT

    Nand2Tetris Hardware simulator won't load HDL files with code in it

    Posted: 22 Mar 2019 04:27 AM PDT

    When I try to load the edited HDL file nothing happens, no error message or anything, it just doesn't load.
    Other unedited HDL files load fine. Also when I remove the code I wrote under the parts section and saved + tried to load it did load just fine.

    I was trying to load the Not.hdl chip and my code was "Nand(a=in, b=in, out=out)"

    Any clue?
    (I am running windows 10 and the format I saved it in is ANSI. It's in the directory ...projects/01.)

    submitted by /u/monkaSman
    [link] [comments]

    Uneven Data Recording for FFT

    Posted: 21 Mar 2019 10:13 PM PDT

    I have some readings off a microphone through an arduino into excel, but with an uneven rate of data logging (alternates between 3-4-5 separate readings per second for some reason)

    Can I still do fourier transformation through excel?

    submitted by /u/zueses
    [link] [comments]

    Semantics: Operational vs Denotational vs Axiomatic

    Posted: 21 Mar 2019 01:32 PM PDT

    Hey folks! I was reading a bit about computer science semantics and I'd like to make sure I understood correctly the definitions of the following types of semantics (operational, denotational, axiomatic) by mapping them to some very basic, real world examples.

    Quick glossary of the terms in their most basic form:

    • semantics: the study of meaning in a language (words, phrases, etc) and in programming languages it's no different, it means the meaning of language constructs (it refers to the relationship between signifiers like words, signs, symbols and what they stand for in reality)
    • operational: related to the activities involved in doing or producing something
    • denotational: the main meaning of a word
    • axiomatic: obviously true and therefore not needing to be proved

    Wikipedia's main article about: semantics).

    Operational semantics:

    This says that the meaning of a language construct is specified by the computation it induces. It is of interest how the effect of a computation is produced. My understanding of this is that this basically describes the meaning of all the operations involved in a program (from the most basic to the most complex).

    Examples:

    arithmetic operations: 1 + 1, 10 ** 2, 19 // 3 etc. In this case it analyzes the meaning of the steps involved in producing a result given n operands and n operators. This can be further boiled down to what each operand means (so in my examples each number is defined in the domain of natural numbers [1, 2, ..., n], etc.

    assignment operations: x = 5, y = 5 ** 2, z = 10 ** 2 // 3 * (99 + 1024) etc. In this case it involves an evaluation of the value of the mathematical expression on the right and assigning it to the identifier on the left.

    augmented assignment operations: x += y, z *= t etc. In this case it involves an evaluation of each identifier once, and performing an arithmetic operation first, followed by an assignment operation last.

    etc.

    Denotational semantics:

    This says that meanins are modelled by mathematical objects that represent the effect of executing the constructs. It is of interest only the effect of a computation, not how it is produced. My understanding of this is basically mathematical functions, which take something as an input, do some computation (which you don't care about) and produce a result, which you care about. Since denotational means the main meaning, I take this as: the name of your function should constrain the possible interpretations of what it does, ideally to be exact.

    Examples:

    sort(iterable): should pretty much do what it says, take an unordered iterable as its input and return it ordered.

    min(iterable): should take an array return the smallest value (you don't care how it does it)

    max(iterable): should take an array return the largest value (you don't care how it does it)

    abs(x): return the absolute value of a number

    etc.

    Axiomatic semantics:

    Some properties of the effect of executing the constructs are expressed as assertions. Some aspects of the executions may be ignored. My understanding of this is that it's related to boolean algebra and logic.

    Examples:

    expr1 and expr2: if expr1 is False then the entire boolean expression is False and it short-circuits and expr2 is not evaluated

    Or even compound statements:

    if expr1: elif expr2: elif expr3: else: 

    The effect is the result of executing the above construct and you assert its value based on whichever boolean expression yield true, the rest of them being ignored.

    Question:

    Is this what these various semantic categories mean and did I understand them correctly? If not, please provide some basic examples for all 3 as Wikipedia tends to go very formal.

    submitted by /u/mmarius90
    [link] [comments]

    Software Testing

    Posted: 22 Mar 2019 01:05 AM PDT

    What are the techniques for testing android applications?

    submitted by /u/codexblaze
    [link] [comments]

    How to get an internship in 2019

    Posted: 21 Mar 2019 05:00 PM PDT

    So you want a coveted internship? This answer is mainly geared towards software, but can be applicable to any industry.

    I'm have some tips that helped me get my first software engineering internship in Silicon Valley, right out of my coding bootcamp. I break down some of the best ways to get an internship as quickly as possible, as easily as possible.

    Whether you studied computer science in college, went to a coding bootcamp, or are self-taught, these tips will help you through.

    If you prefer video format, here's a video I made covering these topics:

    https://youtu.be/eyzKYYwB0ng

    The first main tip is to start as early as possible. Bigger companies who have the most internships available start early in August, September, an October with posting their internships. The earlier you start, the higher chance you have at beating the competition.

    The second tip, and probably the most crucial one is to use your network. Using the back door to get your foot in is much easier than using the door that thousands of people are using (the automated online job portal). You can use LinkedIn, Facebook, and word of mouth to find people who worked at specific companies. On LinkedIn, you can use search queries like [Insert college here], and then use people filters such as 1st /2nd-degree connection, location, and company. This helps hyper-target your audience.

    The best people in your network to reach out to are:

    - College / coding bootcamp alumni who work at the company you want to work at

    - Friends / classmates who interned at that company

    - Professors / mentors who might have connections with that company

    - Friends of friends who work there (use Facebook to search this - "friends of friends who worked at [X company]

    The next tip (this is crucial, and will save you a ton of time). Don't send your resume off into a black hole (such as Indeed, Glassdoor, etc) and do nothing else. My rule is for every job app you send into an online portal, you need to connect with one real person as well. There are a handful of ways to connect with a real person at this company - use a Gmail plugin like Clearbit Connect, or Hunter io to find peoples' work emails by company search (give them a quick Google - you'll see what I mean). These are extremely powerful tools. Then, send them a quick note:

    ~~~

    Hi [person's name]!

    My name is [your name], and I'm an [type of engineer] in [location].

    I'm reaching out because I applied to [company] regarding your [position].

    I have experience with [this technology, skill, etc]

    Following up, I've provided my resume and cover attached letter below.

    Would someone on your team be open to chatting more about this role by [insert date to add time pressure]?

    Thanks so much!

    [Your name]

    [Phone number]

    ~~~

    Following up after they've responded:

    Would you be willing to connect me to the hiring manager for this position per chance? I'd greatly appreciate it!

    Thanks so much!

    [Your name]

    ~~~

    The most important thing is to not be annoying. If they don't respond after following up once or twice, try another person at the company.

    If you've used the last 2 tips (network, reaching out) and have finally connected with a real person, you can ask them "How can I stand out in the intern application process for [X] company?", or even better, ask to buy them a coffee and pick their brain about their experience working at the company, the company culture, and to see if you'd be a good fit.

    Another way to stand out is to have an amazing portfolio. This isn't absolutely necessary (at least for Software Engineers), but will help you stand out above the crowd. My tips here:

    - Host your projects on Github (clean up code, add ReadMe, etc)

    - Add your projects, with screenshots and descriptions, to your LinkedIn experience/projects section

    - Create a video outlining your design decisions, tech choices, etc (I did this when applying, and it definitely helped)

    - Deploy your projects to the web, and have a landing page which can direct people towards them

    The next tip is to prepare for the technical interview. If you've gotten this far but fail the technical portion, chances are you won't make it further. They can give you any question, but your goal is to be familiar enough with basic concepts, so you can adapt on the spot. Using sites like LeetCode can help improve your technical ability. It also helps if you've seen similar questions to the interview ones - LeetCode will help you with this. Sites like Pramp help you practice interview skills live, which is another surefire way to get feedback and improve your chances at doing well. Take a few deep breaths before you walk into the interview, and you're ready to go because you know you prepared!

    The final tip I have (and one that sped up my job search tenfold) is to track EVERYTHING. There's a Gmail plugin called streak that allows you to track your job search in a funnel. Streak also allows to send template snippet emails, and you can see if someone has viewed your email. So handy!

    I customized the funnel by tracking:

    1. Company Name

    2. Position Name

    3. Contact Name

    4. Contact Email

    5. Contact LinkedIn

    6. Date of Last Contact

    7. Job Source

    8. Job Posting URL

    If you're not a fan of Gmail plugins, you can also use a spreadsheet like Excel, Google Sheets, and my favorite (spreadsheet/database mix) Airtable! Airtable is a solid option, because it allows you to link different tables, attach documents, and organize things with ease. An Airtable tutorial would take a whole other post, but I encourage you to check it out!

    The job search is ultimately a game of failure, persistence, and triumph. You ultimately need to create your own luck, and this happens by widening your pool. Start applying to as many places as possible! These tips I shared above allowed me to apply to 150 jobs in 3 days! Most of the time I ignored the cover letter (do they really matter, anyway?) and focused completely on connecting with a real person. That's what will ultimately start you on your journey.

    submitted by /u/mattupham
    [link] [comments]

    New Study Uses Machine Learning to Predict Sexual Orientation

    Posted: 21 Mar 2019 01:14 PM PDT

    How does the Java Virtual Machine deal with constants?

    Posted: 21 Mar 2019 12:51 PM PDT

    So I compiled this code and decompiled it into bytecode:

    System.out.println("hi");

    compiles to:

    getstatic

    ldc

    invokevirtual

    From what I can see here, the literal value "hi" isn't explicitly stored in any bytecode format, so does a .class
    file also contain a hidden representaion of a heap and stack in for that program. For example when I compiled that program would the .class file contain that bytecode, and a heap data structure containing the literal value "hi". And more generally, does a .class file contain more than just bytecode (e.g. a representation of the heap, stack and registers). thanks!

    submitted by /u/throwawaythememe
    [link] [comments]

    AttoNets: Compact and Efficient DNNs Realized via Human-Machine Collaborative

    Posted: 21 Mar 2019 11:12 AM PDT

    How does the Java Virtual Machine send to standard out and read from standard in?

    Posted: 21 Mar 2019 06:46 AM PDT

    As the JVM sends output streams to standard out, what is the actual JVM bytecode that performs this?

    After looking online, any time System.out.println() is called, the equivelent bytecode is simply invokevirtual

    So how does the JVM actually handle input and output and how would I go about it if I were writing a simple vm?

    submitted by /u/throwawaythememe
    [link] [comments]

    No comments:

    Post a Comment