0% found this document useful (0 votes)
58 views23 pages

A Brief Introduction Into Computer Science - UC Calgary

11/22/2021 A brief introduction into computer science 1 Introduction To Computer Science In this section you will get an overview of some research areas and higher level courses in Computer Science.

Uploaded by

undefined
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views23 pages

A Brief Introduction Into Computer Science - UC Calgary

11/22/2021 A brief introduction into computer science 1 Introduction To Computer Science In this section you will get an overview of some research areas and higher level courses in Computer Science.

Uploaded by

undefined
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

11/22/2021

Introduction To Computer
Science

In this section you will get an


overview of some research
areas and higher level courses
in Computer Science.

Introduction To Computer Science


• Computer Science is about problem solving

Graphics:
Image curtesy of
Xin Liu

Representing large sets of data


Image from:
Lau, E. (2003) Stocks. Artificial Intelligence
FIFA © Electronic Arts.

A brief introduction into computer science 1


11/22/2021

Some Areas Of Study And Research In Computer


Science
• Human-Computer Interaction
• Computer Graphics
• Information Visualization
• Databases
• Computer theory
• Computer networking and distributed systems
• Artificial Intelligence
• Computer Vision
• Software Engineering
• Computer Security
• Games programming
This list provides only a brief introduction to the different areas of Computer Science and is far from comprehensive:
For a more updated list of research areas: http://www.cpsc.ucalgary.ca/Research/
Calendar (courses):
– http://www.ucalgary.ca/pubs/calendar/current/computer-science.html
– http://www.ucalgary.ca/pubs/calendar/current/software-engineering.html James Tam

Some Areas Of Study And Research In Computer


Science
• Human-Computer Interaction
• Computer Graphics
• Information Visualization
• Databases
• Computer theory
• Computer networking and distributed systems
• Artificial Intelligence
• Computer Vision
• Software Engineering
• Computer Security
• Games programming
This list provides only a brief introduction to the different areas of Computer Science and is far from comprehensive:
For a more updated list of research areas: http://www.cpsc.ucalgary.ca/Research/
Calendar (courses):
– http://www.ucalgary.ca/pubs/calendar/current/computer-science.html
– http://www.ucalgary.ca/pubs/calendar/current/software-engineering.html
James Tam

A brief introduction into computer science 2


11/22/2021

Human-Computer Interaction (HCI)


• Most of Computer Science deals with the ‘technical’ side of
computers such as:

Run computers faster!


Make computers store
more information!!

Increase the
networking capabilities
of computers!!!

•These technical issues (and others) are all very important but
something is still missing...
For more information: http://ilab.cpsc.ucalgary.ca/ James Tam

Human-Computer Interaction (HCI)


• Most of Computer Science deals with the ‘technical’ side of
computers such as:

Run computers faster!


Make computers store
more information!!

Increase the
networking capabilities
of computers!!!

•These technical issues (and others) are all very important but
something is still missing...
For more information: http://ilab.cpsc.ucalgary.ca/ James Tam

A brief introduction into computer science 3


11/22/2021

Human-Computer Interaction
• ...but don’t forget about the other side of the relationship.
• No matter how powerful the computer and how well written is
the software, if the user can’t figure out how it works then the
system is useless.
• Software should be written to make it as easy as possible for
the user to complete their task. (Don’t make it any harder than
it has to be).
• This is just common sense and should/is always taken into
account when writing software?
Common sense?...come on!

James Tam

Previous Examples
• Cases where designing “user-friendly” technology was not just
a matter of commonsense.

James Tam

A brief introduction into computer science 4


11/22/2021

What Is Human-Computer Interaction?

Difficult to use

Easy to use

Or at least easier to use

James Tam

How Can This Be Done?


• Many techniques have been developed.
– Some may have already been covered (Usability heuristics from
‘Repetition’)
• One other technique: simple but effective (user-centered
design)
– Basic principle: getting users involved in the design process from the
beginning (rather than building the system and then getting feedback
afterwards which is the traditional approach).
– Many benefits:
• Cost reduction: The further along the software development process the
harder it is to make changes.
Paper sketches Complete software (from Saul Greenberg mockup)

• Users may also provide many unexpected insights


James Tam

A brief introduction into computer science 5


11/22/2021

HCI: Higher-Level Courses


• CPSC 481: Human-Computer Interaction I
• CPSC 581: Human-Computer Interaction II
• (Related: Human-Robot Interaction)
– CPSC 599.65—Robot head-based interaction
– CPSC 599.62—Advanced topics in human-computer and human-robot
interaction
– CPSC 599.17—Human-robot interaction

James Tam

Computer Graphics
• Concerned with producing and manipulating images using
technology

Gran Turismo © Sony

For more information: http://jungle.cpsc.ucalgary.ca/ James Tam

