Opportunities and challenges of studying in computing fields

Download Report

Transcript Opportunities and challenges of studying in computing fields

Opportunities and Challenges
Unique aspect of CS
How to succeed in CS study?
IITG Team
Contributors: S. Zhang. A. Hoskey
• President
https://www.youtube.com/watch?v=6XvmhE1J9PY
Hadi Partovi (code.org)
https://www.youtube.com/watch?v=GsagBkLXtRE
Learn Computer Science
• What do you think Computer Science is?
• or, probably you can tell me what computer science is not.
What is Computer Science?
• 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 Misconceptions
• 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.
Computer Science Definition
• 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 onefourth 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.
Algorithm
•
•
•
•
•
•
•
•
•
Basic Concepts
Computational Thinking
Data Representation
Computer Systems (Architecture and OS)
Programming
Networking
Databases
Mobile Computing
Security Some Course Topics
•
•
•
•
•
•
•
•
Hardware
Software
Input
Processing
Output
Types of storage
CPU
OS
Basic Concepts
•
•
•
•
•
•
•
Searching
Recursion
Scheduling
Parallel Processing
Caching
Walks (Traveling Salesman)
Algorithms
Computational Thinking
• Why do computers use binary? Why not just
use decimal?
• Number Representation in Different Numeral
Systems
• Units of Information & Binary Number System
Data Representation
• Computer Architecture Hardware and
Software
• Operating Systems
– Processes
– Manage resources
– File systems
– Assembler instructions.
Computer Systems
• 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
Programming
•
•
•
•
•
Introduction to Networking
Introduction to Internet
Introduction to Client Server Model
Network administration overview
Description of networking related jobs
Networking
• 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
Database
• 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).
Mobile Computing
•
•
•
•
Overview
Basic types of attacks
Encryption
Possibly write an elementary encryption
algorithm in C++.
Security
• 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
What is Computer Science?
Problem Solving
• End of Presentation
End of Presentation
• End of Slides
End of Slides
Created by Arthur Hoskey, PhD
Unique aspects of CS
A man made field
• Full of changes and innovations
subfields
opportunities
challenges
• 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.
• Learn from failure, then quickly move on
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.
Types of Knowledges
Relationship with other disciplines
What truly separate CS from other
disciplines?