0% found this document useful (0 votes)
3 views

CSIS201 Computer Science II

The Computer Science II course (CSIS 201) is a preparatory course offered in the Spring Semester of the first academic year, focusing on enhancing programming skills using Java. It covers key concepts such as object-oriented programming, exception handling, and graphical user interfaces, with the aim of enabling students to solve real-world problems through programming. The course includes lectures, tutorials, labs, and a practical project, with assessments based on exams, quizzes, and project work.

Uploaded by

medo.ahmed3676
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

CSIS201 Computer Science II

The Computer Science II course (CSIS 201) is a preparatory course offered in the Spring Semester of the first academic year, focusing on enhancing programming skills using Java. It covers key concepts such as object-oriented programming, exception handling, and graphical user interfaces, with the aim of enabling students to solve real-world problems through programming. The course includes lectures, tutorials, labs, and a practical project, with assessments based on exams, quizzes, and project work.

Uploaded by

medo.ahmed3676
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Computer Science II

A-Basic Information

Semester number Second

Semester type Spring Semester

Study year First Year

Course code CSIS 201

Academic year 2019/2020

Program name Computer Science

Department offering the Faculty of Informatics and Computer Science


course

Specialization Fundamental

Type of course Preparatory

Number of sessions/ week 1 Lecture, 1 Bi-Weekly Lecture, 1 Tutorial, 1 Lab

Weekly contact hours 2-4 hrs/ week Lecture, 2hrs/week Tutorial , 2hrs/week Lab

Student workload 180

Credit points (ECTS) 6

B- Professional Information
Aims
Computer Science Semester course specs 201

This course aims at building and enhancing the student’s programming basics through multiple
topics covered and taught in Java. Overall, the focus is to empower the student’s capability of
solving problems and doing so efficiently. This is accomplished by teaching the student different
Java primitives and programming techniques that enable them to provide a useful and
functioning Java Program. Students are also taught about the concepts of object-oriented
programming (OOP). The basic concepts covered are summarized as the four features of OOP
along with exception handling and graphical user interfaces.

By the end of the course, students should be able to create fully functional classes as well as
model and resolve real world problems through computerized applications with interfaces.
Moreover, their ability to communicate their technical needs and requirements to programmers
surmounts. Furthermore, their critical thinking and ability to decompose problems is sharpened.

Intended Learning Outcomes

2 | Page
Computer Science Semester course specs 201

By the end of the course the student will have gained the following skills:

a. Knowledge & Understanding

a1. Debug and understand the different types of programming errors.

a2. Differentiate between the different data types in Java and their appropriate
usage

accordingly.

a3. Implement a Java program that behaves differently under different conditions
using the

appropriate decision primitive.

a4. Implement an iterative Java program to perform repetitive functions using the
appropriate

iteration primitive.

a5. Implement a Java method that performs a specific function.

a6. Implement recursive Java methods.

a7. Create classes and objects, as well as augment functions to the classes.

a8. Create arrays (one-dimensional, two-dimensional and arrays of objects), and


manipulate

them.

a9. Discuss the concept of inheritance (Object Oriented Programming paradigm


[OOP]).

a10. Discuss the concept of abstraction (Object Oriented Programming paradigm).

a11. Discuss the difference between abstract classes and interfaces.

a12. Discuss the concept of encapsulation (Object Oriented Programming


paradigm).

a13. Discuss the concept of polymorphism (Object Oriented Programming


paradigm).

a14. Discuss the difference between overloading and overriding of methods.

2 | Page
Computer Science Semester course specs 201

a15. Discuss the concept of exception creation and handling (Checked / Unchecked

exceptions).

a16. Discuss the difference between checked and unchecked exceptions.

a17. Discuss the concept of creating a basic graphical user interface.

b. Professional & Practical skills

b1. Apply the explained techniques on easy, moderate and challenging tasks.

b2. Select the appropriate technique for programming based on a given problem.

b3. Break down and decompose big problems into smaller tasks that can easily be
described.

b4. Combine techniques and develop a program of inter-connected entities


performing.

different functionalities.

b5. Evaluate the developed programs to ensure full functionality efficiently.

b6. Solve inheritance exercises using java code.

b7. Solve abstraction exercises using java code.

b8. Solve encapsulation exercises using java code.

b9. Solve polymorphism exercises using java code.

b10. Solve exception handling exercises using java code

b11. Develop an application following a test driven development approach.

b12. Build simple applications using Model View Control design paradigm.

