This document provides an overview of a course on fundamentals of programming. It introduces the instructor, teaching assistant, and their contact details. It outlines the course credits, grade distribution, textbook, and reference book. It describes the course contents which will cover topics like introduction to programming, variables, operators, conditional statements, loops, functions, arrays, structures, pointers, and file I/O over 18 weeks. It discusses the course outcomes and expectations, attendance, assignment, quiz, and lab policies. Ground rules for student civility are also outlined.
DataMind interactive learning: Dublin R User Group: September 2013DataMind-slides
Presentation explaining the motivation for building DataMind.org and the technical tools that were used. We also looked at how you can create your own interactive R tutorials with the beta version. More info on http://www.DataMind.org
Keynote 1: Teaching and Learning Computational Thinking at ScaleCITE
Title: Teaching and Learning Computational Thinking at Scale
Speaker:
Prof. Ting-Chuen PONG, Professor, Computer Science & Engineering Department, The Hong Kong University of Science and Technology
Time:
09:45-10:45, 9 June 2018 (Saturday)
Venue:
Rayson Huang Theatre, The University of Hong Kong
Sub-theme:
Computational Thinking
Chair:
Prof. Nancy Law, Deputy Director, CITE, Faculty of Education, The University of Hong Kong
http://citers2018.cite.hku.hk/program-highlights/keynote-pong/
DataMind interactive learning: Dublin R User Group: September 2013DataMind-slides
Presentation explaining the motivation for building DataMind.org and the technical tools that were used. We also looked at how you can create your own interactive R tutorials with the beta version. More info on http://www.DataMind.org
Keynote 1: Teaching and Learning Computational Thinking at ScaleCITE
Title: Teaching and Learning Computational Thinking at Scale
Speaker:
Prof. Ting-Chuen PONG, Professor, Computer Science & Engineering Department, The Hong Kong University of Science and Technology
Time:
09:45-10:45, 9 June 2018 (Saturday)
Venue:
Rayson Huang Theatre, The University of Hong Kong
Sub-theme:
Computational Thinking
Chair:
Prof. Nancy Law, Deputy Director, CITE, Faculty of Education, The University of Hong Kong
http://citers2018.cite.hku.hk/program-highlights/keynote-pong/
Software development is not exactly the same as computer programming. When it comes to a career, development for productization introduces many more things than simply coding. It is important to learn how to accomplish tasks, sharpen skills, develop the career and enjoy it. And last but not the least, how to start?
CS Education for All. A new wave of opportunityPeter Donaldson
Computing education in Scotland has undergone big changes recently with improvements to the National Qualifications, interesting National Progress Awards and the revision of the Technologies Experiences and Outcomes and new benchmarks for 1st to 3rd year pupils. With increased understanding of how to teach CS effectively and an exciting and progressive curriculum there has never been a better time to consider becoming a Computing Teacher.
These slides explain the changes and bust some myths about teaching as a career and were used as part of a series of face to face workshops for final year Computing students in Universities around Scotland in 2017.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Software development is not exactly the same as computer programming. When it comes to a career, development for productization introduces many more things than simply coding. It is important to learn how to accomplish tasks, sharpen skills, develop the career and enjoy it. And last but not the least, how to start?
CS Education for All. A new wave of opportunityPeter Donaldson
Computing education in Scotland has undergone big changes recently with improvements to the National Qualifications, interesting National Progress Awards and the revision of the Technologies Experiences and Outcomes and new benchmarks for 1st to 3rd year pupils. With increased understanding of how to teach CS effectively and an exciting and progressive curriculum there has never been a better time to consider becoming a Computing Teacher.
These slides explain the changes and bust some myths about teaching as a career and were used as part of a series of face to face workshops for final year Computing students in Universities around Scotland in 2017.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
3. Introduction
Instructor: Qurrat-ul-ain Babar
Counseling/Consultation Hours
During office hours but it will be best if you take an appointment by
email first
Email: qurrat.ain@seecs.edu.pk
Office: 115, NIT Building
Contact No: 051 9085 4015
Teaching Assistant – Mr. Shahzeb Khan
Email: shazktk786@gmail.com
Contact No: 0300-5574001
4. Introduction
Brief Introduction of students
Name
Qualification
Day Scholar/ Hostelite
% in FSc/A-Levels
Your aim/aspiration in life
7. Course Description
An introduction to the development of programs using
C++.
Emphasis is given to the development of program
modules that can function independently.
Object-oriented design
The theory of data structures and programming
language design is continued.
8. What is this course about?
Problem solving
Designing solutions using flowcharts
Basic computer programming using C/C++
Logic building & algorithms
9. Text Book
Book
There are many books on C/C++
All of them teach almost the same thing
Book only teaches you the syntax.
You must know yourself how to use that syntax.
12. Course Contents
Week Topics
1 Introduction to Course, Introduction to Computer: System components,
networks and operating systems
Lab: Computer Hardware and Operating System
2 Introduction to Logic, Flow Charts, Pseudo Code, Introduction to Programming
Lab: Problem Solving using Flow Charts (Visual Logic), Testing the
Programming Environment and Basic Program
3 Programming Environment, Basic Programming, Statements, Expressions,
Comments
Lab: First Program, Basic statement, and Output Formats
4 First Program, Compilation, Variables, Types, Operators, Debugging
Lab: Variable processing, Arithmetic operations, Finding Errors
5 I/O, interactive programming
Lab: User Input based programming
6 OHT – I
13. Course Contents
Week Topics
7 Relational operators, logical operators, conditional statements
Lab: Conditional Constructs I
8 If-Else Statement, Switch-Break-Continue
Lab: Conditional Constructs II
9 Iterations, For loop, Do-While Loop, While Loop
Lab: Loops and Iterations
10 Functions, parameters to functions
Lab: Function Definition, Function Parameters and calls
11 More functions, Recursion
Lab: Function reuse and recursion
12 OHT – II
14. Course Contents
Week Topics
13 Arrays
Lab: Arrays and Operations on Arrays
14 Structures
Lab: Structure definition and usage
15 Pointers
Lab: Pointers, Variable Pointer
16 File I/O
Lab: File Handling and Information storage
17 Project demos, Revision
Lab: Project Demos
18 ESE
19 ESE
15. Course Outcomes
By the end of the course, you should be able to:
1. Comprehend the fundamental concepts of computer
systems.
2. Apply programming skills to implement computer-
based solutions of well specified problems.
3. Analyze where computer programs fit in the provision
of computer-based solutions to real world problems.
17. Attendance Policy
Will be marked at the beginning of the class (within first
10 mins)
75% required to take ESE
Any missed attendance is your own responsibility
No late attendance marking
18. Quiz Policy
5-6 quizzes in whole semester
Unannounced
No drop quiz
19. Assignment Policy
3 Assignments
No drop policy
No late/email submissions will be accepted
Zero tolerance for plagiarism/cheating
Discussing homework concepts is fine, but you must submit your
own work.
20. Lab Tasks Policy
Each student will submit their own work at the end of
each lab
No late/email submissions will be accepted
Zero tolerance for plagiarism/cheating
Discussing lab task is fine, but you must submit your own work.
Pop Lab Quiz – which can be unannounced, you should
expect a lab quiz after every 3/4 lab sessions.
21. Student Civility
In an effort to make this class enjoyable for everybody…
Please be on time to class!
Please do not talk to your friends and neighbors in class! It disturbs
everyone, and makes it hard to concentrate. If you have a question,
just ask me!
Please turn your cell-phones off! No usage of mobiles during class –
will have a penalty.
Interaction is the key
Please ask questions
If you don’t understand, ask
Let me know if I am going too slow/too fast
28. Hardware and Software
• Charles Babbage
Creator of the Analytical Engine - the first
general-purpose digital computer (1833)
• ENIAC - the Analytical Engine was not built
until 1945 (Harvard Mark I)
– World’s first programmable computer
– Could carryout any calculation
– CPU was 8 feet tall , 100 feet long and
weighed 30 tons
(courtesy of US Army Historic Computer
Images)
(courtesy : Wikipedia.org)
29. History of Computers
• Ada (1815-52)
Wrote a program for computing the
Bernoulli’s sequence on the Analytical
Engine - world’s 1st computer program
44. A Layered View of the Computer
Machine with all its hardware
System Software
Compilers, Interpreters, Preprocessors, etc.
Operating System, Device Drivers
Application Programs
Word-Processors, Spreadsheets,
Database Software, IDEs,
etc…
48. • C++ is one of the most popular languages
– C++ (originally C)
• C++ is portable (runs on Windows, Macintosh, Unix,
Mainframes …)
• C++ is widely used in industries
• C++ is not easy to learn
C
C++
We teach C++, Why?
49. • We will be using DevC++ 4.9.9.2
• Full-featured Integrated Development Environment
(IDE)
• Home task:
– Download and install DevC++ on your PCs from:
http://www.bloodshed.net/dev/devcpp.html
DevC++
51. • Programs are everywhere on the computer and
internet
Program
• Even operating systems are
programs
52. “a precise sequence of steps to solve a
particular problem”
Program
• Programs are run or executed (like OS runs on
Hardware like laptop or cell phone)
• Programs can also be run by other programs (like
when we play games in a web browser)
56. 2 ways to show details:
i) Pseudocode: describes logic and processing
flow in human-language statements
ii) Flow chart: graphically represents logic flow.
Most projects use both methods
Program design
58. Problem
A shepherd's son is helping his father build a pen for their
sheep. The pen will be 24m long and 20m wide, and have
fence posts 4m apart. How many fence post does he
need?
59. Problem
Mr. Qutb‐ud‐din is arranging a dinner party for his friends
in a large room. 22 people are invited. He has to borrow
square tables, that can seat 1 person on each side. He
wants to arrange tables in a rectangular shape so that
they look like 1 large table. What is the smallest number
of tables that he needs?
60. Problem Solving
Understand the Problem
Knowledge of the problem, its domain, & details
Devising the Plan
Thinking of possible solutions
Carrying out the Plan
Create retraceable steps
Looking Back
Compare solution to problem. Improve.
61. Fence Problem Solution
Understand
Rectangle
Length of sides 24x20m
Posts 4 meters apart
Number of posts?
Plan
Drawing a diagram may help
Start from corner posts perhaps
62. Fence Problem Solution
Solve
Draw rectangle
Show sides to scale
Place corner posts
Place posts 4 meters apart
Count posts
Look Back
Can you solve it in a better way?
63. Dinner Party Problem Solution
Understand
Squares tables, 1 person on each side
Form a large rectangle
22 people
Putting them together will reduce the number of people on each
square table
Plan
Drawing pictures of different arrangements may help
Few possibilities: 1 single row, 2 rows perhaps
64. Dinner Party Problem Solution
Carry out the Plan
Single row: 2 people at each, with 3 people at end tables
Double Row: 1 person at each, with 2 people at corner tables
65. Dinner Party Problem Solution
Looking Back
Single row configuration will be best, given the room is long
enough to hold it.
What if the number of people is increased to 38?
66. Another Problem
I say a number between 1 and 70.
If the number is less than 30, you say “Too Young”,
otherwise say “Too Old”.
67. What happened there?!
Understand
Too simple
Plan
Too simple
Carry out the Plan
Too simple
Looking Back
Why too simple?
68. Human Intelligence
A very general mental capability that, among other
things, involves the ability to reason, plan, solve
problems, think abstractly, comprehend complex ideas,
learn quickly and learn from experience.
Can you understand this definition?
Why were you able to find answer for 38 people in
dinner party?
70. New Problem
Take the problem “ I say a number between 1 and 70. If the
number is less than 30, you say “Too Young”, otherwise say “Too
Old”. ” and provide a solution so that a machine could do the same
what you did.
Understand, Plan, Solve, Look back.
71. Representing your solution
There are 2 ways to represent
Pseudo code
An English‐like representation of logical steps to solve a problem.
Flowchart
Pictorial representation of the same thing.
73. Corrected Pseudo Code
BEGIN
GET number
IF number greater or equals 1 AND number less or equals 70 THEN
IF number less than 30 THEN
Say “Too Young”
ELSE
Say “Too Old”
ENDIF
ELSE
Say Invalid Input
ENDIF
END
74. Pseudo Code
Pseudo Code can be generic or language specific
Works as a planning tool
Clarifies the algorithm flow of information
Makes it easier to generate language syntax
75. Flow Chart
Same as a pseudo code but graphical
Easier to read and understand
Specific symbols to represent different programming constructs
76. Flow Chart Symbols
Flow charts are used in many domain, hence have numerous
symbols
Some basic are:
80. • Write pseudo code and draw a flowchart that
will read the two sides of a rectangle (length
and width) and display its area on screen after
calculation. [Area formula: A = L x W ]