Please go check revisingigcse.com (link in the bio). We (Jasmine + Sherry) put a lot of effort into this so I hope you can all check it out and show some support. The website is about igcse. It includes all our personal notes + resources + tips and more!! Hopefully it will help some of you through igcse/gcse!!
“[E]xpert programmers control the complexity of their designs with
the same general techniques used by designers of all complex systems.
They combine primitive elements to form compound objects, they abstract
compound objects to form higher-level building blocks, and they preserve
modularity by adopting appropriate large-scale views of system
structure. However, as we confront increasingly complex problems, we
will find that … any fixed programming language is not sufficient for
our needs. We must constantly turn to new languages in order to express
our ideas more effectively. Establishing new languages is a powerful
strategy for controlling complexity in engineering design; we can often
enhance our ability to deal with a complex problem by adopting a new
language that enables us to describe (and hence to think about) the
problem in a different way, using primitives, means of combination, and
means of abstraction that are particularly well suited to the problem at
Programming is endowed with a multitude of
languages. There are physical languages, such as the machine languages
for particular computers. These languages are concerned with the
representation of data and control in terms of individual bits of
storage and primitive machine instructions. The machine-language
programmer is concerned with using the given hardware to erect systems
and utilities for the efficient implementation of resource-limited
computations. High-level languages, erected on a machine-language
substrate, hide concerns about the representation of data as collections
of bits and the representation of programs as sequences of primitive
instructions. These languages have means of combination and abstraction,
such as procedure definition, that are appropriate to the larger-scale
organization of systems.
Metalinguistic abstraction –
establishing new languages – plays an important role in all branches of
engineering design. It is particularly important in computer
programming, because in programming not only can we formulate new
languages but we can also implement these languages by constructing
evaluators. An evaluator (or interpreter) for a programming language is a
procedure that, when applied to an expression of the language, performs
the actions required to evaluate that expression.
It is no exaggeration to regard this as the most fundamental idea in programming:
The evaluator, which determines the meaning of expression in a programming language, is just another program.
appreciate this point is to change our images of ourselves as
programmers. We come to see ourselves as designers of languages, rather
than only users of languages designed by others. “
Probably you’ve heard Karlie’s speech about her coding scholarship. “I think it’s crucial that young women learn to code as early as
possible, to ensure that we have a voice and a stake in what the world
looks like”, she said at the famous promotional video.
Coding is an amazing skill for making some of your thoughts real. It’s the ultimate way for solving problems, implement algorithms and so on. As you may know, coding works as another way of communication, and so you need a language. But which one? Choosing the adequate one is sometimes difficult, always relevant. Wikipedia has a page itself describing the differences between C, C++, Python, Java, Pearl… Forums are a good source of information too.
For making easier the introduction to languages (maybe you don’t like how C++ works, Java syntaxis), I thought that a list of webs where you can code online could be useful.
Specifically for Web Development
My fave. I started when I was fifteen or sixteen learning on my own, and I was absolutely in love with Brackets. But here I found other software online:
Codepen: Minimal design, fast, with liveview that is automatically updated when you click them.
JsBin: This one allows you to code in the same page where it’s embedded into. Super recommended.
Liveweave Updates the layout without reloading the page, and you can actually change the size of each individual cell, as well as downloading your code. It’s very similar to the others, and includes an interesting feature for autoformating and cleaning up the code. Many forums recommend it.
PHP, Python, Ruby, SQL, and many more. Code can be download in the proper format to your computer system, and shared as well at a wide range of social networks. Super recommended.
CodeAnywhere: Super cool. Multiplatform (web, Android, iOS), 75 languages, customized playground, code beautify… It has different prices deppending on your needs. I recommend the $7 per user/mo., but they have a free version too.
Perhaps the most famous site for learning how to code, this is must have for any aspiring computer scientist, web dev, or programmer. A smooth UI, dozens of courses, APIs, and fun quizzes if you decide to cough up a bit of money. $19 is crazy dirt cheap compared to some $200 courses out there on the web.
This is one of the BEST websites to learn about security and you can follow tutorials by real hackers and members of the IT field. With a strong community full of experienced authors, you will either flourish by using proper grammar or be mocked for asking “how do i hack gmail??”
ROBLOX hacking, general exploits, or just normal discussions. Roblox helped put me on my path to coding and I love how every day, millions of kids are being taught the ability of coding thanks to its studio.
MARGARET HAMILTON WASN’T supposed to invent the modern concept of software and land men on the moon. It was 1960, not a time when women were encouraged to seek out high-powered technical work. Hamilton, a 24-year-old with an undergrad degree in mathematics, had gotten a job as a programmer at MIT, and the plan was for her to support her husband through his three-year stint at Harvard Law. After that, it would be her turn—she wanted a graduate degree in math.
But the Apollo space program came along. And Hamilton stayed in the lab to lead an epic feat of engineering that would help change the future of what was humanly—and digitally—possible.
As a working mother in the 1960s, Hamilton was unusual; but as a spaceship programmer, Hamilton was positively radical. Hamilton would bring her daughter Lauren by the lab on weekends and evenings. While 4-year-old Lauren slept on the floor of the office overlooking the Charles River, her mother programmed away, creating routines that would ultimately be added to the Apollo’s command module computer.
“People used to say to me, ‘How can you leave your daughter? How can you do this?’” Hamilton remembers. But she loved the arcane novelty of her job. She liked the camaraderie—the after-work drinks at the MIT faculty club; the geek jokes, like saying she was “going to branch left minus” around the hallway. Outsiders didn’t have a clue. But at the lab, she says, “I was one of the guys.”
Then, as now, “the guys” dominated tech and engineering. Like female coders in today’s diversity-challenged tech industry, Hamilton was an outlier. It might surprise today’s software makers that one of the founding fathers of their boys’ club was, in fact, a mother—and that should give them pause as they consider why the gender inequality of the Mad Men era persists to this day.
Ahhh this is the first semester that I got all A’s in my
classes! And mind you this is my third year (fifth semester) at Georgia Tech so
I’ve been waiting a while for this day :’)
Honestly, I think the studyblr community has contributed a
lot to my success this semester. I think a lot of us know the techniques we should be using in order to get good
grades, but it’s hard to actually find the motivation to have good study
habits. However, there were two things that I really put some effort into changing
about my study habits this semester:
1) The Curve of Forgetting
every day is one of those obvious things, but seeing this graph really drove
home just helpful it is to study even just for a little bit each day. I had
tests every week for the month leading up to Thanksgiving, so I had one week
after finals (which we call Dead Week) before finals week started. However,
every day during Dead Week I spent a lot of time studying for each of my finals.
BUT I didn’t pull any all-nighters – I was just really dedicated each day to
spend my time studying. Which led to me being extremely prepared during finals
week itself. Even though I was spending most of my day during finals week
studying, I had time during the day to take some nice breaks and also get a
full night’s sleep each night.
2) Pomodoro Technique
I saw @slytherinstudycove‘s post about this app called Pomodoro Challenge. It’s essentially a
Pomodoro app that times your work periods and your breaks. When you start the
timer, you can specific what project you’re working on, and it’ll track stats
about how much you worked on that project, how much time you spend working each
day of the week on average, etc.
I’m the kind of person that can focus working on a homework assignment /
project really well, but I’m reeeeally bad at focusing on studying. It’s just
so much more boring and there’s just no clear end in sight (after all, when are
you truly done studying?). At least with this app, it actually motivates me to
study for the 25 minute work periods without getting distracted. I know that
the breaks are only 5 minutes, but I edited it so I have 7 minute breaks haha.
On top of the time that I used this app to study, I spent several hours studying that I didn’t record. Overall this app definitely helped me out while I was studying for my
Well, those are the two things that were most helpful to me. Happy studying!
Hey, guys. I’ve decided to make my first study masterpost. This contains great free online courses to improve your coding skills and broaden your knowledge or a guide for a newbie who wants to start learning cs. Many of this recommendations were sent to me by some big tech-companies to help me to prepare for the interviews. Generally, it would be a great addition to classes taken at college.
In 2014, President Obama learned how to write his first line of code from an 11-year-old. And this weekend, he announced a bold new initiative to ensure all of our students get the opportunity to learn the computer science skills they need to succeed in a 21st century economy. Learn more at wh.gov/CSforAll.
The title is a reference to the 1988 book by Xu Bing, who composed thousands of fictitious glyphs in the style of traditional Mandarin prints of the Song and Ming dynasties.
A DCGAN is a type of convolutional neural network
which is capable of learning an abstract representation of a collection
of images. It achieves this via competition between a “generator” which
fabricates fake images and a “discriminator” which tries to discern if
the generator’s images are authentic (more details). After training, the generator can be used to convincingly generate samples reminiscent of the originals.
… a DCGAN is trained on a labeled subset of ~1M handwritten
simplified Chinese characters, after which the generator is able to
produce fake images of characters not found in the original dataset.