b13. Debug the code using the appropriate tools.

b14. Refactor and re-use existing code.

b15. Apply appropriate packaging techniques for a java project.

b16. Ability to construct a small -scale java project and maintain it.

2 | Page
Computer Science Semester course specs 201

c. Intellectual skills

c1. Solve problems efficiently.

c2. Pinpoint the different scenarios of a problem and handle them accordingly.

c3. Analyze real world problems and model them conceptually using the OOP
acquired knowledge.

c4. Decompose real world problems in to smaller solvable tasks.

c5. Convert the OOP conceptual models to running code.

c6. Test and identify bugs in the created code.

c7. Solve the identified bugs using better trouble shooting skills.

d. General and transferable skills

d1. Think out-of-the-box and find alternative solutions to solve real world
problems/tasks.

d2. Gain problem-solving skills that can be applied on real world problems/tasks.

d3. Increase decision-making skills and analyze the consequences of decisions.

d4. Demonstrate critical thinking, problem- solving and decision- making abilities.

d5. Use proper terms relevant to Java Programming.

d6. Search for solutions to questions alone online (self-learning).

d7. Formulate questions clearly.

d8. Re-use and tailor code from different resources.

d9. Have punctual attitude regarding deadlines submissions and regulations.

2 | Page
Computer Science Semester course specs 201

d10. Explore the design of user-friendly graphical user interfaces.

No. of Teaching Hours

Week Topic Lecture Tutorial Lab

1 Introduction 2
1 Data Types and Sequential Algorithms 2 2 2
2 Decision Primitives 2
2 Iteration Primitives 2 2 2
3 Methods 2 2 2
4 Recursion 2
4 Classes and Objects I,II 2 2 2
5 Arrays I,II 2 2 2
6 No Lectures
8 Revision
9 Midterm Exam
10 OOP (1): Inheritance 2 2 2
11 OOP (2): Encapsulation 2
11 OOP (3): Polymorphism 2 2 2
12 OOP (4): Abstraction 2 2 2
13 Exception Handling 2 2 2
14 Graphical User Interface (1) 2
14 Graphical User Interface (2) 2 2 2
15 No Lectures
16 Revision
17 Final Exam

Learning and Teaching Methods

2 | Page
Computer Science Semester course specs 201

1. The theoretical concepts in the course are discussed in the lectures. Students are taught 1 lecture / week
and 1 extra lecture every 2 weeks.

2. Students have 1 tutorial per week.

3. The practical outcomes are tackled through 1 practical project:

● Lab sessions: The lab sessions introduce simple exercises on the taught theoretical concepts.
Students are taught 1 lab/week. The 20 minutes of the lab are used to discuss the required tasks and
review the concept. Next, the TAs solve with the students part of the exercise. Afterwards, the
students are asked to solve the rest on their own under the supervision of the TA. The lab sessions
are coherent and form 1 practical project. The theme can change every year. However, it must
cover the theoretical concepts covered in the lectures.

● Practical project: This graded project is in the form of a card or a board game to apply the advanced
techniques and explore the interactions of the OOP paradigm. The project is divided into
milestones. Each milestone is covered through a requirements manual. Some requirements are
defined rigidly to enable the testing and some are left as a design problem for the students.

Facilities required for teaching & learning

1. Lecture hall equipped with microphone, computer, beamer and white board.

2. Labs equipped with computers. The computers should have a JAVA IDE and JDK installed.

3. Online submission system.

4. Semi-automated cheating detection system.

Assessment

2 | Page
Computer Science Semester course specs 201

Final Exam: 40%

Midterm Exam: 25%

Quizzes: 25%

Project: 10%

References

Essential textbook

1. Computing Concepts with Java 2 Essentials, 3rd edition

Cay Horstmann and Janice Pratt Van Cleave

ISBN: 047124371X

2. Java How to Program, 8th edition

Paul Deitel and Harvey Deitel

ISBN-10: 0-13-136483-9

Recommended textbook

1. Java 2, the Complete Reference

Herbert Schildt

ISBN: 0-07-222420-7

Relevant web sites

2 | Page
Computer Science Semester course specs 201

● http://cs.nyu.edu/~yap/classes/visual/03s/lect/l7/

● http://met.guc.edu.eg/OldOnlineTutorials/gui.aspx

C- Administrative Information
Course Coordinator Contact Information

Course Coordinator: Prof. Dr. Slim Abdennadher

E-mail : [email protected]

Telephone:

Extension:

2 | Page

You might also like