|
Course Description
Problem-solving and design using an object-oriented programming language. Introduces a variety of problem-solving techniques, algorithms, and data structures in object-oriented programming.
Students should be able to:
- Analyze and explain the behavior of simple programs involving the following fundamental programming constructs: assignment, I/O (including file I/O), selection, iteration, functions, pointers
- Write a program that uses each of the following fundamental programming constructs: assignment, I/O (including file I/O), selection, iteration, functions, pointers Break a problem into logical pieces that can be solved (programmed) independently.
- Understand the fundamentals of OO
programming when applied to the web
static web site design
- Develop, and analyze, algorithms for solving simple problems.
- Use a suitable programming language, and development environment, to implement, test, and debug algorithms for solving simple problems.
- Write programs that use each of the following data structures (and describe how they are represented in memory): strings, arrays, structures, and STL class libraries including strings and vectors
- Explain the basics of the concept of recursion.
- Write, test, and debug simple recursive functions and procedures.
- Explain and apply object-oriented design and testing involving the following concepts: data abstraction, encapsulation, information hiding, sub-classing, inheritance, templates Use a development environment to design, code, test, and debug simple programs, including multi-file source projects, in an object-oriented programming language.
- Solve problems by creating and using sequential search, binary search, and quadratic sorting algorithms (selection, insertion)
- Determine the time complexity of simple algorithms.
- Students will also learn some problem-solving strategies
|
Major Topics Covered in Course
- Fundamental data storage and manipulation (types and variables, statements and expressions) 5 hours
- Functions 3 hours
- Classes (classes and objects, instance variables and instance methods, and encapsulation). 5 hours
- Flow of control (Boolean expressions, conditional statements, and loops). 10 hours
- Vectors 5 hours
- 2ndObject oriented Language (including compare and contrast), 2ndProgramming Environment, Arrays and Pointers, Functions 10 hours
- Inheritance (subclasses, dynamic binding, abstract classes, and interfaces). 5 hours
- Strings 3 hours
- Introduction to recursion. 3 hours
- Searching and sorting algorithms (linear and binary search, selection sort, insertion sort, and quick sort - introduced via recursive versions). 5 hours
- Algorithm analysis. 2 hours
- Problem Solving approaches (This section is dispersed appropriately throughout the semester to illustrate the above techniques.) 5 hours
- Software Engineering – design, testing, debugging (This section is dispersed appropriately throughout the semester to illustrate the above techniques.) 10 hours Exams 4 hours Final Exam -
|
LECTURER
Omar Aldawud (aldaoma@iit.edu)
Office: Rice Campus Room 230
Office Hours: Monday 5:15 - 6:15
Tuesday, Thursday 6:15 - 7:15 PM
IIT Academic Calendar
630 - 682- 6021,
Fax: 312.567.5067 CS Department
Mailbox: Rice Campus : Dr. Omar Aldawud CS201
Available by email
including weekends and evenings!!!!
TA
TBD
Shulan Liu: liushul@iit.edu
Office Hours: Monday and Wednesday: 11:30~1:30p.m. in S.B. lab
Sections
CS -201-071, 392
M 06:25-09:05PM
Rice Campus - Wheaton Room RI 148
LAB W 06:25-09:05PM Rice Campus - Wheaton SB 112E
|
LABORATORIES
The labs are designed to assist you in developing a more concrete understanding of the concepts introduced in lecture. They also serve as a springboard for the programming project that you create later in the semester. You are required to attend each lab session. Your work is graded during your scheduled lab session. See make-up lab policy. Illness and university business are excused absences; proper documentation must be provided.
The labs for this class are designed to give you practical experience with the material discussed in lecture. They are NOT intended to produce a high-pressure environment. You should have your weekly assignment available at the beginning of each lab (portable media/email). An additional weekly lab problem will be given during lab which may involve writing new code, modifying code from your assigned lab work, and/or answering "analysis type" questions about your assigned work. All lab problems must be completed in the allotted time.
PROGRAMMING PROJECT
You will be assigned a programming project where you solve a real world problem. The project will consist of a design phase and an implementation phase. No late projects will be accepted. Each student is responsible for deleting his/her project from lab computers and taking all safeguards to prevent copying of the final project. The instructor has the right to test (written or oral) any student on his/her final project. All projects found to be similar to another student’s project will be given a grade of zero.
GRADING
Approximate weights:
5% Weekly homework assignments graded during lab
15% Weekly lab problems
10% Programming project
5% Quiz #1
15% Quiz #2
20% Midterm Exam
25% Final Exam
2% Attendance
3% Lecture activities
Historically, semester letter grades have been assigned according to the following percentages.
A 90-100
B 80-89
C 70-79
D 60-69
E 0-59
ETHICS
Any indication of copying or cheating during quizzes/exams, on labs, or on the programming project will result in an immediate zero for the assignment for all parties involved and notification of the student's advisor/department and the Undergraduate Dean.
|
Sample Implementation
of the RSD and DSD templates:
Security Camera Store Then Click on
Security
Shop - RSD
Dedicated Server Hosting then click on
Web Hosting Project
|
|
|