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

CSE141 Introduction to Programming

Syllabus

Fall’21
CSE141: Introduction to Programming Syllabus (Fall’21)

1 Logistics

Course: CSE141– Introduction to Programming


Credit hours: 3+1
Instructor: Dr. Imran Rauf
Email: irauf@iba.edu.pk
Phone: 0347-8084851
Office: Room 206, Tabba Academic Block (North Wing), IBA Main Campus
Class schedule(theory): Mon & Wed 8:30-9:45am (all sections)
Class schedule(lab): Mon 10:00am-12:45pm (Section 5571)
Tue 1:00pm-3:45pm (Section 5575)
Wed 1:00pm-3:45pm (Section 5573)
Thu 1:00pm-3:45pm (Section 5577)
Class venue: JS Auditorium (theory)
CFL-1 (labs)
IBA City Campus
Office hours: Monday to Thursday (or by appointment)
2:00pm–4:00pm (my office or online)

2 Course Objectives

This course serves as an introduction to computational problem solving using a modern programming
language. The main objective is to provide students with understanding of programming essentials, including
algorithms, data types, elementary control structures, functions, and recursion used within the framework
of structural and modular programming paradigms. The students will learn to apply an integrated program
development tool to design, implement, test, debug, and document programs. This course prepares students
for the more advanced programming courses such as CSE142 (Object Oriented Programming Techniques)
and CSE247 (Data Structures).

3 Intended Learning Outcomes

On completion of the course the student should have the following learning outcomes defined in terms of
knowledge and skills:

• Knowledge
The student

– knows the principles of algorithmic thinking and programming


– understands how computer programming may be used to solve problems

• Skills
The student is able to

– construct small programs, using the programming languages covered, that include the use of
arrays, functions and procedures, parameter passing with call by value and call by reference,
custom data types, and refrences
– use modular and functional decomposition to break problems down functionally, and implement
these structures in code as functions and procedures
– make use of available program libraries

Page 2 of 6
CSE141: Introduction to Programming Syllabus (Fall’21)

– express functionality in terms of abstract data type or application programming interface


– use text-based tools of program development, including an editor, command-line tools, and a
version control system

4 References

The main text for the course is:

• Introduction to Programming in Java: An Interdisciplinary Approach by Robert Sedgewick and Kevin


Wayne, Addison-Wesley, 2nd Edition, 2017.

The main text has accompanied booksite containing summary of topics, exercises, slides, and other useful
resources. It can be reached at the following link: https://introcs.cs.princeton.edu/java/home/
You may consult the following text if you need more examples.

• Introduction to Java Programming and Data Structures by Y. Daniel Liang, 11th Edition, Pearson,
2017.

5 Grading Scheme

A custom/relative grading scale will be used based on overall performance of the class and difficulty-level of
the class assesments as judged by the instructor. Following grading scheme will be used.

Tentative Grading Scheme


Homework 25%
Quizzes 15%
Lab exam 10%
Hourly exams 50%

6 Assessment Instruments

We have several assessment instruments designed for this course namely, homework, quizzes, and hourly
exams. All of these tools are important for learning the concepts we discuss in the class. The ‘personal
struggle’ you engage in with these homework problems, quizzes, and hourly exams will allow you to develop
the skills necessary for success as a computer scientist. As a student in this class it is expected that you
will always spend some time thinking about the problems/questions (on homework and project) on your
own before asking for hints, looking up solutions etc. Do not go in search of solutions online; learning the
material happens when you are working on problems rather than looking up complete solutions.
You are welcome to collaborate on homework, provided that (1) you write up your solutions individually,
and (2) you clearly cite the names of all collaborators and sources. Failure to do so will result in zero
credit. An additional key requirement is that you should be able to explain what you submit. Inability to
do so will result again in zero credit.
We will have three hourly exams in this course. These exams will be conducted in-person and on-campus.

Page 3 of 6
CSE141: Introduction to Programming Syllabus (Fall’21)

7 Late Work and Makeup Policy

No late solutions will be accepted and no make-up for exams or any of the quizzes will be given. If you have
a valid medical excuse (for any of the quizzes, homework, midterm exam, viva etc.), the percentage of your
grade corresponding to the missed work will be shifted to the next exam. Valid excuses require supporting
documentation from a doctor (standard IBA policy will prevail in all cases of conflicts).

8 Attendance Policy

IBA attendance policy applies.

9 Academic Integrity

Each student in this course is expected to abide by the IBA Code of Conduct. Scholastic dishonesty shall
be considered a serious violation of these rules and regulations and is subject to strict disciplinary action as
prescribed by IBA regulations and policies. Scholastic dishonesty includes, but is not limited to, cheating
on exams, plagiarism on assignments, and collusion.