A brief introduction into computer science 6


11/22/2021

Computer Graphics: Issues


• How to make the images look “real”?

From http://klamath.stanford.edu/~aaa/

Computer Graphics: Common Misconception


• It’s about creating the programs that produce the realistic
images and animations (not using existing programs like Photo
shop ©).

James Tam

A brief introduction into computer science 7


11/22/2021

Computer ‘Graphics’ Have Come A Long Way!

“ASCII games” (Tam)

‘Pacman’: re-creation
‘Battlezone’: re-creation via via
http://my.ign.com/atari/battlezone http://www.webpacman
.com/pacman.php
‘Pong’: re-creation via “Ball 2.7”

Dragon’s lair

“’Ultimate’ Mortal Kombat” re-creation via


http://en.gameslol.net/ultimate-mortal-kombat-3-996.html James Tam

Computer Graphics: Still A Long Way To Go


• “Even though modeling and rendering in computer graphics have
been improved tremendously in the past 35 years, we are still not at
the point where we can model automatically, a tiger swimming in the
river in all it’s glorious details.” 1

1 From “The Tiger Experience” by Alain Fournier at the University of British Columbia
James Tam

A brief introduction into computer science 8


11/22/2021

Graphics: Some Areas


• Animations

• Modeling

Xin Liu

• Rendering

Xin Liu

• Image processing

James Tam James Tam

James Tam

Graphics: Higher-Level Courses


• CPSC 453: Introduction to computer graphics
• CPSC 587: Fundamentals of computer animation
• CPSC 589: Modeling for computer graphics
• CPSC 591: Rendering

James Tam

A brief introduction into computer science 9


11/22/2021

Artificial Intelligence
• Trying to build technology that appears to be ‘intelligent’
• Intelligence: What makes a person smart?
– Fact retrieval?
– Creativity?
– Solving problems?

For more information:


http://pages.cpsc.ucalgary.ca/~jacob/AI/
http://pages.cpsc.ucalgary.ca/~denzinge/
http://pages.cpsc.ucalgary.ca/~kremer (retired) James Tam

Artificial Intelligence: Some Areas


• Expert systems
• Neural networks

James Tam

A brief introduction into computer science 10


11/22/2021

Expert Systems
• The focus is on capturing the knowledge of a human expert as
a set of rules stored in a database.
• The expert system can then answer questions, diagnose
problems and guide decision making.
• Example applications: medicine, computer repair

James Tam

Neural Networks
• The focus is on building structures that function the way that
neurons (and their connections in the brain) function.
• (Simplified overview):
– Neurons take electrical pulses as input and send electrical pulses as
output.
– A required level of input is required before the output is ‘fired’.
• This approach has been applied to problems which involve
pattern recognition ( e.g., visual, voice).

James Tam

A brief introduction into computer science 11


11/22/2021

Artificial Intelligence: Mission Accomplished?


• How do we know we have a "smart machine"?
– The Turing test

???

James Tam

Artificial Intelligence: Higher-Level Courses


• CPSC 433: Artificial Intelligence
• CPSC 565: Emergent computing
• CPSC 567: Foundations of multi-agent systems
• CPSC 568: Agent communications

James Tam

A brief introduction into computer science 12


11/22/2021

Computer Vision
• The focus is on interpreting and understanding visual
information.

No
? No

?
No
No

For more information:


http://pages.cpsc.ucalgary.ca/~boyd/pmwiki/pmwiki.php?n=Main.Research
http://people.ucalgary.ca/~jparker/ (Transferred to Arts) James Tam

Computer Vision: Some Areas


Recognition

Identification of malignant
cells: Stanford (Durmus et.
al 2015)

Restoration

Image-based search engines Removing imperfections such as blurring


James Tam

A brief introduction into computer science 13


11/22/2021

Computer Vision: Higher-Level Courses


• CPSC 535: Introduction to image analysis and computer vision

James Tam

Software Engineering
• Concerned with employing systematic ways of producing
good software on time and within budget.
• A typical person can only hold ~7 concepts in their mind at a
time.
– A typical computer program consists of more than 7 ‘parts’.
• Consequently mechanisms for dealing with this complexity
are needed.
– Top down approach is one way: break a large (hard to conceive)
problem into smaller more manageable parts.

For more information:


http://www.cpsc.ucalgary.ca/cpsc_research/areas/evolutionary James Tam

A brief introduction into computer science 14


11/22/2021

Software Engineering (2): Techniques


• Agile program development
• Design patterns

James Tam

Traditional Software
Development “Waterfall” Agile Software Development

