Computer Science Hackathon

Introduction to Computer Science

Computer science is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical procedures (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information. An alternate, more succinct definition of computer science is the study of automating algorithmic processes that scale. A computer scientist specializes in the theory of computation and the design of computational systems.

Its fields can be divided into a variety of theoretical and practical disciplines. Some fields, such as computational complexity theory (which explores the fundamental properties of computational and intractable problems), are highly abstract, while fields such as computer graphics emphasize real-world visual applications. Still other fields focus on the challenges in implementing computation. For example, programming language theory considers various approaches to the description of computation, while the study of computer programming itself investigates various aspects of the use of programming language and complex systems. Human–computer interaction considers the challenges in making computers and computations useful, usable, and universally accessible to humans.

Computer Science area

Areas crucial to the discipline of computer science:

Computer Science hackathon

A hackathon (also known as a hack day, hackfest or codefest) is an event in which computer programmers and others involved in software development and hardware development, including graphic designers, interface designers and project managers, collaborate intensively on software projects in competition with other teams.[1] Occasionally, there is a hardware component as well. Hackathons typically last between a day and a week. Some hackathons are intended simply for educational or social purposes, although in many cases the goal is to create usable software. Hackathons tend to have a specific focus, which can include the programming language used, the operating system, an application, an API, or the subject and the demographic group of the programmers. In other cases, there is no restriction on the type of software being created.

The term "hackathon" has also been used as a term for more general "focused innovation efforts" that includes non-coders and community members

Introduction to Software Engineering

Software engineering is the study of designing, implementing, and modifying software in order to ensure it is of high quality, affordable, maintainable, and fast to build. It is a systematic approach to software design, involving the application of engineering practices to software. Software engineering deals with the organizing and analyzing of software—it doesn't just deal with the creation or manufacture of new software, but its internal maintenance and arrangement

The word "hackathon" is a portmanteau of the words "hack" and "marathon", where "hack" is used in the sense of exploratory programming, not its alternate meaning as a reference to computer crime

The term seems to have been created independently by both the developers of OpenBSD and the marketing team of Sun; these usages both first happened in 1999[citation needed]. OpenBSD's apparent first use of the term referred to a cryptographic development event held in Calgary on June 4, 1999,[3] where 10 developers came together to avoid legal problems caused by export regulations of cryptographic software from the United States. Since then, a further 3-5 events have occurred around the world to advance development, generally on University campuses. For Sun, the usage referred to an event at the JavaOne conference from June 15 to June 19, 1999; there John Gage challenged attendees to write a program in Java for the new Palm V using the infrared port to communicate with other Palm users and register it on the Internet.

Hackathon Starting in the mid to late 2000s, hackathons became significantly more widespread, and began to be increasingly viewed by companies and venture capitalists as a way to quickly develop new software technologies, and to locate new areas for innovation and funding.[1] Some major companies were born from these hackathons, such as GroupMe, which began as a project at a hackathon at the TechCrunch Disrupt 2010 conference; in 2011 it was acquired by Skype for $85 million.[1] The software PhoneGap began as a project at the iPhoneDevCamp (later renamed iOSDevCamp) in 2008;[4] the company whose engineers developed PhoneGap, Nitobi, refocused itself around PhoneGap, and Nitobi was bought by Adobe in 2011 for an undisclosed amount.[5]

Types of hackathons:

Introduction to Web applications development

Web programming, also known as web development, is the creation of dynamic web applications. Examples of web applications are social networking sites like Facebook or e-commerce sites like Amazon. The good news is that learning web development is not that hard! In fact, many argue it’s the best form of coding for beginners to learn. It’s easy to set up, you get instant results and there’s plenty of online training available. A lot of people learn web coding because they want to create the next Facebook or find a job in the industry. But it’s also a good choice if you just want a general introduction to coding, since it’s super easy to get started. No matter whether you’re looking for a career or just want to learn coding, learning how to develop for the web is for you. It’s one of the smartest decisions you will ever make!

There are two broad divisions of web development – front-end development (also called client-side development) and back-end development (also called server-side development). Front-end development refers to constructing what a user sees when they load a web application – the content, design and how you interact with it. This is done with three codes – HTML, CSS and JavaScript. HTML, short for Hyper Text Markup Language, is a special code for ‘marking up’ text in order to turn it into a web page. Every web page on the net is written in HTML, and it will form the backbone of any web application. CSS, short for Cascading Style Sheets, is a code for setting style rules for the appearance of web pages. CSS handles the cosmetic side of the web. Finally, JavaScript is a scripting language that’s widely used to add functionality and interactivity to web pages. Back-end development controls what goes on behind the scenes of a web application. A back-end often uses a database to generate the front-end.

Back-end scripts are written in many different coding languages and frameworks, such as…