EE1005 From Computational Thinking To Programming - OBTL

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Academic Year AY 2018-19 Semester 1

Course
Wesley Tan Chee Wah (Dr) and Teo Hang Tong Edwin (Assoc Prof)
Coordinator
Course Code EE1005
Course Title From Computational Thinking to Programming
Pre-requisites Nil
No of AUs 3
Contact Hours Online Video Lecture (23 hours); Tutorial cum laboratory (36 hours)
Proposal Date May 4, 2018

Course Aims
Computational thinking (CT) is a problem solving process with the aid of computer; i.e. translating a
problem into a solution in a manner that a computer can effectively solve. It includes a number of
characteristics, such as breaking a problem into small and repetitive ordered steps, logically ordering
and analyzing data and creating solutions that can be effectively implemented as algorithms running on
computer. As such, computational thinking is essential in problem solving across all disciplines, including
mathematics, science, engineering, business, finance and humanities.

The aim of this course is hence to take students with no prior experience of thinking in a computational
manner to a point where they can formulate and code computer programs to solve some basic
problems in engineering. This course not only aims to inculcate a Computational Thinking mindset, but
also teaches computer programming concepts so that you can build computer programs to further
practice and apply your computational thinking skills at the end of the course. This will lay foundation
for future programming tasks required of you, be it in building a web or mobile application, or even
customizing a microprocessor for monitoring and control purposes.

Intended Learning Outcomes (ILO)


Upon the successful completion of this course, you shall be able to:
1. Discuss the relationship among components in a computer system, namely hardware, operating
system and application software, and computing trends.
2. Explain the programming concepts taught in this course.
3. Write basic computer programs based on the programming language taught in the course.
4. Apply the concepts learnt on case studies/problem-based scenarios (i.e. translating Computation
Thinking to actual Computer Programs).

1
Course Contents
Video
Practice Class
Topics Lectures
(3-hr session)
(Hours)
Course Overview and Concepts of Computational Thinking
0 Solving complex problem using computer - enables the student to work 0.5
out exactly what to tell the computer to do.
-
Overview of Programming Languages
1 Graphic programming, high level programming languages (Python, C, 0.5
Java, R, Matlab)
Computers and Programming
IDE for C
2 Introduction to Computer hardware and software, programming, 2
(1 week)
algorithms and pseudocodes.
Overview of a Computer Program and Data Types
Practice on
A C-program will be dissected, and the various components, concepts Topic 3
3 4
and techniques will be introduced. The different data types that can be
(2 weeks)
used will be explored.
CT to Programming concept – Operations and Reusable Functions
Practice on
The different operators and the reusable standard library functions Topic 4
4 2
provided by the computing environment will be discussed. They can be
(1 week)
used for computations and calculations.
CT to Programming concept – Decision Making and Repetition
The following CT scenarios to be converted to programs will be
discussed: Practice on
5 a. If a condition is satisfied, execute Action A. Otherwise, execute 4 Topic 5
Action B (make use of Decision Making structure) (2 weeks)
b. As long as a condition is satisfied, repeat an Action (make use of
Repetition structure)
CT to Programming concept – Functions and Decomposition to
Smaller Modules Practice on
6 The creation of a customized function will be explored. This will allow a 5 Topic 6
large problem to be broken down to many smaller and reusable (3 weeks)
modules.
CT to Programming concept – Advanced Data Structures Practice on
7 Advanced data structures such as arrays and pointers will be taught. 4 Topic 7
These structures allow for efficient storage and retrieval of data. (3 weeks)
Computing Trends
8 0.5
Cloud, Edge and Fog computing, Quantum Computers
Social-Ethical Issues and Ramifications of Computing -
9 Fairness, Privacy, Sharing, Hacking, software Piracy, Data Protection, 0.5
Cyberbullying and trolling, Fake news, digital divides, IP/Copyright
Total Hours 23 36

2
Assessment (includes both continual and summative assessment)

Related
Course
Programme LO or Team/ Assessment
Component LO Weighting
Graduate Individual rubrics
Tested
Attributes
1. Class Participation 1,2,3,4 a, b, c, e, l 10% Individual
2. Practical Exercise
2,3,4 a, b, c, e, l 20% Individual
Assessment 1 and 2
3. Practical Test 1 and 2 2,3,4 a, b, c, e, l 40% Individual

4. Quiz 2,3,4 a, b, c, l 30% Individual

Total 100%

Formative feedback
You will be able to receive feedback through:

1. Tutorial questions and Laboratory exercises discussed in class, where you can find out how well
you are progressing each week.
2. The suggested solutions revealed for Practical Exercise Assessments and Practical Tests, where
you will find out your practical capability when you progress from one topic to another.
3. The suggested answers revealed for the Quiz, where you will find out your understanding of the
topics that you have learnt.

