1 Goals 1. To work with Unix directories and I-nodes. 2. To read and process directory entries and I-nodes. 3. To sort the data in a vector using a comparison function. 2 Instructions Write a C++ program to analyze the entries in a disk directory. You will run this program from a Unix command shell, using command-line arguments. Your main function should accept argc and argv from the command shell, and process them as follows: 2.1 Class Stats All Unix systems define struct stat, but the definitions are not all identical: field sizes change. Here is the definition on my machine. #include struct stat { /* when _DARWIN_FEATURE_64_BIT_INODE is NOT defined */ dev_t st_dev; /* device inode resides on */ ino_t st_ino; /* inode’s number */ mode_t st_mode; /* inode protection mode */ nlink_t st_nlink; /* number of hard links to the file */ uid_t st_uid; /* user-id of owner */ gid_t st_gid; /* group-id of owner */ dev_t st_rdev; /* device type, for special file inode */ struct timespec st_atimespec; /* time of last access */ struct timespec st_mtimespec; /* time of last data modification */ struct timespec st_ctimespec; /* time of last file status change */ off_t st_size; /* file size, in bytes */ quad_t st_blocks; /* blocks allocated for file */ u_long st_blksize;/* optimal file sys I/O ops blocksize */ u_long st_flags; /* user defined flags for file */ u_long st_gen; /* file generation number */ }; Define a wrapper class for Unix standard type struct stat. Create a class called Stats by deriving it from struct stat, by private derivation. (This closes off outside access to the underlying C struct.) (Yes, you can derive a class from a struct.) Within this class, define the following functions: • void print( ostream& out ) Send (using
1 Goals 1. To finish program 4 by including and processing long options. 2 Instructions Write a program to parse the command line for DiskSweeper. Due Sept. 22 (Friday). Add to your Params class. Members of the class should include: • A bool variable for the debug option and an int for the optional level number. • A bool variable for the verbose option. Define a controller class named Sweeper. Private data members of the Sweeper class should include: • A Params object. • Move the ofstream from the Params class to the Sweeper class. Public members of the Params class should include: • A constructor that accepts argc and argv from main. This constructor must pass argc and argv to the Params constructor using a ctor. The Params constructor will parse the command line and initialize the Params object. • A run() function: Call this from main after declaring the Sweeper object. For now, it should simply call Params::print() to display the params. More functionality will be added later. • Any other functions you need. You will be adding members to this class each week. In your main function: • Call banner() from tools.cpp. • Create a Sweeper object. • Call its run function. • Nothing else. 3 Using getopt_long() to Decode Command-line Arguments You still need nearly all of what you wrote for Program 4a. Here are the changes. For more guidance, refer to options2.c • The call has two more parameters: int = getopt_long( int argc, char* argv[], const char* opts, struct option longOpts[], int*); • You must pick up and process any additional options and arguments. • You need to define a long options table. Example: struct option longOpts[] = { { “verbose”, no_argument, NULL, ’b’ }, { “output”, required_argument, NULL, ’o’ }, { “recursive”, no_argument, NULL, ’R’ }, { “debug”, optional_argument, NULL, 0 }, { NULL, 0, NULL, 0 } }; • Add this statement to your switch to process long options (such as debug) that do not have corresponding short options. case 0: { // Convert code for long switch to full name. outputLong(longOpts[code].name, optarg); break; }; • After all switches have been processed, pick up and store the single required argument.
1 Goals 1. To develop a command language for DiskSweeper. 2. To use getopt() to process single-letter options. 3. To build the first phase of the DiskSweeper application. 4. To learn or review some parts of C++ that will be needed in this course. 2 The Project The Disk Sweeper application will search your hard disk for files that are copies of each other and report the full pathnames of all copies of the file. The command name will be sweep. The arguments will be: • -o filename (required): open and use the named file for output. • -v (optional): provide verbose debugging feedback. • -d (optional): delete all duplicates except the first. • A small integer (optional): a minimum file size to work on, in kilobytes. (That is, 5 represents 5K bytes.) • A pathname (a string, required): the directory at which to start sweeping. In stage 4b of this program, we will add some long switches. 3 Instructions Write a program to parse the command line for DiskSweeper. Due Sept. 22 (Friday). Define a class named Params. Members of the class should include: • An ofstream. • The pathname of the starting directory, a C-style string. • An integer: the minimum size file to process. The default should be 0 for this optional parameter. • A boolean variable for each switch. (All are optional, the defaults are all false.) • The Params constructor should have two parameters: argc and argv. Process the commandline arguments using getopt() (instructions follow) and initialize the data members to the settings that you find on the command line. Open the ofstream for output to the file named on the command line. • print( ): print all the members except the stream in a nice format to the open ofstream. In your main function, declare an instance of Params and pass argc and argv to its constructor. When construction is finished, call Params::print() to display the params. 4 Using getopt() to Decode Command-line Arguments The function getopt() automates and vastly simplifies the process of decoding a command line. The example shown here is NOT what you need for your project; it is provided only so that you can understand the syntax of the getopt() function. Syntax: int = getopt( int argc, char* argv[], const char* opts ); Usage: for (;;) { ch = getopt(argc, argv, “i:avRou”); if( ch == -1 ) break; switch( ch ){ . . . • argc and argv are the parameters received from the shell by your program. • opts is a string containing all the short switch options that your program supports: ”i:avRou” This string of letters means that the application will accept the switches i, a, v, R, o, u. A command line could give any combination of switches, in any order. • An option letter followed by a colon requires a parameter (usually a file name). In this example, the -i switch must be followed by the name of an input file. • An option letter followed by a double colon has an optional parameter (no example here). Processing the switches. Your program must use getopt() in a loop, as shown, to read and validate the switches that are present and store that information in Param’s variables. Print a usage comment after any error you discover. Getopt returns -1 when there are no more switches to process. Processing the required arguments. After returning from getopt(), set a local variable, required = optind. Optind is a global variable, so this should be done immediately. The number is the subscript of the first non-switch argument on the command line, and the first thing you must process after returning from getopt(). • Since there is only one required argument in DiskSweeper, required should be argc-1. If this is not true, print a usage error comment. • Set your path, equal to the required pathname. Finishing up. After processing the command-line arguments, print a report like the one shown below and end. Test all of the command-line options and capture the results from all tests in one file, using append mode. Here is some sample output: Command: sweep -v -o dupfiles.txt 10 ~/A_UNH/Teaching Verbose? Yes Delete? No Output file name: dupfiles.txt Size: 10 K or greater Directory: ~/A_UNH/Teaching
1 Goals 1. To learn about options supported by the gcc / g++ / clang / clang++ compilers. 2. To explore some useful compiler options. 2 The commands to use with the instructions below. 1a. cc –version badCode.c 1b. c++ –version badCode.cpp 2a. c++ -Wall -O3 -o badCode_O3 badCode.cpp 2b. c++ -w badCode.cpp (Inhibit all warning messages.) 3a. cc -Wall -O0 badCode.c (This is an upper case o followed by a zero.) 3b. c++ -Wall -O3 badCode.cpp (O1 and O2 also exist.) 4a. cc badCode.c 4b. c++ badCode.cpp 5a. cc -S -Wall -O0 -o badCode_O0.s badCode.c (Compile only, ) 5b. cc -S -Wall -O3 -o badCode_O3.s badCode.c ( stop before calling assembler.) 6a. cc -E -o badCode_cE badCode.c 6b. c++ -E -o badCode_cppE badCode.cpp 3 Instructions The programs. To do this assignment, you need a very short C program (badCode.c) and a comparable C++ program (badCode.cpp). Make a new folder called P3 and put copies of these two programs in it. Open a text file in this directory into which you can paste all sorts of answers. Please do not use Word! Word destroys this kind of text. 1. Execute commands 1a and 1b. Copy the output into the text file. What compilers are being used on your system? 2. Execute commands 2a and 2b. Describe the differences in the screen output. Which one would you rather see when you compile? 3. Execute commands 3a and 3b. Describe the difference between all warnings and no warnings. Correct all of the warnings you see. Call your corrected files goodCode.c and goodCode.cpp. Submit the code as part of your homework. 4. Execute command 4a. You know that these programs make warnings. Nonetheless, they also produce executable code. What is the name of the executable file? Execute it and paste the output into your text file. Now do the same for command 4b. 5. Execute commands 5a and 5b. The -S flag stops compilation after code generation and before assembly. Compare the two files produced with different levels of optimization. What was eliminated by optimizing? 6. Execute commands 6a and 6b. The -E flag stops compilation after preprocessing and before parsing begins. Describe what the preprocessor does. Comment on the difference between the results of preprocessing these small similar programs written in C and in C++. 4 Submission Instructions Remove all executable files from your directory, and remove the two little programs I sent you. Zip the rest and send it to me. This is due September 19.
This assignment asks for a series of screen shots. If possible, show only your terminal window in the shot. On a Mac, use the Applications/utilities/Grab. Turn in the screen shots listed below, numbered Ponds1, Ponds2, etc. • Mark Morton has set up a shared machine for us at UNH.w1mem.com. I set up an account for you on that machine. Your login name and your initial password have been emailed to you. • Open a shell on your own home computer. Make it as long as your screen allows and as wide as needed to show whole commands. • Use ssh to log into your account at UNH. Suppose your name was Janis Ponds; then your login command would be: ssh [email protected] If you don’t like this strange long login, I suggest you create a short alias for it. • Immediately change your password using the command passwd. You will be prompted to enter the old password and then a new one, twice. Choose one that is at least 8 chars long and contains a digit or special character. Take a screen shot showing the login and process of changing the password. • Your home directory has the wrong permissions. Right now, too many people can read it. Change the permissions on your home directory to shut everyone else out: chmod 700 ∼jponds • Use cd .. to move upward one level in the file directory. Then list the long form of the directory. (ls -l or ll) Take a screen shot showing showing the ll command and the permissions on your home directory. cd back to your home directory. • Open up the .txt file in an editor (use emacs or vi) and put your name on the first line. Store the changed file under the same name. • Use mv to change the name of that file to anything you like, with a .txt extension. • List the files in your home directory again. Display your modified file on the screen using cat. Take a screen shot showing the listing and the contents of the file. • Use more to list the contents of the file .bash_profile. Take a screenshot. Note the colon and dot on the end of the path name. This will be loaded every time you log in. It permits you to omit the ./ on the beginning of your commands. • Use less to list the contents of the file .bashrc. Take a screenshot. I have entered a few commands for you. One shows you the bash syntax for defining an alias. This will be loaded when you log in and every time you create a shell interactively. Add your personal aliases here. • On your home machine, use rsync to copy the two bash files from the remote machine to your home machine. Be sure your are in the home machine, home directory, then do: rsync [email protected]: /.bash_profile . rsync [email protected]: /.bashrc . Do an la on your home machine an take a screen shot showing the listing with the two new files.
1. To use a Unix system. If you are running a Windows system, you must install a Unix system (Fedora Linux) and desktop (KDE) on your machine. Mac users already have a version of Unix. Be sure the Developer Tools are installed. 2. To open a shell in a terminal window on your system. I use tcsh. You will probably use bash. 3. To learn the form of and parts of a command line. 4. To learn about what a shell does with a command line, including quotes and wild cards. 5. To compile and run a C or C++ program without using an IDE. (Use your IDE to write it.) 6. To use standard file output in either C or C++. (Don’t cut-and-paste or turn in screen shots). 2 The Program • Write a program to print out command line arguments. Your main function should accept arguments from the command shell, as follows: int main( int argc, char* argv[] ){} The array named argv contains the white-space delimited text fields from the command line, with patterns expanded and quotes “managed”; argc is the number of elements in this array, excluding the last array element, which contains NULL. aliceP1 -au w/java/ eliza.newhaven.edu:w/java/ aliceP1 -au w/java/ 4 argc argv eliza.newhaven.edu:w/java/ Command line: (Note: this is a null pointer.) • In your program, open an output stream in append mode, using “P1_” followed by your own last name as part of the file name. For this course, PLEASE do not put spaces into your file names. Example: “P1_Fischer.txt” In C: FILE* out = fopen( “P1_Jones.txt”, “a”) In C++: ofstream myOut( “P1_Jones.txt”, ios::out | ios::app) By using append mode, you will be able to store the results from all the runs in one file. • To begin, print a dashed line, as a divider. Then, starting with argv[0], list, the parts of the command, one per line, with a label for each. For argv[0], print “command”. If the arg starts with a “-”, print “switch”. Otherwise, print “argument”. The output for the command given above should look like this: ———————————– command P1 switch au argument w/java/ argument eliza.newhaven.edu:w/java/ • In C, use printf to print your results to the screen and ALSO use fprintf to write to your file. In C++, use P1_Jones.txt (Use your own name.) This will put a directory listing into your output so that I can grade your work. 4. Run your new command six times, using the tests below, but substituting the full name of your executable file for P1. (a) P1 (b) P1 -o myCommand myMain.c myClass.c (c) P1 w/java bash-3.2 ls -l (d) P1 -au –verbose w/java/ kira:w/java/ (e) P1 -i “CSCI 6657” *.html > mytemp.txt 3 (f) P1 *.bak *.log 5. When testing is finished, five of the tests will also be in P1_Jones.txt and one will be in mytemp.txt. Write some comments at the end of your source code file that explain what you see and what you do not see for tests (e) and (f). 6. Turn in your code (with your explanations) and the two output files. Due Wed, Sept. 2.
Part 1 For this part of the assignment, you will implement a radix sort procedure for sorting numbers between 0 (inclusive) and 1,000,000 (exclusive) (i.e. 6-digit numbers). Your procedure will use a modified version the counting sort implementation that you developed in tutorial #5 in order to sort by each digit (modified to sort by digit, of course). You may find the following code (which determines the value of an arbitrary digit) useful: function getDigit(num, digit) { working = num / 10digit-1; return workingmod 10; } Part 2 Write a greedy algorithm to solve the fractional knapsack problem, as described below: Given a number of items with weight and value, select a percentage (0.0-1.0) for each item(s) to include in your knapsack such that the weight capacity (W) of the knapsack is not exceeded, and the total value (V, the sum of the value of all included items) is maximal. One way that you could implement this problem is to pass 2 arrays into your procedure: 1) weights, where weights[i] is the weight of element i, and 2) values, where values[i] is the value of element i. Part 3 Write an implementation of Huffman coding, which is a greedy implementation of assigning prefix codes. This will require a program that does the following: 1. Read through a simple ASCII text file (passed as an argument), determining the frequency of each character in the file 2. Use these frequencies to calculate the optimal prefix codes for each character (Huffman) Print a complete table of prefix codes for the characters in the document (print only characters with frequencies > 0) 3. Normally, you would then encode each character using its prefix code However, actually implementing this requires some trick bit manipulation (which, for some languages, is difficult to do) Instead, calculate the length of the entire document before and after using the prefix codes 2 How to Submit Put your source code answers to parts 1-3 into a ZIP file, called Assignment3_FirstNameLastName_StudentNum.zip (please do not use RAR or other archival formats) and submit this file to Blackboard.
Part 1 For this part of the assignment, you will implement the heap data structure, and use it to implement a heap sort in Java, C, C++, Python (or another approved programming language). The heap data structure will need at a minimum the 5 operations discussed during the lectures, as shown below. You can rename these operations away from the naming conventions of the MIT textbook, as long as it is clear what each of them does. BUILD-MAX-HEAP: Takes an arbitrary array and builds it into a max heap MAX-HEAPIFY: Takes an almost-heap with one violation, and fixes the violation HEAP-MAXIMUM: Returns the largest element in the max heap HEAP-EXTRACT-MAX:Removes and returns the largest element in the max heap MAX-HEAP-INSERT: Inserts a new element into the heap, preserving the heap property In addition to these operations, you should also implement two display methods, for testing purposes. printAsArray: Prints the array representation (e.g. [16,14,10,8,7,3,9,1,4,2]) printAsTree: Prints the heap as a sideways tree, as shown below: 9 10 3 16 7 2 14 4 8 1 Hint: For printAsTree, you’ll find it easier to write the function recursively including a depth argument (which indicates how far to the right to indent the output). Recursion will be used to print the left and right subtrees (with a incremented depth). The implementation of hashsort() will be a function that takes an arbitrary array, and sorts it using a heap. Be sure to include testing code, where you create a heap from an arbitrary array, use buildheap, and then heapsort the array (printing the array before and after), as well as testing the other operations mentioned above. 2 Part 2 Read the first 20 or so slides of the document from Stanford NLP group on Minimum Edit Distance (MED): https://www.stanford.edu/class/cs124/lec/med.pdf Using this technique, implement this algorithm using Dynamic Programming in an approved programming language. Include some testing code to try it out on a few string pairs: spoof/stool podiatrist/pediatrician blaming/conning How to Submit Put your source code answers to part 1 and 2 into a ZIP file, called Assignment2_FirstNameLastName_StudentNum.zip (do not use RAR or other archival formats) and submit this file to Blackboard.
Part 1 Find upper bounds, O(n) notation, for the following recurrences. Use the Equation editor in MS Word in order to ensure that your answers are readable, except for recursion tree where I’d recommend you create an image like in the week 2 slides. Show your work. Be sure to solve at least one of the problems using each of recursion tree, substitution, and master method. a. T(n) = 2T(n/2) + n/log n b. T(n) = 7T(n/2) + n2 c. T(n) = T(n/2) + T(n/4) + T(n/8) + n d. T(n) = 2T(n/4) + √n Part 2 Rank the following functions by their order of growth. Be sure to put similar functions into the same category (f and g are in the same category iff f(n) = Θ(g(n))). The result should be a table. The first column should be the category (and will span multiple answers if there is more than one function in that category). The second column should be the function itself. You do not need to justify your answers for this question. Part 3 Using divide and conquer, create an algorithm to solve the problem that follows. You can use C, C++, Java, or Python to solve this problem (ask the instructor if you have another programming language in mind). Include the asymptotic upper bound for your algorithm in your response (including the cost of subdivision and combining the results). You have a long string containing many characters (such as this paragraph), and you want to search for a substring within this string. For example, one may want to search for “characters” or “want to” or “bstring wi” or “language”. All but the last example should be found. n2 3n2+7n+15 2log2 n log10 n n3-log n 4n n71+5n +17n 18n 2n 3 log2 n √n3 n! ¾n4 n3 2 Keep in mind that if you use divide and conquer to solve this problem there is one complication. The string to be found could be split between two of the sub-problems (assuming your algorithm divides the string into two smaller strings). You’ll need to handle that case as well. Note: This is a challenging problem. Just do your best, and partial marks will be given for using the correct divide and conquer strategy. Part 4 For this part of the assignment, you will implement the heap data structure, and use it to implement a heap sort in Java, C, C++, Python (or another approved programming language). The heap data structure will need at a minimum the 5 operations discussed during the lectures, as shown below. You can rename these operations away from the naming conventions of the textbook, as long as it is clear what each of them does. BUILD-MAX-HEAP: Takes an arbitrary array and builds it into a max heap MAX-HEAPIFY: Takes an almost-heap with one violation, and fixes the violation HEAP-MAXIMUM: Returns the largest element in the max heap HEAP-EXTRACT-MAX: Removes and returns the largest element in the max heap MAX-HEAP-INSERT: Inserts a new element into the heap, preserving the heap property In addition to these operations, you should also implement two display methods, for testing purposes. printAsArray: Prints the array representation (e.g. [16,14,10,8,7,3,9,1,4,2]) printAsTree: Prints the heap as a sideways tree, as shown below: 9 10 3 16 7 2 14 4 8 1 Hint: For printAsTree(), you’ll find it easier to write the function recursively including a depth argument (which indicates how far to the right to indent the output). Recursion will be used to print the left and right subtrees (with a incremented depth). The implementation of hashsort() will be a function that takes an arbitrary array, and sorts it using a heap. Be sure to include testing code, where you create a heap from an arbitrary array, use buildheap(), and then heapsort the array (printing the array before and after), as well as testing the other operations mentioned above. How to Submit Put your answers to part 1 and 2 (as well as the upper bound for part 3) into a Word or PDF file, called Assignment1.docx or Assignment1.pdf. Put your program for parts 3 and 4 into a file appropriately named (e.g. DivideAndConquer.java, divide_and_conquer.py and Heap.java, heap.py). Zip both of these files into a file named using the pattern Asmt1_FirstNameLastName_StudentNumber.zip (e.g. Asmt1_RandyFortier_100539147.zip), and submit this file to the Blackboard drop box for this assignment.
HATM3504:11 - RESORT FACILITIES MANAGTEMENT & MAINTENANCE WINTER 2025 ASSIGNMENT: MANAGEMENT REFLECTION LOG *Individual Assignment Value: 15% of final grade Due: Friday, March 28, 2025 Learning Goals & Outcomes: The ultimate objective and outcome is that students demonstrate understanding, critical thinking and analysis of course topics and can effectively relate them to current topics in the tourism and hospitality industry from a managerial / owner perspective. Instructions: • Choose 2 topics covered in the entire course that you feel will be most beneficial to you as a future manager/owner of a facility (hotel, resort, convention center, restaurant etc) • Provide an explanation of each topic relative to why you feel it will be most beneficial, how it relates to your career in the tourism/hospitality industry etc. • Find ONE current source of research from outside course materials/discussions that is no more than 24 months old that relates to each topic you reflect on and discuss how it ties in to your topic and how it will help you in the success of managing/owning/maintaining your facility. *IMPORTANT NOTE: This is not a summary of what you learned about the topic and not based on an entire chapter. For example: we cover a whole chapter on workload planning and staffing your facilities department but it covers numerous topics. One topic example from this chapter could be “considerations when cross-training” . Format & Submission Instructions: 1. Typed document using 12 pt. Times New Roman font 2. Double-spaced 3. Include a cover page with the following information: - Course title/ course number - Paper Title - Name and ID number - Date 4. Include a Bibliography with APA citations 5. Include your name and ID number on each page as a header or footer. 6. Include an overall introduction and conclusion *Each topic will likely end up being about 3 pages double spaced so your whole assignment will be about 6 pages not including your introduction/conclusion, cover page and bibliography. Submission: • Upload your assignment to the designated folder in Moodle no later than 10:00 AM on Friday, March 28, 2025. • Late assignments subject to penalty (see course syllabus) Turnitin.com: The text matching software Turnitin will be used to screen assignments in this course. This is being done to assist the instructor in determining the work’s originality and if all materials used are properly documented. If students consent to submit assignments through Turnitin via Moodle, they should know: • Files are housed on the Turnitin server based in California, and these files are subject to the USA PATRIOT Act, 2001. • If students have concerns about their privacy and/or security, they may opt out of submitting assignments through this software and choose another alternative with their instructor. Students who do not wish to submit assignments through this software should contact their instructor as soon as possible to discuss alternatives. Evaluation Criteria: CONTENT: 80% Relevant topics chosen Effective reflection Relevant outside source / connection to topic FORMAT: 20% Spelling/Grammar/Sentence Structure Followed format instructions Proper APA citations/bibliography format
CSc 335 Spring 2025 Final Project For the final project in this class, you must complete a large software project in a group of 3 or 4 people. Your project will be graded based on functionality, complexity, collaboration, design, and documentation. What follows in this document are the general expectations for the project based on those four categories. There are also documents provided for specific project ideas, but you do have the opportunity to come up with your own idea if you choose as long as you get it approved and it meets the general requirements. I. Functionality This means that you produce working software and evidence that it works as intended. This means that you have to not only submit code that compiles and runs but you have to submit evidence that it runs. This includes ● a suite of unit tests that run, pass, and provide at least 90% coverage for each class in the backend ● a fully functional project where fully functional depends on the expected functionality of your specific project ● evidence that the unit tests pass and that the project is fully functional – meaning you actually run the code and show all the functionality with complex enough test cases Note that providing evidence is required in addition to submitting the code. How you provide this evidence depends on how you choose to be graded, which will be discussed in a later section. II. Complexity There is no line number expectation because often shorter code is better than longer code, so I do not want you writing more code just for the sake of writing more code. Instead, here are some guidelines for gauging the complexity of your project. ● The complexity of the whole project should be about the same as the complexity of LA 1 + LA 2 + the required additional advanced feature that will be explained later. ● The backend code should involve multiple classes interacting with each other. ● The backend code should also utilize Java features and data structures. ● This gets into the design portion, but the backend code should show thoughtful design based on the things discussed in class. ● Each person in the group should put in approximately 40 hours on this project (over the course of the approximately 5 weeks you have to work on it). In addition to the basic requirements, you must include at least one more advanced feature. Although your backend code should mostly be your own code, you may use Generative AI to assist in implementing these more advanced features. (You are also allowed to use Generative AI to implement the user interface code, whether it is a text-based UI or a GUI). Here are some ideas for more advanced features, which will require some research on your end as well as a thoughtful approach to how it fits with your project. I strongly recommend that you decide on this before deciding fully on a project idea because not all of these fit with all the projects. ● a high-quality graphical user interface that correctly utilizes the OBSERVER design pattern – you can use either Swing or JavaFX for this ● concurrent programming with threads ● network programming – e.g. sending data over sockets ● advanced security features – this would have to go well beyond the simple salting and hashing that was required for LA 2 ● use of more advanced design patterns, such as COMPOSITE or DECORATOR (keep in mind that these are context-dependent, and should not be forced) ● metaprogramming Note: Some of these would likely require you to design a project that fits. If you are interested in one of these advanced features and need help coming up with a project, come see me. Make sure you include an explanation of whatever additional features you include in your video or grading session. III. Collaboration This is a group project, and you are required to work in groups of 3 or 4 people. The preference is for groups of 4. You are strongly encouraged to find your own group, and if you submit a group of 3, please note that you may get another member added. Here are the general expectations for encouraging and assessing collaboration: ● You must email [email protected] with your group members by the deadline listed below. (Note: only one email per group is required.) ● You must use Github to collaborate on your code, and we will check your repo and commit histories to make sure that all members have been contributing to the project the whole time. Procrastination is not acceptable for this project. You also need to make sure you’re using Github properly. ● You are expected to utilize some of the principles of Agile development, including using “sprints” to plan manageable tasks that can then be checked. ● You are expected to meet with your grader once in the third or fourth week for a 15-minute “standup” to discuss how the project is going. This can be in person or on Zoom, but every member of the group must participate. Your grader should contact you early in Week 2 to schedule that meeting. ● You will be asked to provide a rating for each of your team members at the end in order to let us know how the collaboration went. Specific guidelines for this are provided in a separate document, and it’s important to note that these ratings do affect your grade on the project. IV. Design This part is really important. Do not ignore this part! It’s not enough for you to just produce working code. You need to provide evidence that you have thought about the design (especially of the backend). Again, how you provide that evidence depends on how you choose to be graded, which will be discussed later, but you need to be able to explain and justify your design decisions. We will also be looking at your design and your source code, looking for issues in the design. Here are some guidelines for good design based on the course content: ● Clear separation of concerns between front and backend code ○ all UI functionality should be in the View ○ in other words, you should be using MVC in a correct and clear way ● Thoughtful use of data structures and Java library features ○ provide a valid justification for the data structures you use – e.g. if you choose to use ArrayLists for everything, you need to give a valid justification for that decision ○ you also need to show that you have looked at the options in Java and used what is available in a thoughtful way – e.g. if you’re writing your own sorting method for a collection, that isn’t a good sign when you can easily use the Comparator interface and Collections.sort method to do the same thing ● Correct and thoughtful use of composition, inheritance, and/or interfaces – Your backend code needs to have multiple classes that interact with each other, and you need to be able to explain the design of each class and the choices you made with respect to how they interact. ● Encapsulation – ○ Make sure you have well-encapsulated classes in the backend and can explain how they are well-encapsulated. ○ Avoid escaping references as much as you possibly can. If there are any in your code, make sure you can justify leaving them in. ● Avoidance of antipatterns – ○ We will look for obvious antipatterns in your code. ○ We also want to hear about your process for avoiding them. For example, if you chose to use an enum in order to avoid PRIMITIVE OBSESSION, be prepared to explain that. ● Use of design patterns – ○ These are context-specific, but you should use them when appropriate. ○ We will look for obvious places where you should have used a design pattern and didn’t. ○ We will also want to hear about your process for utilizing a design pattern, and we will look to see if you used it appropriately and correctly. ○ Note: Although MVC is sometimes called a design pattern, everyone should be doing this already, so don’t focus on that one in this part. ● Input validation – be able to explain how you do any appropriate input validation and justify the type of input validation you choose to use. ● Explain what any AI-generated code does. V. Documentation ● You need to provide at least one UML diagram showing the overall design of your backend code. This needs to include correct use of the connectors between classes. The UML diagram cannot be handwritten. The purpose of this diagram is to show the interaction of the classes in the backend, so you do not need to include every detail of every class in the diagram. ● Your code should be well-documented using helpful, explanatory comments. ● Provide a README document explaining the design of your code (See Part V for the expectations). We will use this in order to fill in gaps that may be missing in the main grading method as explained below. The README should also explain how to run your code. ● All AI-generated code must be documented, and you need to be prepared to explain what it does. GRADING. Here is the general breakdown for points for each category above. Functionality 40 points Complexity 25 points Collaboration 20 points Design 40 points Documentation 25 points Providing Evidence for Functionality and Explaining Design In addition to the items you need to submit, which are detailed below, you have two options for how to provide evidence for the functionality of your code and for explaining your design. Option 1 – Provide a video in .mp4 format that is no longer than 25 minutes. Note that this would be a major artifact we use to grade functionality and design, so it will need to be of good quality, well-organized, and very thorough. The graders will not go in and try to run your code themselves in order to fill in the gaps. All members of the group need to be involved. Option 2 – Make an appointment with your grader (no longer than 30 minutes) to show and explain your project. Particularly, you would need to run the code for them, showing them all the functionality and explaining the design. Make sure you prepare for this as the graders do not have time to spend longer than 30 minutes, so you need to plan and practice. All members of the group must be present and involved.
BENV0154 Sustainable Buildings Challenges: Whole Life Performance - COURSEWORK 1: DESIGN TASK - A: ASSESSMENT DETAILS Project Title: Whole Life Cycle Analysis: Design Principles of a Pavilion in Central London Weighting: 50% of your marks for this module Deliverables: a. group report, 3,000 words limits, no more than 10 A3 pages (marked) b. group presentation (unmarked) Deadline: March 27th, 11:00 am SECTION B: PROJECT INFORMATION Aims: The aims of this project are for students to: • develop an understanding of the fundamental principles of WLC analysis in the design process of buildings. • develop the ability to use modelling and simulations software (OneClickLCA, the UCL tool, Arup & AHMM’s PDA) as analytical tools for aiding the design of buildings. • develop critical thinking, the ability to analyse and prioritise conclusions into design, and coming up with a sensible, well-articulated design alternative. Project brief: What? In this group project you will be designing a small pavilion / café, trying to achieve the minimum Life Cycle Carbon Footprint (i.e., looking at both Embodied and Operational carbon emissions). Spaces/zones to be design are given in Table 1 (further spaces can be added if you wish). The main space in the cafe has distinct occupancy patterns and thermal comfort requirements due to the activities occupants that are involved in and the amount of time they spend in the space. You would need to consider these when simulating the energy consumption of your building. Table 1: Project zones /spaces table Zone Name Size (m2) Internal gains (kWh) Occupancy pattern Notes 1 Café sitting area 100 Please complete the missing parts. Please use referenced sources (e.g., CIBSE guides / NCM others). 2 Café serving area (counter) 20 3 Kitchen (cold / hot) 20 Where? The pavilion is design to be designed anywhere at the Regent’s Park, as indicated in Figure 1 Figure 1: Regent’s park Details: Groups should use the information in Table 1, for designing and modelling their pavilion. Fundamental environmental design strategies, which will be covered and taught in class, should be used in this project. The design of the pavilion should consider the Embodied Carbon (i.e., construction materials) and their impact on the Operational Performance (i.e., the energy consumption in the building). Weekly tutorials will be held (please see Moodle for exact location and timing) to guide you through this process. The weekly tutorials will be a mixture of: • Design reviews – a 30-45 minute meeting with a design tutor, where groups will get the chance to present their work and discuss their progress with their tutor. • Workshops – As computer based environmental simulation tools are increasingly playing a major role in aiding the design of buildings, for the purpose of evaluating their environmentalperformance, students will be learning and asked to use both OneClick LCA and tools for simple building energy modelling. These will be introduced during the tutorial sessions, as indicated below. The table below details the aim of each tutorial and provides further details on each week: 172/01/2025 Site Visit Activity + Data collection/site visit/impression 24/01/2025 Design tutorial 1: Environmental Site Analysis Design targets (operational, embodied, life cycle?) Inspirational images/precedents 31/01/2025 Design tutorial 2: Initial design Hand sketches, precendents 07/02/2025 Design tutorial 3: Hand calculated Embodied Carbon (Bath ICE) : Baseline Model 2 iterations 14/02/2025 Workshop A: One-click LCA Learning how to use OneClick LCA 28/02/2025 Design tutorial 4: Design review including Embodied Carbon Calculations (OneClickLCA) of further iterations 07/03/2025 Mid-Term presentation: Hand + OneClick calcs, baseline + new design Plus operational energy benchmarks 14/03/2025 Design Tutorial 5: Progress. Emphasise on operational energy consumption, operational carbon, and life cycle performance 21/03/2025 Design Tutorial 6: Progress. Emphasise on LCA nature: Balancing embodied and operational performance. 28/03/2025 Final presentations SECTION C: DELIVERABLES Report (marked): Each group will be asked to submit a detailed design report which will document their design process and the final design. This should include deliverables such as (but not limited to) the following: site analysis, design targets, documentation of internal gains and schedules, design strategies, modelling assumptions, simulation results & analysis, details about several design iterations, drawings (either hand drawings or computed ones) and anything else that the team thinks could describe their project and provide information of their project’s performance. The report will be made of: • Up to 10 pages of A3-sized paper • Up to 3,000 words Presentation (unmarked): At the end of the term, we will hold a ‘presentation day’, where students will be able to share their knowledge and present their work with colleagues, academic staff and invited guests from the industry. This is an opportunity for our students to share their learning and work with others and celebrate their achievements. Each group will be asked to prepare a 7 minute presentation, describing the main details of their design process and final design. This will be followed by around 10 - 15 minutes Q&A by our guests. Further details about the presentations day will be given towards the end of the term.
ELEC4310 Power System Analysis Assignment 2 Load Flow Analysis Submission due date: 4 pm Thursday 17th April 2025 P1 - Base Case Build and Study (35 Marks) Build a typical 13-bus power system (Figure 1) in PSS/E and save it as “P1.sav” and “P1.sld” . System components should be positioned in the manner shown in Figure 1. The 13-bus system has two voltage levels (66 and 138kV). Use two different colors for the bus and branches to differentiate. Some input data for this power system is provided in “Transmission Network Data” section. Based on the system you have built: 1) Use the provided Python script. “RetrieveYbus.py” to obtain Y-bus of the system and export it in a .CSV file (name it “YMatrix.csv”). Include the Y-bus matrix in your report. To know details about the functions in “RetrieveYbus.py”, read Python API document. 2) Use Full Newton-Raphson method to conduct power flow study. Show the voltages at all buses in PSSE and include a screenshot in your report. 3) Create a new Python script. “P1.py” that opens the file “P1.sav” you have built in PSSE, solves power flow by Newton-Raphson method and retrieve bus voltages on command window. Include screenshots of Python script. and command window output in your report. Note: It is required to implement the python script. in Python 2.7 (32 bit) P2 Compensation (35 Marks) 1) Identify the bus no. with lowest voltage in the base case. Conduct Q-V analysis on the identified bus. Take screenshot of Q-V curve and include it in your report. 2) Name one method to increase the voltage magnitude at the lowest voltage bus identified in P2(1) to 1.0 p.u. Verify this method and provide justification in your report. 3) Obtain a new Y-bus by modifying the provided “RetrieveYbus.py” and conduct Q-V analysis again. Compare with results of P2(1) and discuss briefly. 4) Add renewable generation (wind or photovoltaics) at the lowest voltage bus and save the new case and diagram file as “P2.sav” and “P2.sld” . You can do so by adding a load component in PSSE and setting negative MW and Mvar values to mimic renewable generators. Briefly discuss the impact of adding one of the following extra renewable generations, once at a time. a) A wind generator producing (30+2X) MW at power factor 0.9 lagging. b) A PV generation of (30+2X) MW at unity power factor. Model the PV as a distributed load. Note: “X” stands for the last digit of your 8-digit student number. If the last digit of your 8-digit student number is 0, then X is 10. P3 Contingency Analysis (30 Marks) An event that happens unplanned/unexpected is considered as a contingency. For example, the loss/failure of an electric asset or multiple assets (such as an outage of a transmission line or transformer). Such an event may cause detrimental consequences. Performing contingency analysis is therefore important to investigate potential outcomes of outage in existing power systems. Apply one of the following contingency scenarios at a time, to the base case system in P1, and conduct contingency analysis by: (a) describing whether the system operates normally under this specific contingency condition; (b) including excel bar graphs of system voltage profile at all buses (compared with base case voltage profile), followed with brief discussion. (1) Contingency scenario 1: Generator at bus 11 is out of service. (2) Contingency scenario 2: Transmission line between bus 3 and 4 is out of service. (3) Contingency scenario 3: All real power of loads throughout the system increases by 25% without any change in generations. Transmission Network Data System Base: 100 MVA, System frequency 50 Hz (a) Single Line Diagram of the System Figure 1. Single-line diagram of a 13-bus transmission system (b) Load Data (c) Generator Data (d) Transformer Data (e) Branch Data IMPORTANT SUBMISSION INFORMATION (a) All case (.sav) files, diagram (.sld) files, python (.py) scripts must be named appropriately. There should be one folder for each task. Compress all five folders in a single zip file, named ‘########_PSSE_files’, where ######## is your 8-digit student number. (b) Your PSS/E report must be submitted to Blackboard directly in PDF version. The report itself should not be included in the zip file. (c) Make sure you have answered all the questions. (d) This report should be no more than 12 pages (one sided only, Times New Roman font size 12, single line spacing with 2cm margin on all sides). Appendix does not count. You should place tables and graphs into the body of the report. All figures, tables and codes presented in the report are counted in the page limit. (e) Report must include concise summary of results for each section, along with comments and discussions. It could be as short as one sentence or long as a paragraph. (f) Place figures as close as possible to where you refer them to in the context.
Math 6B Worksheet 9 Winter 2025 Due Saturday, Mar 8, at 11:59pm. 1. Let f(x) = x 2 on [−1, 1] be given. (a) Find a formula for the Fourier series of this function. (b) Using the Fourier series you obtained in (a), show that 2. Show that the trigonometric identity could be interpreted as a Fourier series. Use this identity to obtain the Fourier series of cos4 x without finding the Fourier series coefficients directly. 3. Use the Fourier series of the function f(x) = |sin x| on [−π, π] to evaluate the following series 4. Show that the differentiation turns an odd function to an even function and an even function to an odd function. 5. Consider the Fourier series of the function f(x) = x on [0, l]. Assume the series could be integrated term by term (this has to be justified since the series is infinite). (a) What is the Fourier cosine series of ? What is the constant of integration, which is the first term in the series? (b) Let x = 0. Evaluate the series 6. Let f(x) be a periodic function with T = π. Let for all x. Find the coefficients an. 7. Show that by the change of variable we are able to derive the Fourier series on [−l, l] from the Fourier series on [−π, π]. 8. Use the trigonometric polynomial, obtained from Fourier series, with N = 1, 2, 3, 4, 5 to find the error estimate of the function f(x) = |x| on [−π, π]. 9. Conversion to Sturm-Liouville form. Consider Show that with we are able to convert the equation above to the Sturm-Liouville form.
Topics in Macroeconomic Theory (MGEC06) Winter 2025 Term Paper Total: 100 marks. The purpose of this assignment is to estimate the Phillips curve for the country of your choice and write a well-structured research report about the whole process of acquiring and refining your date, estimating, and interpreting the estimated coefficients based on the theoretical background of your models and empirical implications of the estimated equations for the country of your study. In order to find help for writing, referencing methods, avoiding plagiarism, please consult with following website: http://www.writing.utoronto.ca/advice/using-sources In order to help you, your article should include, among other things, following steps. Please note that your final paper must have an essay format (including references) with an internal coherence. The following steps are just to help you to organize your paper, and not to be treated like questions/answers mechanically. 1)- Choose a period time not shorter than 20 years and as recent as possible. For each year, find the following time series data for your country of choice (see the administrative part, below) from reputable sources (World Bank, UN, or local statistical agency of your country of choice): Inflation rate (the GDP deflator inflation rate is preferred), and real GDP, in terms of local currency (not the US dollar. Do not use the US$ in any way). A description of the used data sources should be included. Present the data in form. of tables and graphs that you think are informative for your audience. Mention the types and definitions ofthe data items and the assumptions that you may use to construct the needed data. You must put the tables and graphs in the appendix. (20 points) 2)- We follow the chapter 15 of the textbook to write down the Phillips Curve and adaptive expectations theory as follows: To estimate φ and natural level of output, , first we can use the Microsoft Excel linear regression tool to estimate A and B coefficients in an equation like this: Note: - You can use the Excel regression tools. To do this you need to select "Data" from the toolbar, then Data Analysis, then Regression. - If you do not see the Data Analysis after selecting Data, you need to install the free plugin Data Analysis ToolPak. Please google search for the instructions on how to install this plugin. - You can use any other statistical software that you are comfortable with, instead of Excel. - All estimated coefficients and statistics should be fully presented. The exact output of the any software that you use must be included in the appendix. (30 points) 3)- After estimating a and b in the previous part, using algebra, rearrange your estimated equation into the standard Phillips Curve like below to find φ and natural level of output, , for your country of choice. Discuss the size and sign of φ and natural level of output, that you found. Are they as you expected theoretically? Explain yes or no. Discuss the statistics of the model, like R2, t-statistics. (35 points) 4)- General organization, quality of presentation, creativity and elaboration of the paper and also proper referencing: (15 points) Administrative issues: - The project should be done by each student independently and alone. You should let me know following information by email (to [email protected]), by March 9: - Your name and student ID Number. - A list of six or seven countries from the next page list, in order of your preference. You will be informed what country you must work on. You cannot change your country, after the approval. You cannot start the project without the country approval. Please choose a wide range of countries from all continents from the list below. - The quality of analysis always matters more than quantity. But your assignment could be around 1000 words (around 4 pages), excluding the tables, graphs, and references. - You should report all your references. As you know plagiarism is a violation that is prosecuted based on the university rules. In suspicious cases, I may decide to check your assignments using Turnitin software. - The assignment must be uploaded to Quercus before March 23, at 9pm, sharp. The assignment must include the names and student ID Number on the cover page, otherwise your marks may not be recorded correctly. - You must start the project early to avoid the last-minute rush, or technical issues or sickness, … The deadline will not be extended. No excuse like network failure, system interruption, or sickness … is acceptable. If you miss this assessment, according to the outline, it cannot be substituted by anything else. - A 25% (of the assessment mark) per day will be applied to the late submissions. No submissions will be accepted four calendar days after the deadline. Any fraction of a day, even one minute, one hour or 10 hours is considered a whole day -The only acceptable submission format is ONE file in PDF format, with following name. Marks will be deducted if the rules are not followed. MGEC06_Country_lastname_Student#.pdf For example, for Nigeria: MGEC06 _Nigeria_Jones_123456789.pdf
Assessment 1: Analysis Purchasing ethical, fairtrade coffee – explain and analyse an “Empowered Activist’s’ purchase decisions Weighting: 25% Format: Written Assignment; Analysis Word limit: 1500 words (+/-10%) excluding the tables, reference list and appendices Due date: March 27, 2024, 11.00 p.m. NZST Submission: Stream assignment Drop-box Learning outcomes being assessed: L1: Explain how the principal theories of consumer behaviour can be applied to marketing. The Scenario What type of purchase decision consumers go through depends on a number of things, including the consumer’s characteristics, the type of product they want to buy and the purchase situation. For this assignment, you will: • explore and analyse how a specific consumer segment “The Empowered Activists” (Euromonitor, Eight Types of Shoppers) might go through • a first-time purchase, using an extensive decision making process and • a repeat purchase using a limited decision making process of an ethical, fairtrade (FT) coffee brand o Select one of the fairtrade coffee brands available in New Zealand as listed on the Fairtrade Website: https://fairtradeanz.org/get-involved/find-fairtrade/fairtrade-coffee-brands • provide your selected FT coffee brand with managerial recommendations for both purchase situations (first-time, extended and repeat, limited decision making) This assignment contains a number of tasks: 1.) Discuss different forms of customer segmentation and explore the characteristics of “Empowered Activists” in the context of purchasing ethical, fairtrade coffee. 2.) a. Discuss the theoretical foundations of extensive and limited decision making, including all stages from need-recognition to post-purchase behaviour (including ‘divestment’). b. Focusing on the characteristics of Empowered Activists as discussed in the report, explore a first-time purchase of your chosen ethical fairtrade coffee brand, using all stages ofthe extended decision making model. c. Focusing on the characteristics of Empowered Activists as discussed in the report, explore a repeat purchase of your chosen FT coffee brand, using the relevant stages in a limited decision making model (you need to discuss at least one heuristic at this stage). Please note the detail of discussion of the theory (2a) and exploration and application of the decision making processes (2b and 2c) need to match (the level of detail in the theoretical discussion should be reflected in the application and vice versa); sections 2b and 2c need to clearly relate to Empowered Activists as discussed in the Euromonitor report and to selected FT brand. 3.) Based on your critical application of the extended and the limited decision making of Empowered Activists, provide your chosen FT coffee brand with managerial recommendations how they could influence both decision making processes of Empowered Activists. To achieve these tasks: • You are expected to conduct some background research on the Euromonitor website https://www.euromonitor.com/article/types-of-shoppers-to-target about Different Types of Shoppers (look at the full report/the white paper) and explore your selected FT brand (products, their presentation on the website and instore). You are not to contact the company, or ask any questions when visiting a store. • You are expected to be familiar with the relevant consumer behaviour theory – as discussed in class. You need to support your discussion, arguments and findings using appropriate academic literature, including textbooks and journal articles. (also see ‘Referencing’ below). Please see the marking guide (document attached) for required sections and their weighting Use of Artificial Intelligence tools • You are required to upload the “Generative AI Use Statement” as a separate document For this assignment: AI planning is allowed. This means that you are allowed to use AI tools as outlined on Stream and below, but you are not required to use them. You may use artificial intelligence tools at the planning stage. You can use it to brainstorm, help generate ideas, or produce an outline. You must then demonstrate your ability to develop and refine those ideas, and independently produce the content of your assessment. That is, you can’t use artificial intelligence tools to write sentences or paragraphs for you. Whether you choose to use AI tools or not, you have to submit a ‘Generative AI Statement’ as provided on Stream. Presentation of work • Word or pdf format • Ensure you label your assignment file correctly, namely • LastNameStudentNumberAssignmentNumber.doc (or docx), e.g. Smith123456Ass1.doc • 12 point font and 1.5 spaced paragraphs. • Each page should be numbered in one continuous sequence in the top right-hand corner. Commence numbering from the page following the title page. • Use APA reference style and cite all published sources of information and ideas. Referencing You are expected to reference throughout the assignment – particularly in sections 1 and 2a (2b & 2c). You can use the same source, e.g. the textbook multiple times to support your discussion. When using references, please use APA (7th ed.) style. In this assignment you are expected to use at least five (5) relevant academic references (minimum). You are expected to use textbooks; relevant articles from academic journals or other types of academic sources such as academic books, textbooks, conference papers. • You will need to search for material via the library databases. Also, cite and reference any information found in newspapers, reports, websites and other sources. Online newspapers or magazines can provide useful statistics and product specific information.
QBUS6600 Project 1 Outline: UNICEF Australia – Predicting Response to Direct Mail Appeals Background UNICEF Australia is a dedicated children's charity committed to delivering lasting impact for every child. It works in over 190 countries and territories to save children’s lives, to defend their rights, and to help them fulfil their potential, from early childhood through adolescence. To strengthen its vital programs, UNICEF Australia is continuously improving its fundraising strategies through innovative campaigns, community engagement, and partnerships. By offering various fundraising initiatives—such as charity events and digital marketing campaigns—it enables individuals and organizations to contribute in meaningful ways. UNICEF Australia is leveraging the use of data analytics to enhance propensity modelling, particularly by exploring how external data sources can improve the predictive performance. This data-driven approach enables more targeted and timely engagement with the appropriate audience, ultimately enhancing supporter experience and optimising long-term support. The potential benefits include greater marketing efficiency, leading to a huge impact on resources and aid delivered to children in need. Problem Description Use the available data (see ‘Data Description’below) to build a propensity model for direct mail (DM) appeals. The objective is to develop a model for predicting the likelihood of individuals or organisations making a donation within the next three months in response to a direct mail appeal. You can frame this task as a classification problem, where the goal is to predict whether an individual/organisation will make an action within the next three months. The project presents a unique opportunity to apply your data analytics skills to a real-world business challenge and contribute to the ongoing success of UNICEF Australia. Your work will play a crucial role in helping UNICEF Australia improve audience selection of their direct mail appeals and make outreach more efficiently, making a positive impact on the lives of children globally. In this project, you should: • Conduct Exploratory Data Analysis (EDA) to identify the top features and attributes that are likely to predict the future donation behaviour. You should aim to find or reveal all relevant properties, characteristics, patterns, and statistics hidden in the datasets. • Develop a predictive model to forecast the likelihood of a donor making a donation over the next three months in response to a direct mail appeal. You can implement any statistical or machine learning approaches that you feel are appropriate. Ensure that you justify the selection of your model and interpret the model in terms of the key attributes for predicting the future donor behaviour. Use the F1-score to evaluate the performance of your final model. • Based on your analysis, outline a strategy to help UNICEF Australia improve audience selection of their direct mail appeals, increase the response rate, and improve fundraising efforts. You should recommend a strategy for the UNICEF Australia team to execute, to take advantage of the key insights that you have identified, and the models you have built and validated. The strategy could include any enhancements and/or other interventions or changes to direct marketing campaigns, backed by high-level cost estimates and fundraising avenues accompanied by assumptions and/or supporting data. Data Description UNICEF Australia has provided you with their CRM data in multiple CSV files, including the information on donation transactions, campaign details, and descriptive features of the donors, such as address postdoc, donation type, and other relevant attributes. You are required to utilize the existing CRM data and augment it with at least one third-party open- source data of your choice (e.g., Mosaic or ABS) to improve the accuracy of predictions. UNICEF Australia has made efforts to ensure the data is relatively clean, however, we encourage you to perform. checks and conduct the necessary data processing and feature engineering. You are also welcome to explore external datasets to enrich your analysis and feature engineering. Useful Tips Data Processing: Select and process the necessary CRM data files required for your analysis. Use match keys to merge relevant datasets. Train-Test Split: Implement a train-test split to validate your model's performance and prevent overfitting. Feature Engineering: Perform. feature engineering to enhance model performance. Creating and transforming features can uncover hidden patterns. Experiment with Models: Test various machine learning models to find the most suitable one. This experimentation is key to achieving high model performance.
ELEC9725 Satellite Navigation: Systems, Signals and Receivers Matlab Assignment No.2: Acquiring GPS Signals Objectives: To use some of the techniques learnt in class to acquire GPS signals in the midst of noise. The aim is to use data recorded by an RF front end, received from a GNSS signal simulator. Requirements: The assignment has some basic requirements that cover the fundamentals of acquisition. The extra, “bonus” requirements are not required in order to pass the assignment, but will result in higher marks being awarded. A satellite signal is supplied and is downloadable from {KeaIF_Dataset1.bin} In this data file, there are several satellite signals buried in the noise in a ~1000ms set of data. Satellite 19 has the lowest Doppler, and should be able to be acquired without a Doppler search. The supplied Matlab file {ReadIFData.m} can be used to read the data from that file. It has embedded the key signal parameters: intermediate frequency and sampling frequency. Minimum requirements: • Run the Matlab file and explain the three figures produced • Write your own Matlab routine to generate each of the 32 GPS satellite 1023-chip codes. This can either be as [0, 1] (for checking) or [-1, +1] signals but obviously [-1, +1] is required for the next sections. • Create a sampled version of these signals at the required sampling frequency, assuming that the codes are clocked at 1.023Mchip/s. • Write a routine to use either time-domain or frequency-domain acquisition. Remember the signal will still be hidden in the noise until it is passed through a narrowband filter. • Find satellite 19, and identify what its delay is. Bonus requirements: • Use the type of acquisition not used above (time or frequency) and repeat the task. • Find as many satellites as you can Figure 1 How sign and magnitude bits are assigned The program must be written up in a technical report. A typical report will be about 10 pages long. Assessment: Program: 50% of total mark. Clearly a fully operational program will attract more marks. Also well commented code will be rewarded. Report: 50% of total mark. Guidelines for report writing and a report marking scheme are on the course website. Of the final assessment of the course, this assignment is worth 20%. The approximate minimum investment of student time should be 6-10 hours (depending on level of mastery of MATLAB and GNSS study materials). Penalties for late submission are described in the course outline. Penalties for plagiarism will be severe. In other words, submissions with substantially similar reports or programs will be marked at a much lower level than they would otherwise. Submission: The submission is to be submitted via Moodle using the submission box under week 8 by 1700 Friday 11th April (week 8), and must be structured as follows: 1. The complete submission should include: (a) the report (in Word DOC format), (b) the Matlab m-file source code. 2. They should be compressed into one zip file (YourFullName_StudentNo_V#.zip) and be attached to the email, where V# is the version number of Matlab used. The Matlab version should also be specified in the report. 3. The subject of the email submission should be "Assignment No 1 YourFullName_StudentNo_V#", where V# is the version number of Matlab used. 4. There should be no text in the body of the email. If there is the need to explain the submission and it is not appropriate to be included in the report, put it in a file "Notes.txt" and add it to the zipped file. 5. By organising the submissions in this way, the assessment will be made solely based on the submitted zip file.