• (Specifics can vary generally this • Software development is broken


approach consists of a fixed one into parts rather than working on
way sequence). the entire system at once stage by
1. Gather requirements stage.
2. Design the system • With a particular portion of the
3. Implement and test the system program all 5 stages are worked on
for several weeks.
4. Verify with the user and make
– A representative stakeholder works
some changes with the team during this time.
5. Maintain the system • At the end of that time that part of
• The entire project is worked on for the project is sufficient to
each step. demonstrate to stakeholders.
• Because only a part has been
worked on it’s easier to go back
(iteratively) and make changes
based on feedback.

A brief introduction into computer science 15


11/22/2021

Traditional Waterfall Vs. Agile Development

• Traditional approaches work • Agile programming works


well for extremely large well for smaller (although
projects that require a high still large) projects where
degree of reliability. having a shorter
development time is crucial.

Design Patterns
• A design pattern: a way of creating software that has been
shown to be been sound under a number of different contexts.
• Design patterns are a way of documenting successful past
approaches
– Top down design: although not one of the formally recognized designed
patterns it shares some similarities to those approaches.

James Tam

A brief introduction into computer science 16


11/22/2021

Software Engineering: Higher-Level Courses


• Software Engineering 301 Analysis and Design of Large-Scale
Software I (required for all CPSC majors)
• Software Engineering 401 Analysis and Design of Large-Scale
Software II
• Software Engineering 403 Software Development in Teams and
Organizations
• Software Engineering 437 Software Testing
• Software Engineering 471 Software Requirements Engineering
• Software Engineering 511 Software Process and Project
Management
• Software Engineering 513 Web-Based Systems
• Software Engineering 515 Agile Software Engineering

James Tam

Software Engineering: Higher-Level Courses (2)


• Software Engineering 521 Software Reliability and Software
Quality
• Software Engineering 523 Formal Methods
• Software Engineering 533 Software Performance Evaluation
• Software Engineering 541 Fundamentals of Software Evolution
and Reuse

James Tam

A brief introduction into computer science 17


11/22/2021

Computer Security
• It can involve the creation of malicious software (‘malware’)

Cheap Buy more!


Viagra! Pay less!

Become
rich
overnight!

Spam generators • Purpose: learn about how


malicious software is created
and distributed.
• Goal: develop countermeasures
to protect computer systems
Colourbox

Virus software

Colourbox For more information:


Spyware http://icis.cpsc.ucalgary.ca/ James Tam

Some Approaches To Computer Security


• As just demonstrated, understanding ‘how things work’ is one
key component to designing more secure systems.
– e.g., Creating viruses and other malware in order to create better
defenses against them.
• But also the ‘human’ factor must be considered: some security
experts think that many security breaches are due to user
actions not technical flaws (social engineering)
– Sometimes the “weakest line of defense” is not the technology but the
person.

James Tam

A brief introduction into computer science 18


11/22/2021

Which Is/Are Fake? Which Is/Are Real?

James Tam

Cryptography
• As may have already been described earlier in the semester
(depends on the particular assignments), cryptography can
play an important role in security.
– Transmitting and storing sensitive information.
– Cryptography involves the development of new and better approaches
for encoding sensitive data to make unauthorized access harder.

James Tam

A brief introduction into computer science 19


11/22/2021

Computer Security: Higher-Level Courses


• CPSC 329: Explorations in information security and privacy
• CPSC 418: Introduction to Cryptography
• CPSC 525: Principles of computer security
• CPSC 527: Computer viruses and malware
• CPSC 528: Spam and spyware
• CPSC 530: Information theoretic security

James Tam

Games Development
• The University of Calgary was the first Canadian university to
offer this area of study.

<< Warning!!! >>


Blatant
advertisement
<< Warning!!! >>

“Scarface: The World is Yours“ © Radical Entertainment


For more information: http://www.cpsc.ucalgary.ca/undergrad/courses_progression/concentration?conc=game

A brief introduction into computer science 20


11/22/2021

Areas Covered So Far: How (If At All) Does Games


Programming Apply
• Human-Computer Interaction
• Computer Graphics
• Artificial Intelligence
• Computer Vision
• Software Engineering
• Computer Security

James Tam

Computer Games: Higher-Level Courses


• CPSC 585: Games programming
– Actual ‘industry practices’ are taught and applied during the semester
• Sound routines, graphics and more
– (Lectures have been taught by actual game developers)

James Tam

A brief introduction into computer science 21


11/22/2021

After This Section You Should Know


• What are some areas of Computer Science
• What does each area entail
• Some of the sub-areas, techniques employed or issues
associated with each area of computer science

James Tam

Copyright Notification
• “Unless otherwise indicated, all images in this presentation
are used with permission from Microsoft.”

slide 44 James Tam

A brief introduction into computer science 22


11/22/2021

Sound And Other Special Effects


• Unless otherwise indicated they were produced and edited by
James Tam :$

James Tam

A brief introduction into computer science 23

You might also like