Learning and Teaching approach

Approach How does this approach support students in achieving the learning outcomes?
LECTURE (Online Topics will be delivered as a series of online video lectures, and you will also be
Video) provided with lecture notes for self-study to achieve all the learning outcomes.
In each Tutorial cum Laboratory lesson, you will first have a tutorial session so as
to understand the programming concepts taught in this course (thus achieving
LO2). Next, you will have a laboratory session, where you have a chance to write
TUTORIAL cum
basic computer programs based on the programming language taught in the
LABORATORY
course (thus achieving LO3). At the same time, you will learn more about the
computer system (thus achieving LO1) and applying concepts learnt to solve
specific problems (thus achieving LO4).

3
Reading and References
TEXTBOOKS
1. H. H. Cheng, C for Engineers and Scientists: An Interpretive Approach, McGraw-Hill, 2010 (ISBN-
10: 0073376051, ISBN-13: 978-0073376059)

REFERENCES
1. P. J. Deitel and H. M. Deitel, C: How to Program, 8th Edition, Prentice-Hall, 2016 (ISBN-10:
0133976890, ISBN-13: 9780133976892)
2. D. M. Etter, Engineering Problem Solving with C, 4th Edition, Prentice-Hall, 2013 (ISBN-10:
0273768204, ISBN-13: 9780273768203)
3. Dey, Pradip. and Ghosh, Manas., Computer Fundamentals and Programming in C, 2nd Edition,
Oxford University Press, 2013 (ISBN-10: 0198084560, ISBN-13: 9780198084563)

Course Policies and Student Responsibilities


General: You are expected to complete all online activities and take all scheduled assessments and tests
by due dates. Students are expected to take responsibility to follow up with course notes, assessments
and course related announcements. You are expected to participate in all tutorial discussions and
activities.

Continual assessments and laboratories: You are required to attend all continual assessments.

Absenteeism: Continual assessments make up a significant portion of your course grade. Absence from
continual assessments without officially approved leave will result in no marks and affect your overall
course grade.

Academic Integrity
Good academic work depends on honesty and ethical behavior. The quality of your work as a student
relies on adhering to the principles of academic integrity and to the NTU Honor Code, a set of values
shared by the whole university community. Truth, Trust and Justice are at the core of NTU’s shared
values.

As a student, it is important that you recognize your responsibilities in understanding and applying the
principles of academic integrity in all the work you do at NTU. Not knowing what is involved in
maintaining academic integrity does not excuse academic dishonesty. You need to actively equip
yourself with strategies to avoid all forms of academic dishonesty, including plagiarism, academic fraud,
collusion and cheating. If you are uncertain of the definitions of any of these terms, you should go to
the academic integrity website for more information. Consult your instructor(s) if you need any
clarification about the requirements of academic integrity in the course.

Course Instructors

Instructor Office Location Phone Email


Assoc. Prof. Teo Hang Tong Edwin S2-B2b-67 67906371 htteo@ntu.edu.sg
Dr. Wesley Tan Chee Wah S1-B1b-54 67906009 wesleytan@ntu.edu.sg

4
Planned Weekly Schedule

Week Topic Course LO Readings/ Activities


Computational Thinking Concepts,
1 Programming languages, Computers and 1,4 Watch Video Lecture (3 hours)
Programming
Overview of a Computer Program Watch Video Lecture (2 hours)
Tutorial 1
2 2,3,4
Familiarization with IDE for C
(Lab 1)
Fundamental Data Types Watch Video Lecture (2 hours)
3 2,3,4
Tutorial / Lab 2
Operators for Programming / Standard Watch Video Lecture (2 hours)
4 2,3,4
Library Functions Tutorial / Lab 3
Decision Making Structures Watch Video Lecture (2 hours)
5 2,3,4
Tutorial / Lab 4
Repetition Structures Watch Video Lecture (2 hours)
6 2,3,4
Tutorial / Lab 5
Customized Functions Watch Video Lecture (1 hour)
7 2,3,4
Tutorial / Lab 6
Watch Video Lecture (2 hours)
8 Function concept – Scope and Lifetime 2,3,4
Tutorial / Lab 7
Watch Video Lecture (2 hours)
9 Modular Programming 2,3,4
Tutorial / Lab 8
Watch Video Lecture (2 hours)
10 Pointers 2,3,4
Tutorial / Lab 9
Watch Video Lecture (2 hours)
11 Arrays 2,3,4
Tutorial / Lab 10
Computing trends and Ethical Watch Video Lecture (1 hour)
12 1
considerations Tutorial / Lab 11 Part 1
13 - - Tutorial / Lab 11 Part 2

You might also like