• PLAGIARISM: Plagiarism is the act of taking the work created by another person or entity and
presenting it as ones own for the purpose of personal gain or of obtaining academic credit. Plagiarism
includes the submission of or incorporation of the work of others without acknowledging its provenance
or giving due credit according to established academic practices. This includes the submission of
material that has been appropriated, bought, received as a gift, downloaded, or obtained by any
other means. Students must not, unless they have been granted permission from all faculty members
concerned, submit the same assignment or project for academic credit for different courses.

• CHEATING: The term cheating shall refer to the use of or obtaining of unauthorized information
in order to obtain personal benefit or academic credit.

• COLLUSION: Collusion is the act of providing unauthorized assistance to one or more person or
of not taking the appropriate precautions against doing so. Any student violating academic integrity
a second time in this course will receive a failing grade for the course, and additional disciplinary
sanctions may be administered.

10 Topics to be covered

We will cover following topics:

• Introduction to programming in Java: Elementary data types, control flow, conditionals, loops, and
arrays.

• Input and output at console, files, as sounds, and as on-screen drawings.

• Static methods, libraries, modules.

• Recursion.

• User-defined datatypes.

• Creating datatypes.

Page 4 of 6
CSE141: Introduction to Programming Syllabus (Fall’21)

• Exception handling.

• File I/O.

11 Weekly Schedule (tentative)

Topic(s) Notes
Week 1: 23/8 – 27/8 Introduction
Java as first programming language
Printing “Hello World”
Terminal, IDE, Input from command-line
Declaration & Assignment statements
String data type
Week 2: 30/8 – 3/9 Built-in Data Types Homework 1 out
Integer data type: int, long, short
Floating-point numbers: double, float
boolean data type, Comparison operators
Type conversion
Week 3: 6/9 – 10/9 Conditionals and Loops Homework 1 due
if, while, and for statements Homework 2 out
Example: Newton-Raphson method
Nested if-else-if conditions
Week 4: 13/9 – 17/9 Nested loops Homework 2 due
Examples: Gambler’s Ruin, Factoring integers
do-while loop, break and continue statements
Week 5: 20/9 – 24/9 Arrays Hourly Exam-1
Example: Deck of cards Homework 3 out
Examples: Shuffle an array, Coupon collector
Week 6: 27/9 – 1/10 2D Arrays Homework 3 due
Example: Selection sort Homework 4 out
Example: Self-avoiding random walks
Week 7: 4/10 – 8/10 Input / Output Homework 4 due
Standard input/output streams Homework 5 out
StdIn, StdOut, StdDraw libraries from stdlib.jar
Examples: Function-plots, Fractals, Animations
Week 8: 11/10 – 15/10 Functions / Static Methods Homework 5 due
Arguments, Return values
Pass by value/reference
Example: Audio data, StdAudio library
Java class as library, Modular programming

Page 5 of 6
CSE141: Introduction to Programming Syllabus (Fall’21)

Topic(s) Notes
Week 9: 18/10 – 22/10 Recursion Hourly Exam-2
Base case, Reduction step Homework 6 out
Example: Tower of Hanoi
Week 10: 25/10 – 29/10 Abstract Data Types (ADTs) Homework 6 due
Creating objects, new operator, Object reference Homework 7 out
Object methods, the dot operator
Example: String ADT
Week 11: 1/11 – 5/11 Using ADTs Homework 7 due
Example: Color, Picture Homework 8 out
Week 12: 8/11 – 12/11 Creating ADTs Homework 8 due
Examples: Charge, Turtle, Complex ADTs Homework 9 out
Week 13: 15/11 – 19/11 File I/O Homework 9 due
Scanner and PrintWriter for File I/O Homework 10 out
Week 14: 22/11 – 26/11 Exception Handling Homework 10 due
Week 15: 29/11 – 3/12 Resizeable Arrays
ArrayList
Week 16: 6/12 – 10/12 Symbol Tables Hourly Exam-3
HashMap

12 FAQs

• Q. What type of question will be asked in exam or quiz?


A. See previous exams / quizzes on LMS.

• Q. Would you do relative grading?


A. A custom grading scale will be used based on my assesment of exam difficulty level and overall
class performance.

• Q. I have missed the quiz because of xyz reason.


A. Best n − 1 quizzes would be considered in the final grade.

• Q. Syllabus for hourlies / lab exams?


A. Everything discussed in class / practice problems / homeworks.

Page 6 of 6

You might also like