510 likes | 519 Views
Learn about the unique aspects of computer science study, debunk misconceptions, explore algorithm fundamentals, and tackle the challenges in this field with insights from experts at IITG Team, and more.
E N D
Opportunities and ChallengesUnique aspect of CSHow to succeed in CS study? IITG Team Contributors: S. Zhang. A. Hoskey
Learn Computer Science • President https://www.youtube.com/watch?v=6XvmhE1J9PY HadiPartovi (code.org) https://www.youtube.com/watch?v=GsagBkLXtRE
What is Computer Science? • What do you think Computer Science is? • or, probably you can tell me what computer science is not.
Computer Science Misconceptions • Misconception 1 - Computer science (CS) is the study of computers. • First work in CS took place BEFORE the first computer was invented (CS pioneering work was considered a branch of logic and applied mathematics). • Theoretical computer science – researchers study the logical and mathematical properties of problems and their solutions. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Computer Science Misconceptions • Distinction between computers and computer science. • Following quote from: Fellows, M.R, and Parberry, I. “Getting Children Excited About Computer Science”, Computing Research News, vol. 5, no. 1 (January 1993). “Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes, or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them and what we find out when we do.” • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Computer Science Misconceptions • Misconception 2 – Computer science is the study of how to write computer programs. • Programming is generally the first course in CS. • Programming is extremely important but like the computer itself it is a tool. • Researchers use programming to study new ideas and build and test new solutions. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Computer Science Misconceptions • Misconception 3 – Computer science is the study of the uses and applications of computers and software. • Many CS programs have a first course related to the application of computers and software. • Learning to use a software package is no more a part of computer science than driver’s education is a branch of automotive engineering. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Computer Science Misconceptions • Computers, programming languages, software, and applications are part of the discipline of computer science, but neither individually nor combined do they capture the richness and diversity of this field. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Computer Science Definition • Following definition from: Gibbs, N.E., and Tucker, A.B. “A Model Curriculum for a Liberal Arts Degree in Computer Science”, Comm. Of the ACM,29, no. 8 (March 1986). • The central concept in computer science is the algorithm. • It is not possible to understand the field without a thorough understanding of this critically important area. • It is the task of the computer scientist to design and develop algorithms to solve a range of important problems. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Algorithm • Algorithm (Dictionary Definition)– A procedure for solving a mathematical problem in a finite number of steps that frequently involves repetition of an operation; broadly: a step-by-step method for accomplishing some task. • An algorithm is an ordered sequence of instructions that is guaranteed to solve a specific problem. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Algorithm Cherry Pie Algorithm Step 1: Make the crust. Step 2: Make the cherry filling. Step 3: Pour the filling. Step 4: Back at 350 degrees for 45 minutes. • This algorithm might be good for a professional baker but a novice baker could have problems due to the lack of detail on some steps (How do you make the crust?, How do you make the cherry filling?). • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Algorithm Cherry Pie Algorithm (Revised) Step 1: Make the crust. 1.1 Take one an one-third cups flour. 1.2 Sift the flour. 1.3 Mix the sifted flour with one-half cup butter and one- fourth cup water. 1.4 Roll into two 9-inch pie crusts. Step 2: Make the cherry filling. 2.1 Open a 16-ounce can of cherry pie filling and pour into bowl. 2.2 Add a dash of cinnamon and nutmeg, and stir. Step 3: Pour the filling. Step 4: Back at 350 degrees for 45 minutes. • This algorithm is more detailed. • Taken from: Invitation to Computer Science by Schneider and Gersting, 6th edition, Cengage Learning, 2013.
Some Course Topics • Basic Concepts • Computational Thinking • Data Representation • Computer Systems (Architecture and OS) • Programming • Networking • Databases • Mobile Computing • Security
Basic Concepts • Hardware • Software • Input • Processing • Output • Types of storage • CPU • OS
Computational Thinking • Searching • Recursion • Scheduling • Parallel Processing • Caching • Walks (Traveling Salesman) • Algorithms
Data Representation • Why do computers use binary? Why not just use decimal? • Number Representation in Different Numeral Systems • Units of Information & Binary Number System
Computer Systems • Computer Architecture Hardware and Software • Operating Systems • Processes • Manage resources • File systems • Assembler instructions.
Programming • C++ Programming Language (why not just program using machine instructions?). • Compiling a program (C++ instructions vs assembler instructions vs machine instructions) • Program execution (line by line etc…) • Variables • If statements • Looping • Simple functions • Overview of object-oriented programming • Testing programs. Describe why quality assurance is important (QA). • Different programming languages (Java etc…) • Description of programming related jobs
Networking • Introduction to Networking • Introduction to Internet • Introduction to Client Server Model • Network administration overview • Description of networking related jobs
Database • Why bother with a database if we could just use a flat file? • Very simple normalization examples • SQL overview (basic select statements) • Data warehousing. Normal database (OLTP) vs data warehouse. • Description of database related jobs. Data modeler, Database Programmer, Database Administrator
Mobile Computing • Issues for mobile computing (low resources – battery, memory) • Android vs iOS • Storing data in the cloud • Possibly write a hello world app in Eclipse w/Android (need lab to be setup for this but software is all free).
Security • Overview • Basic types of attacks • Encryption • Possibly write an elementary encryption algorithm in C++.
What is Computer Science? • Girls in a Tech World: Endless Possibilities of Computer Science (2:39) https://www.youtube.com/watch?v=DYBPotROKC8 • What is CS (2:26) https://www.youtube.com/watch?v=4hZYDP-Q7WA
End of Presentation • End of Presentation
End of Slides • End of Slides Created by Arthur Hoskey, PhD
A man made field • Full of changes and innovations
Passing exams do NOT mean you can land on a job. • There are other exams after your graduation. Interviews, to find out whether or not whether or not you have truly learned and you can apply what you learned to real-life technical situations.
Succeed in computer science anywhere requires • dedication • passion and • hours of work • Mentally strong • Learn fundamental concepts • Learn broad subjects, branch out • Practice • Be detailed • Be patient • Be humble • Keep learning, life long learning • Need to read technical papers, manual • Need to write • Need to communicate • Need to present
Be logical • Algorithms and programming need to be discreet and logic
Be mathematic • Computer science is based around a mathematical foundation. • Math is also an important factor in computer science. For any nontrivial program, you need to implement programs using math knowledges.
Be strong mentally • Be calm in stressful environments • “The computer can be a toy, not just a tool,” Pierce said. “One should choose a field where one has a natural passion, and those who tinkering with their computer will probably be comfortable working with it professionally."
Be strong physically • Long hours of working
Be creative • Being a computer expert doesn’t really mean you are restricted to one single method or practice. • Being a computer expert means branching out and always striving for the impossible.
Smart & fast learner • to process large amounts of technical information quickly.
It is important to have a general breadth of computer knowledge, because computer scientists often have to develop interesting solutions to interesting problems.
practice • Read and write a lot of code • While it doesn’t sound fun to be going through countless streams of code and data, it is a necessity in order to stay in the computer science workforce. • “Your career will require it,”
Programming • Hard • Time consuming • No shortcut
Use them • The best way of learning any language, • The only way of learning any language. • Applies to C++, Java • Applies to Lisp, Prolog
Keep learning • “Due to technology becoming exponentially complex, one must continuously update their skills to stay competitive within the field."
Be ethical • difference in ethics in different fields
Be knowledgeable • Depending on your task, you might need to develop quickly a business perspective or pick up some math, or physics on your own. • You won’t learn everything during your 4 years.