Computer Programming
and Applications
ENGG1111A
We are:
George Mitcheson [email protected] Office: HW504 Tel: 2859 7068 Consultation: Thurs 12:30–14:30 Li Changjian [email protected] Office: CB401 Tel: 6239 4395 Consultation: Fri 14:00 – 16:00 Find us at consultation times Ormake an
appointment
to see us at any other time Jolly Cheng [email protected] Office: CB319 Tel: 2857 8263 Consultation: Mon 12:30 – 14:30 Wang Xiaoke [email protected] Office: HW335A Tel: 2859 2713 Consultation: TBD mid-SeptWhat will you learn?
A computational way of thinking about problems and their solutions
How to formulate problems in such a way that computers can help you solve them
How to write programs in
C++ to provide those solutions
Computer Programming
When we write a program in a particular language, we say we are
coding
orwriting code
in that language.But coding is not the most important part of programming!
Before we write code we need to:
examine, analyse and understand the problem work out a solution in the form of an
algorithm
check that the solution works under a range of conditions Before we write code we need to:
examine, analyse and understand the problem work out a solution in the form of an
algorithm
check that the solution works under a range of conditions
Then we translate our solution into the programming language and write the code
"I hate programming!!"
If you ever start to hate programming, you are probably skipping all the
middle steps and trying to jump straight into writing code.
We hope you will enjoy the
process
of solving problems as well as reaching a final solutionWhy C++?
The course is not specifically about C++. If you master general programming concepts using C++, you can apply them in many other languages
C++ is a popular and powerful industrial-strength language. It is not a toy language.
Yes, it is easy to get into trouble in C++. You need to think clearly, but this will also help you become a good programmer!
A few of many many
applications written in C++ that you might know:
Photoshop Acrobat
Amazon.com Amadeus iPod UI
Google search engine Google Chrome
Microsoft Office
Microsoft Internet Explorer Microsoft Windows
(actually almost everything from Microsoft)
Firefox
Thunderbird
World of Warcraft ...
A few of many many
applications written in C++ that you might know:
Photoshop Acrobat
Amazon.com Amadeus iPod UI
Google search engine Google Chrome
Microsoft Office
Microsoft Internet Explorer Microsoft Windows
(actually almost everything from Microsoft)
Firefox
Thunderbird
World of Warcraft ...
Applications
We deliver our solution to end-users in the form of
application
software
– software that helps users achieve their goals
We deliver our solution to end-users in the form of
application
software
– software that helps users achieve their goals
There are many classes of
applications - as many as there are classes of problems
needing a solution
Financial applications E-commerce systems Electronic media apps Games
Enterprise applications Graphics applications
Learn how…
http://www.cs.hku.hk/programme/courses-offered.jspComputer Programming and Applications is your first step!
… and many more
Objectives. Skills you will gain
Ability to analyze simple problems and derive solutions, providing a logical flow of instructions.
Problem Solving
Ability to use and construct functions for structured computer programs.
Application development
Competence in the use of various data structures in program development.
Objectives. Skills you will gain
Ability to identify and correct different types of programming errors. Debugging
Competence in program testing. Testing
Lectures:
schedule may vary slightly depending on the pace of the classThursday, 10:30-12:20 LE4
Week Topic
1 Introduction and C++ Basics
2 Data types, Variables and Expressions 3 Flow of Control: Decision and Iteration 4 Functions
5 Public holiday
6 Arrays
Reading Week
7 Strings and File I/O
8 (Oct 30) Quiz and Introduction to Assignment 2 9 Complex Data Types and Intro to Classes 10 Pointers
11 Linked List and Dynamic arrays 12 Review and/or selected topics
We do not assume any previous programming experience.
Learning to program requires hands-on practice. We give you lots of practice in laboratory sessions.
Laboratory sessions run every Friday
except for the first week of
classes
. This week we will have class on Friday in CPD-LG.10After Week 1, our lab sessions are every Friday,12:30-1:20pm, in:
HW312 (62 students max) HW311 (39 students max) HW335 (36 students max)
Next week we will post a sign up page for you to select your laboratory
Laboratory location
The CS teaching laboratories HW312, HW311 and HW335 are all on the 3rd Floor of the Haking Wong Building.
You can also use the laboratories for your own work
You will need a CS computer account to access the CS lab facilities. Please get this before our first lab session as shown on the next slide:
Getting your CS account
Collect it online here:
https://intranet.cs.hku.hk/csintranet/newstudent.jsp
Retrieve your CS username and password using your HKU
Portal UID and PIN.
You must do this before the first laboratory session.
References
Reference text
Problem Solving with C++, Walter Savitch, Pearson, International Edition, 8/E
Problem Solving with C++, Walter Savitch, Pearson, 9/E
Useful online references:
C/C++ Reference: http://en.cppreference.com/w/
Assessment
Coursework
50%
3 Individual programming assignments. They are weighted as follows: Assignment 1: 10% (Released Sep. 15; Due Oct. 6)
Assignment 2: 15% (Released Oct. 24; Due Nov 14) Assignment 3: 15% (Released Nov. 14; Due Dec. 5)
Marking is automated. Our TAs prepare test cases and your programs are run on those cases. Your mark will be determined automatically based on the number of test cases passed.
If your program cannot be compiled or run, then you will not get any marks.
Please test your programs before submitting them!
1 Quiz worth10% on Oct 30
Penalties
Plagiarism
First Attempt: 0 marks for assignment
Second Attempt: disciplinary action at Dept. and/or HKU level
Don't copy!!
You may discuss the assignments with your classmates but youMUST write your own solutions.
You must not base your solutions on anyone else's program.We use plagiarism detection software to check for cases of copying.
Late assignment
Where to find information and help
Everything will be posted on the course Moodle page All important dates, etc. will be announced in the
News and Announcements Forum
You can post questions in the:
General Discussion Forum Relevant Assignment Forum
Guideline: when you post a question about course material give as much details as possible so we can understand your problem.
For Assignments, please don't post your solution!!
The Department discourages students from asking questions directly through email. Please post in a Forum.