[go: up one dir, main page]

0% found this document useful (0 votes)
70 views4 pages

Python Project 1 2022 2023

The document describes a Python project to write a script that suggests course schedules for computer engineering students. The script will parse a study plan, elective courses, course offerings, and completed courses to generate schedules that meet prerequisites and student preferences over multiple semesters until graduation. It will output suggested course schedules and identify passed courses in green and scheduled courses in red. The student can provide preferences for credits per semester and free days. The script will ask if the user wants to save or continue generating schedules.

Uploaded by

Abdalrhman juber
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views4 pages

Python Project 1 2022 2023

The document describes a Python project to write a script that suggests course schedules for computer engineering students. The script will parse a study plan, elective courses, course offerings, and completed courses to generate schedules that meet prerequisites and student preferences over multiple semesters until graduation. It will output suggested course schedules and identify passed courses in green and scheduled courses in red. The student can provide preferences for credits per semester and free days. The script will ask if the user wants to save or continue generating schedules.

Uploaded by

Abdalrhman juber
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Birzeit University

Department of Electrical & Computer Engineering


First Semester, 2022/2023
ENCS3130 Linux Laboratory
Python Project – MyAdvisor

In this project, you are required to write a python script that suggests course schedules for university students.
In this project, we will focus on computer engineering students. The script will parse the study plan and list of
elective courses to determine which courses computer engineering students must pass in order to graduate.
The script will also parse the available courses from the course browser for the first, second, and summer
semesters. The script will then parse the courses that the student has already passed from their student
records. Based on this information, the script will suggest a course schedule for the student to follow until
graduation. The student can specify preferences such as the maximum number of credits he or she wants to
register for during the first, second, and summer semesters. The student can also choose the number of free
days per week for each semester.

Inputs
1. Study Plan: A text file that contains the courses in the study plan of the Computer Engineering
Program. The format of the text file will be as shown in figure 1. The study plan of the computer
engineering program is in a file called “CEStudyPlan.txt”.

Figure 1: CE Study Plan. Y4: fourth level, UE: University Elective


ENCS53xx: any elective course that starts with ENCS53

2. Elective and Concentration Courses: A text file that includes all elective courses for the CE program.
The format of the text file will be as in figure 2. The list of Elective and Concentration Courses for the
computer engineering program is in a file called “Electives.txt”.
Figure 2: Elective Courses. The group number is the concentration group.
Group = 0 is for electives that do not belong to concentration

3. Course Browser: A Jason file with all the courses offered in a specific semester. The courses offered
during the first semester are in a file called “CourseBrowser_1.json”. The courses offered during the
second semester are in a file called “CourseBrowser_2.json”. The courses offered during the summer
semester are in a file called “CourseBrowser_3.json”. Assume the same course schedule for each
semester will be offered over the years. The format of each of these Jason files will be as follows:
a. The key for every section in the course browser will include the course code, type (Lecture or
Lab), and section number. For example, the key “COMP111-Lecture-5” is for the course
“COMP111” of type “Lecture” and section 5.

Figure 3: Sample courses in the Jason file

b. Notice that some courses such as COMP122 have a Lecture and Lab with the same course code.

Figure 4: Sample courses in the Jason file

c. The values for every key in the Jason file represent the instructor’s name and course schedule.
d. Notice that some courses such as ENCS5300 do not have a schedule.

Figure 5: Sample courses in the Jason file

4. Student Records: A text file that includes all courses taken by a student and the marks for every course.
Notice, that marks could be numeric of Pass/Fail. The format of the text file will be as in figure 6. The
student records file will not include any courses that do not have a mark such as withdrawal or
incomplete courses.

Figure 6: Sample student records

5. Maximum Number of Credits per Semester: Assume the maximum number of credits for the first and
second semesters is 18 hours. And the maximum number of courses for the summer semester is 9
hours.
Procedure:
1. Print on the screen the student Study Plan as shown below:

Figure 7: Print the Study Plan on screen

2. Ask the user to enter the name and location of the Student Records text file. If the file does not exist,
raise an error and ask the user to enter the name and location again. No need to verify the file content.
3. Print on the screen the student study plan but change the color of the passed courses to green as
shown below:

Figure 8: Print the Study Plan on the screen and identify the passed courses in green color

4. Ask the user to input any preferences. The preferences in this project are
a. The minimum number of free days per week for each semester (Friday and Sunday are holidays
and are not counted as free days. So one free day means the student wants to come to
university only in 4 days),
b. The maximum number of credits the student wants to register during the first, second, and
summer semesters.
5. Ask the user about the number of semesters that the script should do the schedule planning for.
6. Based on the input data (prerequisites, student studying plan, day and time of the courses offered) and
student preferences, the program should determine the suggested courses’ schedule for the requested
number of semesters or until graduation (if the number of semesters is more than the semesters
required to graduation).
a. The highest priority in selecting the courses must be based on the student's studying plan,
b. The next priority for selecting the courses is to fulfill in advance the requirements of courses in
the student studying plan,
c. The lowest priority is to achieve the preferences set by the student.
d. If the preferences cannot be achieved, the program should print a message and suggest a
course schedule that agrees with the student studying plan but not the preferences.
e. For every semester, the script should print on the screen
i. the course schedule
ii. the Study Plan such that all courses registered before the current semester are in green
color, and the courses scheduled in the current semester are in red color as below

Figure 9: Print the Study Plan on the screen and identify the passed courses in green
color, and registered courses in red

7. The script should ask the user whether to save these schedules to a text file or not.
a. If yes, the script should write them to a text file called “SuggestedCourses.txt”.
b. If not, the program should ask the user whether to exit or continue.
i. if continue, the script should return to step 2 in this procedure.
ii. if exist, the script should terminate.

Submission:
Please submit the following:
1. Python script program
2. Report: The report must include:
a. The code, idea, and a screenshot from each step n the procedure with its variations.
b. At least 2 test examples with different Student Records (different levels).

Notes:
● Write the code for the python script to satisfy the requirements described above and name the script
MyAdvisor.py
● Make sure your code is clean and well-indented; variables have meaningful names, etc.
● Make sure your script has enough comments inserted to add clarity.
● Work in groups of at most two students
● Deadline: Sunday, 12 February 2023 at 11:59 pm. Please submit your project (code + report) through
Ritaj as a reply to this message.
● This project is per group effort: instances of cheating will result in you failing the lab.

You might also like