Course Syllabus¶
This is the official syllabus and course outline for Physics 111.
Warning
Please note that this syllabus is currently under active development, there may be typos or missing sections; treat this as a draft until the course starts!
PHYS 111 (3) Introductory Physics for the Physical Sciences I¶
The UBCO calendar description of this course is:
Introduction to mechanics primarily for students majoring in the physical sciences (e.g. physics, chemistry, mathematics, computer science, geology, physical geography) or engineering. Particle kinematics and dynamics, work and energy, momentum, gravitation, rigid body motion, fluid statics and dynamics with applications to the physical sciences. Credit will be granted for only one of PHYS 111 and PHYS 112. Students with Physics 12 may apply for a tutorial exemption. [3-3-1]
Prerequisite: One of MATH 12, PREC 12, MATH 125, MATH 126 and PHYS 11. Physics 12 is strongly recommended.
Corequisite: MATH 100.
Is this syllabus a contract?¶
Rather than interpreting this syllabus as a legal document that serves as a contract between the instructor and the students, I prefer to view the syllabus as a living document. Dr. John Warmer describes this best in his article, “A syllabus is not a contract”:
… this syllabus is not a contract, it is a living document which reflects the experiences, emotions, philosophies, and goals I bring to a particular course.
and also:
A syllabus as a plan is a lot like an itinerary before a trip. There’s some definite highlights we need to hit, but if something that seems cool and worth doing crops up unexpectedly, we need to seize that opportunity in the moment. If something really bad happens (the equivalent of a norovirus breakout on a cruise ship) we may need to abandon something previously scheduled entirely.
Interestingly, it is worth noting that a recent review of legal precedents suggests that syllabi are not considered contracts by the courts [1].
Having an adaptive and responsive syllabus is important to me as an instructor because it allows me to be more flexible with what/how/when you learn, and respond to your feedback in a meaningful way. I invite you to be co-contributors to this syllabus, and use the tools provided to add your own annotations, questions, and suggestions on making this syllabus work for you.
Important
Please note that I have your best interests in mind, and it is highly unlikely that I will ever change a syllabus in a way that negatively affects the class, or even individual students. If you believe a syllabus change is affecting you negatively, please do not hesitate to reach out to me, or submit your feedback anonymously here.
Changes to the syllabus since the start of Term¶
Any major changes to the syllabus (this page) will be documented here as well as the date the change was made.
Change Date |
Summary |
Rationale |
|---|---|---|
TBD |
TBD |
TBD |
About this course¶
Name |
Description |
|---|---|
Course |
Physics 111 |
Term |
2020/21 Winter Term 1 |
Pre-requisites |
One of MATH 12, PREC 12, MATH 125, MATH 126 and PHYS 11. (Physics 12 is strongly recommended.) |
Co-requisites |
Math 100 |
Costs |
Total $XX |
Lectures |
Online Thursdays at 14:00 |
Tutorial |
You must register for a tutorial section. |
Laboratory |
You must register for a laboratory section. |
URL |
https://this.site |
Instructor |
Firas Moosvi |
Office |
|
A message from your instructor¶
Closer to the start of the term, I will update the video below with an actual message to the students :-). Until then, enjoy being Rick-Rolled.
Why should I take this course?¶
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut blandit faucibus fermentum. Fusce porttitor congue dolor, eget efficitur neque ultricies at. Nulla suscipit convallis elit, eu consequat felis. Quisque et malesuada justo, dapibus commodo enim. Sed malesuada turpis sed nibh dictum, a interdum dui tincidunt. Duis consequat magna non tortor dictum facilisis. In hac habitasse platea dictumst. Phasellus eu eros libero. Phasellus rhoncus eros vel metus porttitor porta. In et tellus finibus, mollis nisi sed, auctor est. Sed placerat ex at ligula eleifend, ac dapibus neque euismod. Suspendisse malesuada pretium dui, ac lacinia mi pellentesque eu. Sed volutpat enim sed feugiat malesuada.
Tip
Number one reason thing to take away from this is…
Contact the Teaching Team¶
Team Member |
Pronounce as |
Contact |
Office Hour |
|---|---|---|---|
Dr. Firas Moosvi (he/his/him); Instructor |
Fur-az Moose-vee |
TBD |
TBD |
(TA) |
TBD |
TBD |
|
(TA) |
TBD |
TBD |
|
(TA) |
TBD |
TBD |
How will I be evaluated in this course?¶
The grading scheme for this course is here:
Item |
Weight |
Due date(s) |
|---|---|---|
Learning Logs |
10% (10 x 1%) |
TBD |
Homework Assignments |
20% (10 x 2%) |
TBD |
Labs |
20% (8 x 2.5%) |
TBD |
Tests (& Bonus Tests) |
30% (5 x 6%) |
TBD |
Final Exam |
20% |
TBD |
There will be 5 tests in this course in an (approximately) bi-weekly schedule. For each of the tests, there will be a bonus test exactly one week later and the better score of the Test-Bonus Test pair will be taken.
Attention
All deadlines in this course have an automatic 48 hour grace period after the due dates listed above. Any submissions submitted past the grace period will not be graded.
Are there other requirements I need to know about to pass the course?¶
Yes. To pass this course, you must do all of the following:
Achieve a minimum of 50% on the labs (10.0 / 20) with no more than 3 missed labs
Achieve a minimum of 50% on the tests and final exam (25.0 / 50)
Achieve a minimum of 50% on the whole course grade (50.0 / 100)
Course Learning Outcomes (AKA what will I learn in this course?)¶
Pellentesque pellentesque ut arcu vel sagittis.
Sed faucibus at ipsum pharetra euismod.
Interdum et malesuada fames ac ante ipsum primis in faucibus.
Vivamus pharetra pretium dui, nec semper enim vehicula nec.
Quisque vel odio dui. Aenean ullamcorper arcu sit amet gravida dapibus.
Tip
The full course schedule is available here: Course Schedule
What do I need to purchase for this course?¶
The following are required items for this course, and their costs (in $CAD) are:
Textbook ($XX)
Access to online homework system ($XX)
Lab Manual ($0)
Being very conscious of the high tuition and technology costs, I have made efforts to minimize the additional cost of taking this course. Below is a justification of each required item and why I think you need it to succeed in this course.
Warning
Do not procrastinate buying access to the online homework system! You will need it right away.
Textbook¶
The required textbook for this course is:
Physics for Scientists and Engineers, 4e by Randall D. Knight
and it is required because you need a reference text for this course, as well as practice problems, and a homework system. The Mastering Physics homework system comes bundled with this textbook.
You may purchase either Volume 1 only or the full text. The cost for a new physical textbook is $—. It is also possible to get a digital textbook for $—. Volume 1 contains all of the material required for PHYS 111 and will be lighter and more portable. If you purchase the full text, it will include Volume 2 which will (tentatively) be used in the second part of Introductory Physics for the Physical Sciences (PHYS 121) in term 2.
Online homework system¶
The required online homework system for this course is:
Mastering Physics
and it is required because it is a companion product to our textbook. There is considerable research (here and here) that suggests distributed practice is more helpful for long term retention and overall learning. Furthermore with online Mastering Physics interface, your textbook, homework assignments, and tests are all on Mastering Physics. Mastering Physics also has some integrated study modules that can help you test yourself and take more effective notes.
Lab Manual¶
The required lab manual for this course is:
Available on Canvas, free of charge
In the past, this lab manual had to be purchased from the UBC Bookstore. This year, because the labs are all online, a digital version of the lab manual is available to you on Canvas free of charge.
How will this course be taught ?¶
This course will be a Flipped Classroom; this is a technique pioneered largely by Dr. Eric Mazur and extended by others. Briefly, it requires students to watch videos and engage with the assigned reading prior to the classroom meeting (knowledge transfer). During the class meeting, the instructor guides students through clicker questions, worksheet problems, and other activities to help the students make sense of the material (sense-making). See Fig. 1 for a mental model of how learning works [2].
What does this mean in practical terms?¶
Fig. 2 shows a handy table to help guide you and organize your learning in this course:
Want to know more about my teaching philosophy ?¶
For a detailed description of my teaching philosophy and values (including a list of references and citations), you can read it here. Here are the key principles I intend to apply in this class:
Student learning is vastly improved through active learning.
Effective teaching is inclusive teaching.
Learning technologies must be leveraged to scale instructor effort across multiple classes.
Exploring the connections between different disciplines is an extremely powerful motivator.
Teaching is three parts preparation, two parts classroom management, and one part execution.
What should I think about if I’m considering withdrawing from the course?¶
First of all, I’m sorry you’re having trouble and are considering withdrawing from the course! This is no problem, and I will not be personally offended or upset you need to do this, I encourage you to do what you feel is right for you and your situation. Below is some information that might be helpful for you in making the decision.
Withdrawal type |
Effect on Transcript |
Tuition refund |
|---|---|---|
Before the 1st withdrawal date |
None |
100% refund |
Before the 2nd withdrawal date |
W on transcript |
0 - 50% refund (depending on the date you’re withdrawing) |
After the 2nd withdrawal date (cannot happen without faculty approval) |
W on transcript |
0% |
There are factors other than money and your transcript to consider as well, including your mental health, graduation requirements/timelines, eligibility for student loans, bursaries, scholarships etc. I advise you to read the full list of considerations here and contact your faculty advisor if you have additional questions.
How do I do well in this course?¶
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut blandit faucibus fermentum. Fusce porttitor congue dolor, eget efficitur neque ultricies at. Nulla suscipit convallis elit, eu consequat felis.
Quisque et malesuada justo, dapibus commodo enim.
Sed malesuada turpis sed nibh dictum, a interdum dui tincidunt.
Duis consequat magna non tortor dictum facilisis.
In hac habitasse platea dictumst.
Phasellus eu eros libero.
Phasellus rhoncus eros vel metus porttitor porta.
In et tellus finibus, mollis nisi sed, auctor est.
Sed placerat ex at ligula eleifend, ac dapibus neque euismod. Suspendisse malesuada pretium dui, ac lacinia mi pellentesque eu. Sed volutpat enim sed feugiat malesuada.
… but I’ve never been good at physics or math!¶
That’s okay! You’re still more than welcome in this course. I will do everything I can (within reason) to still make the course accessible to you. This course is designed with your success in mind. There are multiple opportunities for you to learn from your mistakes and improve your grades in nearly every aspect of the course. In my opinion, the best learning happens when folks are given the opportunity to make mistakes so they get over their fear of trying something! At the beginning of the term, we will all do a Math Diagnostic (not for marks) to check if you have the required math background for this course. If you do not, I have some supplemental material for you to catch up. My expectation is that you’ll complete the exercises and review the supplemental material in the first couple of weeks.
To summarize, if you’ve never been “good” at physics or math, come into the course with a healthy attitude, a desire to work for your success, and I have no doubt you will be successful in this course. If you ever want to talk about the course, or have any feedback you want to give me, do not hesitate to reach out to me!
… but I don’t even like physics or math!¶
Believe it or not, I have no expectation that every student that takes my course will have an undying passion for the subject. Some of you may be forced to take this course by your programs, faculties, career interests, etc… Sometimes we all have to take courses that we think we don’t like, or enjoy. That’s fine! No judgement from me, you are more than welcome in this course. I just ask that you not make any snap judgements about the class, the material, the instructor (me), or the teaching team. Whatever your motivations are for taking this course, give us a chance, maybe you don’t HAVE TO be miserable taking this course! You might even enjoy the feeling of community and camaraderie that develops over the course of the semester :-).
I hope you’re not miserable, if you do feel miserable, come talk to me - maybe I can help you see the light at the end of tunnel?
What type of information will I collect about you in this course?¶
Having taught DSCI 541: Privacy, Ethics, and Security in the UBC Master of Data Science in the past, I am very aware of the surveillance culture that has permeated our society and heralded the End of Privacy as we know it. That being said, as an instructor, I care tremendously about your learning and the course-related data that is collected about you is extremely valuable. Broadly speaking, this relatively new field is called Learning Analytics. Learning Analytics involves the collection and analysis of data about learners for the express purpose of improving their learning by optimizing teaching and learning practices.
In this course, we will be using the following learning technologies (privacy policies linked):
All tools used in the course will be used in a FIPPA-compliant manner, with your privacy top of mind. New tools may be added to the course as the need arises, and I will update this section with the appropriate information and make an announcement if a new tool is added midway through a course.
All of the tools above log data about your activity that can be used to improve the quality of teaching and learning. In this course, I intend to use this information to:
view overall class progress (in aggregate),
track your personal progress in order to provide you with personalized feedback,
track participation in discussion forums
improve the course and your learning,
explore students actions in the course,
provide you feedback on your progress.
Unfortunately, at the moment it is not possible to opt-out of the data collection process, but if you like, you may opt-out of the process where I use the data to give you personalized feedback. To opt-out, please complete this form at any point in the course. You may opt-out with my full support, I respect your decision and applaud you for your netizenship!
What should I do if I need accommodations to be successful in this course?¶
Accommodations are intended to remove barriers experienced by individuals with disabilities. As a matter of principle, UBC is committed to promoting human rights, equity and diversity, and it also has a legal duty under the BC Human Rights Code to make its goods and services available in a manner that does not discriminate. Policy 73 (Accommodation for Students with Disabilities) sets out principles and processes governing the accommodation of students with disabilities.
All accommodations for this course are handled through the Disability Resource Centre and I encourage you to contact them to book an appointment. For a more detailed guide, the Accommodations page has a list of steps you should take for this course.
What if I miss labs, tests, or the exam due to an illness, health, or other personal situation?¶
Students who, because of unforeseen events, are absent during the term and are unable to complete tests or other graded work, should normally discuss with their instructors how they can make up for missed work. If ill health is an issue, students are encouraged to seek attention from a health professional. Campus Health and Counselling will normally provide documentation only to students who have been seen previously at these offices for treatment or counselling specific to conditions associated with their academic difficulties. Students who feel that requests for consideration have not been dealt with fairly by their instructors may take their concerns first to the Head of the Department, and if not resolved, to the Office of the Dean. Further information can be found at the UBCO Calendar](http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,48,0,0).
Tip
If you miss a course component due to an illness, health, or other personal situation, please reach out to me as soon as you are comfortable, and I’ll work with you to get you back on track.
What if I have dependents that rely on me for care and unpredictable emergencies may arise?¶
Let’s talk, send me a private message and we can discuss it. I do not necessarily need to know all the personal details, just a high-level summary of your situation and what you think an ideal solution would be.
I’m sure we will come to some agreement, generally the earlier you let me know of any special circumstances or accommodation, the more I’ll be able to do for you!
What if I have to miss a deadline because of a wedding, birthday, funeral, religious holiday, or personal event ?¶
No problem! There’s not even any need to tell me, or ask for permission to miss deadlines. The course is designed to give you maximum flexibility:
Every deadline has a 48-hour grace period that is automatically applied.
There is no late penalty if you use the grace period
You can use the grace period an unlimited amount of time in the course (though if it happens every week and for every assignment, I might check in with you and gently encourage you not to leave things to the last minute)
If you miss a deadline by more than the grace period, the general course policy is that you will get 0 on it. In some cases, I reserve the right to grant an extension, or provide an alternate assignment.
Compassion¶
As I’m sure you’re aware, there is a global pandemic happening right now and we could all use some extra compassion and humanity. If you’re going through something that is affecting you (course or otherwise), you are always welcome to come and talk to me about it. If I am not able to help you myself, then I can probably direct you to the right person or resource. If you need extra help, or extra time to deal with something you’re going through, just ask. You will never owe me an explanation about your physical health, mental health, or those of your family members, friends, etc… I will believe you, and I will trust you. I will not judge you, nor think any less of you. I will do everything in my power to work something that is both reasonable and fair. This, I promise!
 That cannot happen if you make unethical decisions, including (but not limited) to cheating or plagiarism. According to the scientific literature, the most common reasons students cheat are:
Fear of failure and life consequences
Peer pressure, including an inability to say no to help others cheat
Perceived societal acceptance of cheating (Lance Armstrong, Barry Bonds, Enron, Wall Street & the The Big Short)
Desire for success without the time/desire to put in the work needed
Strict deadlines and due-dates
Requirement from instructors to memorize facts, figures, equations, etc…
High-stakes exams with no recompense for “having a bad day”
Peers cheating with no consequences or penalties
Unclear expectations on what constitutes academic dishonesty
Inadequate support from instructor and teaching team
Though I sympathize with students and the stresses of your busy lives - in my opinion, there is no good reason to cheat. I have tried extremely hard to make this course focused on learning rather than grading, and where grading is needed, to have policies that are as “student-friendly” as possible. In particular, I hope (and expect) that the following features of the course should eliminate your temptation to cheat or plagiarize:
48 hour grace-period on all homework and lab due dates and deadlines.
Long testing window (48 hours) so you can start the tests whenever you’re comfortable.
Weekly learning logs, homework and reading reflections to make you think about your learning (metacognition).
Timed tests have generous time limits (allowable time is 1.25x the estimated time).
Each test has a “bonus test” available one week later; for each test, we will take the better score of the pair.
No high-stakes exams (the single largest assessment item is the final exam at 20%).
All course assessments are completely open book and open notes.
Plenty of TA and instructor office hours and several outside of normal business hours.
A class guidebook that outlines exactly what you should do when to help you manage your time.
Tonnes of supplemental materials including other instructional videos in case you want a different perspective.
Weekly prompt to accept the integrity pledge to keep you accountable.
A true willingness from the instructor (me) to help you learn and succeed in this course!
A more detailed description of academic integrity, including the University’s policies and procedures, may be found in the Academic Calendar.
My personal plea¶
With these features, and many other little things, I sincerely hope that you will consider completing this course with maximum integrity so that you never have to feel guilty, ashamed, or disappointed in yourself and your actions!
To make it even easier for you to decide what isn’t allowed, below is a list of things that I definitely* consider to be academic dishonesty:
Asking others for their work in the course (whether question by question, or all at once)
Sending others your work in the course
Doing tests collaboratively (tests must be done by yourself and alone)
Sending others your test questions and/or answers
Sharing any course material onto Chegg, Course Hero, Slader, or other similar sites
Searching for solutions to course material on Chegg, Course Hero, Slader, or other similar sites
Blindly googling the question in hopes of finding someone who had a similar question and then copying their answer
Note, googling to find resources to understand specific concepts or general ideas is highly encouraged!
Having a tutor/friend/nemesis complete and submit your work for you
Copying and pasting code, equations, text explanations, prose, etc… without attribution
Manipulating the learning platforms we use to reverse engineer the randomization algorithms, hacking the timer functionality, or other similar technical malfeasance.
UBCO’s statement on Academic Integrity¶
The academic enterprise is founded on honesty, civility, and integrity. As members of this enterprise, all students are expected to know, understand, and follow the codes of conduct regarding academic integrity. At the most basic level, this means submitting only original work done by you and acknowledging all sources of information or ideas and attributing them to others as required. This also means you should not cheat, copy, or mislead others about what is your work. Violations of academic integrity (i.e., misconduct) lead to the breakdown of the academic enterprise, and therefore serious consequences arise and harsh sanctions are imposed. For example, incidences of plagiarism or cheating may result in a mark of zero on the assignment or exam and more serious consequences may apply if the matter is referred to the President’s Advisory Committee on Student Discipline. Careful records are kept in order to monitor and prevent recurrences.
UBC Policies¶
UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available here.
Copyright Disclaimer¶
Diagrams and figures included in lecture presentations adhere to Copyright Guidelines for UBC Faculty, Staff and Students and UBC Fair Dealing Requirements for Faculty and Staff. Some of these figures and images are subject to copyright and will not be posted to Canvas. All material uploaded to Canvas that contain diagrams and figures are used with permission of the publisher; are in the public domain; are licensed by Creative Commons; meet the permitted terms of use of UBC’s library license agreements for electronic items; and/or adhere to the UBC Fair Dealing Requirements for Faculty and Staff. Access to the Canvas course site is limited to students currently registered in this course. Under no circumstance are students permitted to provide any other person with means to access this material. Anyone violating these restrictions may be subject to legal action. Permission to electronically record any course materials must be granted by the instructor. Distribution of this material to a third party is forbidden.
Grievances and Complaints Procedures¶
A student who has a complaint related to this course should follow the procedures summarized below:
The student should attempt to resolve the matter with the instructor first. Students may talk first to someone other than the instructor if they do not feel, for whatever reason, that they can directly approach the instructor.
If the complaint is not resolved to the student’s satisfaction, the student should go to the departmental chair John Braun at SCI 388,<PHONE_NUMBER> or e-mail him at<EMAIL_ADDRESS>Grading Practices¶
Requirements to pass the course are listed above How will I be evaluated in this course?.
Faculties, departments, and schools reserve the right to scale grades in order to maintain equity among sections and conformity to University, faculty, department, or school norms. Students should therefore note that an unofficial grade given by an instructor might be changed by the faculty, department, or school. Grades are not official until they appear on a student’s academic record. If you have any questions about how academic integrity applies to this course, please consult with your professor.
Disability Assistance¶
The Disability Resource Centre ensures educational equity for students with disabilities, injuries or illness. If you are disabled, have an injury or illness and require academic accommodations to meet the course objectives, visit our website for more information or contact the DRC at<EMAIL_ADDRESS>Equity, Human Rights, Discrimination and Harassment¶
UBC Okanagan is a place where every student, staff and faculty member should be able to study and work in an environment that is free from human rights based discrimination and harassment. If you require assistance related to an issue of equity, discrimination or harassment, please contact the Equity Office by phone<PHONE_NUMBER>) or email (equity.ubco@ubc.ca), your administrative head of unit, and/or your unit’s equity representative.
Health & Wellness¶
At UBC Okanagan health services to students are provided by Health and Wellness. Nurses, physicians and counsellors provide health care and counselling related to physical health, emotional/mental health and sexual/reproductive health concerns. As well, health promotion, education and research activities are provided to the campus community. If you require assistance with your health, please contact Health and Wellness in person (UNC 337) or by email<EMAIL_ADDRESS>for more information or to book an appointment.
Sexual Violence Prevention and Response Office (SVPRO)¶
A safe and confidential place for UBC students, staff and faculty who have experienced sexual violence regardless of when or where it took place. Just want to talk? We are here to listen and help you explore your options. We can help you find a safe place to stay, explain your reporting options (UBC or police), accompany you to the hospital, or support you with academic accommodations. You have the right to choose what happens next. We support your decision, whatever you decide. Visit svpro.ok.ubc.ca or call us at<PHONE_NUMBER>.
Independent Investigations Office (IIO)¶
If you or someone you know has experienced sexual assault or some other form of sexual misconduct by a UBC community member and you want the Independent Investigations Office (IIO) at UBC to investigate, please contact the IIO. Investigations are conducted in a trauma informed, confidential and respectful manner in accordance with the principles of procedural fairness. You can report your experience directly to the IIO via email<EMAIL_ADDRESS>or by calling<PHONE_NUMBER> or online by visiting investigationsoffice.ubc.ca.
The Hub¶
The Student Learning Hub (LIB 237) is your go-to resource for free math, science, writing, and language learning support. The Hub welcomes undergraduate students from all disciplines and year levels to access a range of supports that include tutoring in math, sciences, languages, and writing, as well as help with study skills and learning strategies. For more information, please visit the Hub’s website (https://students.ok.ubc.ca/student-learning-hub/) or call<PHONE_NUMBER>.
SAFEWALK¶
Don’t want to walk alone at night? Not too sure how to get somewhere on campus?
Call Safewalk at<PHONE_NUMBER>.
For more information, visit our website or download the UBC SAFE - Okanagan app.
Attribution¶
The syllabus was constructed and adapted from many other templates and examples. Below is the list of resources I have used to put this syllabus together:
Physics 117 (Instructor: Dr. Simon Bates)
Psychology 417A-951 (Instructor: Dr. Catherine Rawn)
References¶
- 1
Martha M Rumore. The Course Syllabus: Legal Contract or Operator’s Manual? American Journal of Pharmaceutical Education, 80(10):177, 2016. doi:10.5688/ajpe8010177.
- 2
Susan A. Ambrose, Michael W. Bridges, Michele DiPietro, Marsha C. Lovett, and Marie K. Norman. How Learning Works: 7 Research-Based Principles for Smart Teaching. Jossey-Bass, San Francisco, CA, 2010. ISBN 978-0-470-48410-4.


Starting with an empty file, can you write a complete C program to print out your favorite haiku poem, saying or famous CS quote?
Use 'write' system call to print your text.
Your main method should return an integer value zero (to mean it completed successfully).
Hint you'll need an #include and a 'main' function that returns an int.
Go(opens a new window)
1.2 Hello Standard Error Stream
Watch
Comments: In the video I say "C has no boolean type." That's a bit of a half-truth.
If you're using a more modern specification of C, C99 or newer, you can now #include stdbool.h
which includes a definition of a type 'bool' but it just
defines 'true' to be integer 1 and 'false' to be integer 0!
Play
Spot the mistake(s) in the following code
for(len = 0; len <5 ; len++) {
write(STDOUT_FNO,"I think", 6);
write(STDOUT_FILENUM,"\n", 6);
}
And use your corrected version in a complete C program to print the following seven lines.
Return the value 7. Verify that your program returns 7 typing "echo $?" in the terminal window after your program has just run.
Return the value 1023.
Why does "echo $?" in the terminal window after your program has just run not print 1023?
Hint: Some testing or web searching can tell you how many bits are actually used.
I think
I thin
I thi
I th
I t
I
I
Go(opens a new window)
1.3 Writing to files
Watch
Play
Part 1
Use your favorite search engine to find the man page for open (hint try "man open")
Can you create a program from scratch to create a file "message.txt", write a short message "hello!" and close the file handle.
Your text file should only be readable by you.
If you run your program again (e.g. "./program" in the terminal window)
Verify the contents of the file using "cat message.txt" in the terminal window.
Go
Part 2
Modify the program so that
Anyone can read your text file (hint which mode flag corresponds to "others have read permission")
Rather than truncate the file back to zero length each time, new text is appended to the end.
For example, running your program twice, and then "cat message.txt" you should see "hello!hello!"
Go
1.4 Not everything is a system call
Watch
Play
Send standard error to a file 'errors.txt' Hint: 'close' and 'open' are useful.
The file should always be truncated
Open another file with an illegal filename (e.g. "").
Use perror to send the error message to your log file.
Verify the contents of your log file using "cat errors.txt" in the terminal window.
Go


Channel-based Tic Tac Toe
Waiting for another player to join.
Send them this game ID to play:
or enter a game ID another player sent you:
Your move! Click a square to place your piece.
Waiting for other player to move...
You won this game!
You lost this game.


Download my CV (in Swedish)
Professional experience
| |
|
| 2022 – |
Hydrologist @ Fortum (Sweden) |
| |
Inflow forecasting • Model development • Forecast evaluation • Data analysis |
| |
|
| 2018 – 2022 |
Hydrologist @ Swedish Meteorological and Hydrological Institute, SMHI (Sweden) |
| |
Seasonal forecasting • Ice break-up forecasting • Officer on duty for the Swedish, European (EFAS) and global (Aristotle) hydrological warning services • Large-scale flood forecasting • Large datasets • Model development • Research |
| |
|
| 2017 – 2018 |
Postdoctoral Researcher @ University of Zurich (Switzerland) |
| |
Snow hydrology • Model development • Large datasets • Data scarcity • Model uncertainty |
| |
|
| 2011 – 2016 |
Graduate Teaching Assistant @ Uppsala University (Sweden) |
| |
Lectures • Seminars • Laboratory and field work |
| |
|
| 2011 – 2016 |
Graduate Research Assistant @ Uppsala University (Sweden) |
| |
Data needs for hydro-meteorological modelling • Socio-hydrology • Social media data |
| |
|
| 2009 |
Lab technician intern @ Laboratori Català de Control (Spain) |
| |
Quality control of cement, concrete and anchorages • Testing of soil properties • Water sampling and analysis |
| |
|
| 2008 |
Consultant intern @ URS Corporation (Spain) |
| |
Environmental control tests of petrol stations • Soil decontamination • Hydrogeological data processing • Fauna and sediment sampling |
| |
|
Education
| |
|
| 2011 – 2016 |
PhD, Hydrology @ Uppsala University (Sweden) |
| |
Thesis: Information Needs for Water Resource and Risk Management: Hydro-Meteorological Data Value and Non-Traditional Information. |
| |
|
| 2009 – 2011 |
MSc, Earth Sciences (Hydrology/hydrogeology) @ Uppsala University (Sweden) |
| |
Thesis: Modelling Climatic and Hydrological Variability in Lake Babati, Northern Tanzania. |
| |
|
| 2004 – 2009 |
BSc, Geology @ Universitat Autònoma de Barcelona (Spain) |
| |
|
| 2007 – 2008 |
Exchange student @ Université Joseph Fourier – Grenoble 1 (France) |
| |
|
Skills
| |
|
| Programming |
Python • R • Matlab • LaTeX • Fortran • Markdown • Bash |
| |
|
| Software |
ArcGIS • QGIS • GRASS GIS • LISFLOOD-FP • HBV • HYPE • Git • Inkscape • Linux |
| |
|
| Instrumentation |
Campbell loggers • Hydro-meteorological sensors |
| |
|
| Languages |
Native or bilingual proficiency: Catalan • Spanish |
| |
Full professional proficiency: English |
| |
Professional working proficiency : Swedish • French |
| |
Elementary proficiency: German |
| |
|
| Other |
Swedish driving license (B) |
| |
|
Grants, awards, & honours
| |
|
| 2017 |
Travel grant |
| |
Swiss Association of Geography |
| |
|
| 2016 |
Scientific photo contest winner |
| |
European Geosciences Union (EGU) |
| |
|
| 2015 |
Research Fellowship |
| |
Consortium of Universities for the Advancement of Hydrologic Science Inc. (CUAHSI) |
| |
|
| 2014 |
Travel grant |
| |
Liljewalchs Foundation |
| |
|
| 2010 |
Scholarship |
| |
The Swedish-Spanish Foundation |
| |
|
| 2007 |
Scholarship |
| |
ERASMUS Programme |
| |
|
Other activities
| |
|
| 2016 – |
Scientific translator |
| |
European Geosciences Union’s Planet Press initiative |
| |
|
| 2014 – 2016 |
Student representative |
| |
Student representative to the Program Board of the Centre for Natural Disaster Science (CNDS) |
| |
|
| 2013 |
Volunteer |
| |
International Association of Hydrological Sciences (IAHS) |
| |
|
| 2013 |
Student representative |
| |
Student representative to the Board of the Department of Earth Sciences of Uppsala University |
| |
|
| 2007 |
Student representative |
| |
Student representative to the Board of the Section of Geology at Universitat Autònoma de Barcelona (UAB) |
| |
|
References available on request.


Video
From handy hints to full on tutorials, our range of videos covers all things virtual training.
¿Le parece desafiante el cambio a la formación virtual?
Leer MásLooking for training workshops expertly designed for virtual delivery?
Read MoreNeed help designing your live virtual training experience?
Read More¿Conoces a esas personas que dicen que les gustaba algo antes de que fuera genial?
Somos nosotros con formación virtual.
Nos especializamos en el uso de tecnología y producción audiovisual para la educación y capacitación virtual. Hemos producido más de 1000 horas de seminarios web interactivos. Para facilitar el aprendizaje, creamos actividades de micro-learning y programas que requieren solo minutos al día. Nuestra historia
Our coaches have diverse backgrounds, and each one is an expert in virtual training.
We’ve got an elite network of coaches available in almost every timezone; so location is no obstacle to you experiencing the very best the world of virtual training has to offer.
VIEW COACHESWant to experience a live demo of our Virtual Workshops?
You’ll have a range of topics to choose from, so you can pick the session that piques your interest. No matter the demo, you’ll experience the very best the world of virtual training has to offer.
From handy hints to full on tutorials, our range of videos covers all things virtual training.
Would you like to work for us? We’re always pleased to speak with people who would like to work with us.
If you think you’ve got the skills to make a difference here, as a coach, in sales, or something else altogether get in touch
Join the Team


Let me tell you about the two best boys you will ever meet. Winfield, pictured above to the right, and Jerico, to the left, are brothers as well as my babies. Jerico (Jeri) is Winfield’s big brother, and isn’t always as excited to play when his little brother tries to start with him. However they both love naps and giving kisses to each other and the rest of their family.
Winfield was adopted four years ago as just a 14 week old puppy. He had fleas and multiple infections but was ready to be someone, or everyones, new bestfriend. He has grown into a big, lovable, donkey of a dog who greats absolutely everyone at the front door with a toy to show to show he loves them already. Jeri was rehomed by his mom almost 2 years ago at 9 years old. He’s a bit of an old man but I think he’s always been an old soul. He’s ready to hop into anyones lap and pur for scratches or find a new spot to nap in the house. Even though he’s not that excited to play he loves to spend time with people. This old man was a perfect addition to the family.| Winfield | Jerico | |
|---|---|---|
| Dog: | X | |
| Cat: | X | Is a Good Boy: | X | X |
| Loves Treats: | X | X |
| Ear Scratches: | X | X |
| Belly Rubs: | X |
The Best Boys Newsletter


You need Our Plugin for this. Get the latest version fromhere.
Game request status: No game req.
Game started status: Unknown


Consider the issue of global warming. In 2001, the Intergovernmental Panel on Climate Change (IPCC), a scientific panel organized by the United Nations, concluded that carbon dioxide (CO2) and other green- house gas emissions were contributing to global warming. The panel stated that“most of the warming observed over the last 50 years is attributable to human activities.”
The amount of CO2 in the atmosphere is affected by naturalprocesses and human activity. Anthropogenic CO2 emissions (emissions resulting from human activity, including combust- ion of fossil fuels and changes in land use,especially deforestation), have been growing since the start of industrial revolution (Figure 1). Natural processes gradually absorb CO2 from the atmosphere (for example, as it is used by plant life and dissolves in the ocean). Currently,the absorptions of atmospheric CO2 by natural processes is about half of the anthropogenic CO2 emissions. As a result,concentrations of CO2 in the at- mosphere have increased, from preindustrial levels of about 600 GtC to about 769 GtC today (Figure 2).
Now consider a scenario in which the concentration of CO2 in the atmosphere gradually rises to 938 GtC, about 22% higher than the level today, then stabilizes by the year 2100 as shown here:
The graph below shows anthropogenic CO2 emissions from 1900-2000, and current absorptions of CO2 from the atmosphere by natural processes.Next, you will be asked to sketch:
a. Your estimate of likely future CO2 absorptions, given the scenario above.
b. Your estimate of likely future anthropogenic CO2 emissions, given the scenario above.


Which sorting algorithm makes use of Insertion Sort's best case behavior?
Which algorithm works by performing a series of Insertion Sorts on carefully selected sublists?


Peer programming replicates the developer-client relationship during the programming phase. It is also a great teaching opportunity when one developer has more experience than another to share the pool of experience.
Some reasons I think peer programming is rad:
During our peer programming session, Karen and Adam used a driver-navigator dynamic. This is where two developers sit side-by-side (or in a line of communication), and only one of them actually writes the code, while the other directs.


[gecode-users] svn: bug in sudoku.cc
Filip Konvička
filip.konvicka at logis.cz
Tue Nov 27 08:03:07 CET 2007
>>>> Trying to build outside of the source tree failed somehow, though.
>>> Otherwise, compilation went extremely smooth with a fresh install of
>>>
>>> Again, this might have been due to the bogus state of the svn, it
>>> currently compiles without problems for me (using MSVC 2005, though).
>>>
>> This was no problem report, just a reference for anyone trying to
>> compile on Cygwin (it's always rather complicated to get INCLUDE, LIB
>> and PATH point to the right directories). Actually, this was the main
>> reason of my post.
>
> Yes, right, that is really appreciated. I was just referring to the
> fact that it didn't build in a separate directory, which should be
> fixed now (I think). Another way to define the variables is to start
> the "Visual Studio Command Prompt" (from the start menu). This will
> open a Windows console with all the paths set up. From there, you
> just type something like "c:\cygwin\bin\bash -login", and everything
> should work.
Ah, that's nice. I should have realized.... So, I'm off to find out
where's my SharedArray gone :-)
Cheers,
Filip
More information about the gecode-users
mailing list


Dear , We here at Vacation Identification have done our research and we highly recommend , where you will be able to . We hope you enjoy your vacation and have a safe and wonderful trip!
Dear , We here at Vacation Identification regret to inform you we have not been able to Indentify a vacation that matches your criteria. Please check back often to see if we have added to this section or try some different criteria


You are now ready to test your uSD card.
Insert this card on your Rasperry PI2, connect an Ethernet cable, and apply power.
If all goes well, you should get an IP address, and you should be able to ssh into it.


In mathematics, Integral geometry is the theory of measures on a geometrical space invariant under the symmetry group of that space. In more recent times, the meaning has been broadened to include a view of invariant (or equivariant) transformations from the space of functions on one geometrical space to the space of functions on another geometrical space. Such transformations often take the form of integral transforms such as the Radon transform and its generalizations.
The theory of invariant measures (with respect to continuous groups of transformations of a space onto itself) on sets consisting of submanifolds of the space (for example, lines, planes, geodesics, convex surfaces, etc.; in other words, manifolds preserving their type under the transformations in question). Integral geometry has been constructed for various spaces, primarily Euclidean, projective and homogeneous spaces.
Integral geometry is concerned with the introduction of invariant measures, their relationships and their geometric applications. It arose in connection with refinements of statements of problems in geometric probabilities.
In order to introduce an invariant measure one tries to begin with a
function depending on the coordinates of the space under consideration
whose integral over some region of the space is not changed under any
continuous coordinate transformation belonging to a specified Lie group.
This requires finding an integral invariant of the Lie group. The latter
can be found as a solution to the system of partial differential equations
\(\sum_{1}^{n}\frac{\partial }{\partial x_i}[\varepsilon _{h}^{i}F(x)]\)
\(= 0\), \(h = -1, ... r\)
Where \(F(x)\) is the required integral invariant \(x\) is a point of the space (having dimension \(n)\), \(\varepsilon _{h}^{i}\) are the coefficients of the infinitesimal transformation of the group, and \(r\) is the number of parameters of the transformation. Of great significance in integral geometry are measurable Lie groups, that is, groups that admit one and only one invariant (up to a constant factor). In particular, simple transitive groups are of this type.
In integral geometry on the Euclidean plane \(E^2\) one usually considers only one type of continuous transformation, namely, the group of motions (without reflections). For a set of points, the integral invariant is the unit, for a set of lines it is again the unit if one selects for the parameters of the lines the parameters \(p\) and \(\phi \) 0f its normal equation.The measure of a set of straight lines intersecting two convex figures (ovals) is equal to the difference of the lengths of the crossed common tangent lines of the oval and the outer common tangent lines. Outer common tangent lines Crossed common tangent lines
The measure of the set of straight lines dividing two ovals is equal to the length of the crossed common tangent lines minus the sum of the lengths of the contours of the ovals


This gigantic statue of baby Jesus is the absolute spits of Phil Collins
by Fiona KellyA Mexican church has commissioned a huge statue of the baby Jesus that looks pretty much exactly like singer Phil Collins.
The sculpture was commissioned for the church La EpifanIa del Señor, according to the New York Post.
It is 22-feet tall, weighs over 2,000 pounds — and against all odds it somehow looks more like the lead singer of Genesis than the son of God.
The church's priest Humberto Rodriguez said that he only wanted something that would "fit the church."
He was taken aback by the size of the statue once it arrived saying he "never intended to make it the biggest baby Jesus statue in the world."
Whether it actually takes the record has yet to be confirmed, but it’s certainly f***ing massive.
"There is a space of between 26 feet between the ceiling and the floor and I ordered a statue measuring 21 feet, but I never intended to make it the biggest baby Jesus statue in the world," he says.
Can't wait to see that church's crib this Christmas, currently wondering if Joseph will look like Peter Gabriel.
The Guinness record-holder for tallest statue of Jesus Christ is 'Christ the King.' It measures 120-feet tall and is located in Swiebodzin, Poland and was completed on November 6, 2010.
Even if this isn't the biggest Jesus statue in the world, however, we're pretty sure it's the biggest Phil Collins one.
Phil himself has not commented on the statue, but we do know him and the son of god are pretty well acquainted...


A near-hopeless childhood cancer succumbs to drug duo
Mass screening turns up a therapy that holds promise for treating a highly aggressive class of tumours.
A combination of drugs has shown promise in laboratory tests against an inevitably fatal nervous-system cancer that mostly strikes children.
Diffuse midline gliomas are tumours of the central brain and spinal cord. The only available treatment is radiation, and the median survival for one type of this cancer, diffuse intrinsic pontine glioma, is 9–11 months. Previous work has suggested that the drug panobinostat kills these tumour cells, but they ultimately become resistant to the treatment.
Michelle Monje at Stanford University in California and her colleagues looked for drugs that could be used alone or in combination to kill diffuse midline glioma cells. The team tested 2,706 single compounds and 9,195 drug combinations in cell cultures grown from patients’ tumours.
A combination of two drugs, panobinostat and marizomib, increased survival in mice bearing tumours grown from the samples. This drug combination altered when genes in the cancer cells turn on and off, and interfered with cellular metabolism.


Module Name: DatatableModule
Module Name: DatatableModule
The DataTable displays data in a tabular format and provides a full spectrum of configuration options.
Lets you work with a small or large mass of data.
Allows horizontal and vertical scrolling in both Paginator and Scrollable mode.
Column Reordering & Resizing in all modes, normal, paginator and scrollable.
Row Model Allow Client or Server side Pagination, Sorting & Filtration.
Intelligent Column Width Algorithms which allow you to resize the table automatically.
Allows you to navigate via the Keyboard( ArrowDown, ArrownUP, Home, End, etc).


@(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "Your new country-by-country ID") {
Dear @params("f_name") @params("s_name")
Thank you for taking part in the private beta phase of the country-by-country digital service.
Here's your new country-by-country ID, which replaces the one you created for private beta:
@params("cbcrId")
You’ll need to validate your new country-by-country ID
Make sure you keep the ID safe, as you must use it from now on each time you send a country-by-country report.
From HMRC Country-by-Country Reporting
}


Home
Evaluation and Assessment
The mission of University of California at Riverside’s Office of Evaluation and Assessment is to facilitate a culture of data-driven decision making and continuous educational improvement. To that end, we design and conduct studies on the effectiveness of UCR’s undergraduate academic support programs. We also advise faculty and administrators on all aspects of the assessment process from writing learning objectives to implementing results. We provide support for iEval, the campus' online student evaluation of teaching system. Further, we provide assistance on an ad hoc basis to faculty needing help with grant proposals and other projects that have an evaluation or assessment component. Finally, we offer writing, research, and organizational support for UCR’s WASC accreditation activities. The Office of Evaluation and Assessment seeks to initiate and support data driven conversations focused on undergraduate student success.
Workshops for Winter 2017:
Assessment Critical Thinking: (11:00am-12:00pm Feb 9th, 2017, Hinderaker 1127)
This workshops will discuss how you might assess students' critical thinking abilities in a disciplinary context, how you might go about designing an assignment to gather evidence of students' learning in this area and examples of how you might examine and report on that evidence. There will also be discussion of annual reporting requirements for WASC core competencies.
Funding Opportunities:
The Office of Evaluation and Assessment will, again, support assessment development grants. Applications are available (here) and proposals should be submitted (close of business) March 17th. Awards decisions are anticipated in April and funding for this cycle would be available for AY17-18,


Pacific atmospheric Station North ALOHA deposition dust ocean variability changes observed concentration Fig. Karl PDO climate iron Oceanogr. concentrations surface ecosystem upper microbial {border-style Ocean fixation px;} #ffffff;} nutrient waters Res. aerosol water Appendix, nmol⋅kg phosphorus Table column euphotic interannual shifts stoichiometry .–. David Limnol. Mahowald National Scanza marine nitrogen oligotrophic patterns Schneider Subtropical model pelagic Douglas Foundation Gyre Hamilton Loa Mauna Natalie Rachel SLP Science addition, basin-scale low rates significant supply temporal transport University analysis particulate phases region response soluble spatial stratification time zone (.) Geophys. Oscillation based density driven elemental limitation mixed-layer observations positive seasonal uptake ALOHA. Asian Atmospheric Clim. Niklas U.S. annual biological correlation eastern forcing index mean pressure productivity px; record relative source values {font-family Atlantic Center Church Furthermore, Global HOT Nat. Northwest Sea Trichodesmium White associated biogeochemical dissolved distribution enhancement font-size http://orcid.org/--- inorganic leading long-term mixing negative oceanic open period recorded results variations western Björkman Chem. D.M.K. DE-SC Deep Fe:P Hawaii Letelier Mar. Moore NPGO Research anomalies availability central data double; ecosystems flux function gradients nutrients periods series shift situ strength structure subtropical ALOHA, Aleutian Atmos. Biogeochem. Cycles However, Lett. Lorenzo Nutrient Pacific, Phys. activity affect border-color border-width carbon carrying chlorophyll combustion community contribute decadal deep depth derived diffusion dust-associated dynamics effects enhanced following hypothesis including indices input large large-scale limiting maximum mineral models monthly oscillations phytoplankton position potential primary range ratio regions required result sampling skill solid; sources suggesting suggests supporting total using {font-style {font-weight > < A.E.W., Angelicque Climate Community Decadal Dust Earth Energy Eq. Hawaiian Hawai’i Low Marine Matthew Meteorol. Microbial Microbiol. NPSG, Nevertheless, Northeast Ocean. Sci. Sciences Simons Stud. Surface Time-series Top. advection anthropogenic assemblages available averaged background base bold characterized climate-driven component concentrations, contribution courier; cruise cycle direction display displayed distinct elements em; field global important lead mechanism median mixed new obtained optical program provided pt;} ratios records residual scales, sea significantly small stratification, subdecadal suggest summer support suspended trace uncoupling vertical wind years zone. −⋅y


this is my first web page
isn't it nice
here are something that I will learn about coding
check outgoogle. it is a great school for learning web programming!


Creates this button with right-aligned icon:
Icons can also be positioned above the text by specifying data-iconpos="top"
data-iconpos="top"
Or icons can also be positioned below the text by specifying data-iconpos="bottom"
data-iconpos="bottom"


Report Bugs
Home
Members of our Team
Chat Forum
Leaderboard
Please report any bugs or feel free to submit any improvements you may have for the game below.


MySQL adapter
The main difference with the pure-Python module is the syntax to identify a database and a table, and the need to specify field types when creating a table
For compliance with MySQL vocabulary, the module defines three classes, Connection, Database and Table
Connection
Connection(host,login,password[,charset]) returns a connection to the MySQL server. If the optional parameter charset is provided, the TEXT fields must bet inserted as Unicode strings, or as their encoding with this charset ; the values read from the database will also be Unicode strings
Instances of Connection are dictionary-like objects : the keys are the database names and values are the matching instances of the Database class
For instance :
conn.keys() returns the list of the database names
conn[db_name] returns the instance of the Database class called db_name
del conn[db_name] drops the database called db_name (all the tables in this database must have been deleted first)
They support another method :
create(db_name[,mode]) : creates a database named db_name and returns the instance of the Database class
The optional keyword argument mode specifies what to do if a database of the same name already exists : if set to "open", it returns the instance of the Database for this database, otherwise an exception is raised
Database
Instances of Database are dictionary-like objects : the keys are the table names and the values are the matching instances of the Table class. For instance :
db.keys() returns the list of the table names in the database
db[table_name] returns the instance of the Table class called table_name
del db[table_name] : drops the table called table_name
They support another method :
create(table_name,*fields[,**mode]) : creates a table named table_name and returns the instance of the Table class
fields are 2-element tuples (field_name,field_type) where field_name is the field name and field_type is a MySQL field type : INTEGER, REAL, DATETIME, CHAR, BLOB, etc. :
db.create('foo',('name','CHAR(20)'),('age','INTEGER'),('size','REAL'))
If additional information on the type needs to be provided, put it in the second argument, using the SQL syntax for MySQL :
db.create('foo',('recid','INTEGER PRIMARY KEY AUTO_INCREMENT'),
('date','TIMESTAMP DEFAULT CURRENT_TIMESTAMP'))
The optional keyword argument mode specifies what to do if a table names table_name already exists :
mode="open" : returns the instance of Table for this table, ignores field definitions
mode="override" : drops the table and creates a new one with the field definitions
- if mode is not specified, an exception is raised
Table
For record insertion, selection, update and deletion, adding or dropping fields, the syntax is the same as with the pure-Python module
Direct access by record identifier is only possible si a field has been defined as a primary key or has the mode AUTO_INCREMENT ; functions delete() and update() alos require a such field
To insert many records at a time,
table.insert(list_of_values)
will be much faster than
for values in list_of_values:
table.insert(values)
Selection by record id only works if a field INTEGER PRIMARY KEY is present in the table ; the functions delete() and update() also require this record id
cursor and commit
Intances of Database and Table all have :
|


| Copyrighted by EPAM Systems: expressly forbidden to share, distribute, reprint, etc. copy or modify without a written approval of the authors: Tomasz Borek, Paweł Kierat, Marcin Ogorzałek. |
Your job is to deliver a working program per these requirements. Minimum allowed version of Java: 11. Anything higher is allowed. All games need to support special scenario codes.
|
Screen templates
For your convenience, screen templates are in separate files and are included here. Heck! We even made a backup copy, so if you (accidentally or not) change something in the screens,
|
Rules
-
2-5 computer players (no interaction with a human required, aside from starting the program),
-
number of players is given as a starting parameter,
-
console program - the gameScreen prints to console,
-
decks: large (52 cards, no jokers) or small (24 cards, no jokers),
-
decks are chosen per starting parameter,
-
winner is the one with all cards,
-
all players have only their names: player1, player2, …, player5,
-
aces are highest, 2s - lowest (9s for small deck),
-
for grading purposes: all projects need to honour special scenario codes.
-
regionalize the gameScreen - all outputs should come in two languages (English and one more, of your choice)
-
gameScreen should log important information to a file using a modern logging library
| all screens MUST be as presented here, to the letter, to the dot, even with mistakes. The gameScreen doesn’t pause, the gameScreen doesn’t break, the gameScreen doesn’t prettify the output, the gameScreen doesn’t page the output. Our scripts will do that so your gameScreen MUSTN’T. Seriously. We most likely will drop games which won’t honour this. 0/10, don’t recommend, no grading. |
| special scenario codes are triggered by input parameters and set the gameScreen as specified. They are incredibly useful for our tests. |
Starting the program
Program invocation should be like:
-
java -jar target/War.jar 4 small
-
java -jar target/War.jar 4 large
where first parameter can have inputs between 1-5 and second: only "large" or "small" (the case should not matter).
Bad inputs should be corrected: so 0
becomes 1
, -5
becomes 1
,<PHONE_NUMBER>
becomes 5
and 6
becomes 5
. Similarly, LaRgE
becomes large
and SMaLL
becomes small
.
| JAR plugin configuration is given along with basic files in starting repository. If you won’t botch it, it will run. Does it fulfill all requirements though? |
Usage
First-timers don’t know how to run a program. Old-timers may forget how to run it. Which params to give. In what order. Therefore it’s an established tradition that running a program BADLY should prompt the program into printing the correct usage - or usage for short.
Usage: java -jar target/War.jar 4 small java -jar target/War.jar 2 large First parameter is the number of players. Second is the type of the deck (small - 24 cards, large - 52 cards, no other options are possible). Not exactly two parameters given? Program then prints this message and exits. Bad parameters given? Program corrects them to default values (2 and SMALL) and proceeds. You can write small, SmALl or SMALL (same with large) - case matters not. Valid integers for players: 1, 2, 3, 4, 5. Anything larger becomes a 5. Anything smaller becomes a 1.
Make sure you have a usage
function that takes care of that (bonus points if it’s OO!).
What usage DOESN’T say - special scenario codes
For the sake of testing your gameScreen, it needs to honour special scenario codes. Which means:
-
if there’s a JSON file named
ssc_???.json
present in theresources
directory then the JAR that is built should include it and used it.-
question marks in the name merely mean there may be something between
ssc_
and.json
, of a variable length
-
-
said file will have row per a player, so for 3 players it will look like that:
[ [9,9,10,10,14,14,11,10], [9,9,11,11,11,12,13,14], [14,10,12,12,12,13,13,13] ]
With a file like that:
-
gameScreen should start with a small deck and 3 players (there are 24 cards in the file)
-
player1 should get a hand with 2 aces, 3 10s and 2 9s and a valet.
-
player2 should get 2 9s, 3 valets, a queen, a king and an ace
-
player3 should get the remaining cards in the deck.
-
gameScreen should begin WITHOUT dealing
-
dealing is skipped if the special scenario code is present
-
instead a String "special scenario code: CAPITALIZED NAME" of the special scenario is displayed
-
for the file above that would be
EXAMPLE
-
the name is the
???
part of the file name, so forssc_player1_winS_In_7_MoVeS.json
it should bespecial scenario code: PLAYER1 WINS IN 7 MOVES
-
-
BONUS points for CHECKING that the file isn’t corrupted
-
not enough cards for a deck
-
too many cards for a deck
-
too many players
-
these should cause a
SpecialCodeFileMangledException
-
bad JSON syntax should cause a different exception
-
exceptions should have clear error messages, allowing to recover, hinting how to fix the file
-
|
Why? How? What for?
We want you to do that to learn OO design and programming by practicing it. You should take into account that testing randomness is difficult and use the special scenario codes to test-drive your implementation of the gameScreen. With this you can have a predictable gameScreen - give your players cards and the result should be clear, along with how each turn should look like. |
Game output
Game is a sequence of screens:
-
Dealing screen - shows up once,
-
Game screen - shows up multiple times and reflects changes in the gameScreen,
-
War screen - may be absent, may show up multiple times, if it does, it replaces the gameScreen screen for that turn,
-
End screen - shows up once.
| every screen of the gameScreen is SEPARATED from another screen by a SEPARATOR: precisely 9 "=" characters followed by exactly two blank lines, so altogether 3 lines of text. |
Thus your gameScreen will be outputting screens in the order above.
Automated gameplay!
You probably realized that this program is non-interactive. This is a zero-player gameScreen: no HUMAN players are needed. User launches the gameScreen with two parameters and that’s it. The rest is just program executing and printing.
This means:
-
no human interaction,
-
no waiting for humans,
-
no keyboard input,
-
no exception handling - except input parameters of course.
Handling bad values in input params
We want you to catch bad values, correct them to default ones and inform the user like so:
-
"Values were corrected to 2 players on a SMALL deck" - when both values were corrected,
-
"Number of players corrected to X, you provided Y" - when the number is too small or too large,
-
"Number of players set to 2, you provided unparseable input Y" - when something that couldn’t be parsed to a number was given,
-
"Deck set to SMALL, you provided unrecognized value: V" - when the user gave a value we could not recognize.
| we don’t inform about lower- or upper-case corrections in deck type. Those are corrected silently. |
1. Dealing
-
Deck should be shuffled. Shuffling should be pseudorandom (some repetitions in the shuffled deck are fine, too many are not - we suggest to learn the
Random
class' API). -
Cards should be randomly distributed to all players.
-
First player to get a card is player1, then 2 etc.
-
It’s possible that some players will get LESS cards than others! E.g. 52 cards, 5 players, all get 10 cards, 2 remaining cards will be distributed to player1 and player2.
-
LUCKY PLAYERS are those who received extra card and are written in the order of dealing (player1 is always first).
Dealing screen
WAR, a players, b deck, DEALING Player1 hand: [sorted cards, from highest to lowest, dupes are next to each other] Player... Lucky players: player1, player2. SEPARATOR
-
Players' hands are printed in brackets:
[]
-
They are sorted, descendingly.
-
Duplicated values are next to each other: 4, 4, 4…
-
Lucky players are those who received extra card and are written in the order of dealing (player1 is always first). There may be none: then the program should state
none
instead of listing them. Both a list and anone
end with a dot. -
SEPARATOR is as defined earlier.
2. Game screen
Once dealing is done, we move on to actual gameplay. The gameScreen prints the following screen to the console each turn:
WAR, a players, b deck, turn #c - playerd leads with e/DECK_SIZE cards Player1 played: 7 Player2 played: 4 Player3 ... SEPARATOR
-
turn numbering starts at 1,
-
a
is the number of players (in the example above - at least 3), -
b
is the deck: large or small, -
c
is current turn number, -
d
is the number for leading player - so between 1 and 5 → playerd becomes player1 (or 2, or…), -
e
is the number of cards that the leader holds, -
deck size is 52 or 24, depending on the deck size chosen,
-
SEPARATOR is as defined earlier.
in case of two (or more) players having the same number of cards, the message should be DRAW with e/DECK_SIZE cards .
|
Counting cards
Happens every turn AFTER cards change hands and dropped players disappear (more on that later).
Thus, the e/DECK_SIZE
reflects the situation from the beginning of the turn.
| leader that is 'marked' so on the screen is just the person who currently holds the most cards and may not be the final winner! |
Playing
-
Each player (starting from player1) puts a card on the table.
-
The highest card wins them all (colours matter not). Its owner collects all the cards on the table.
-
Order of collection starts with player with the lowest number.
-
-
Next turn - and so on until only one player has cards - that’s the winner.
-
For screen here, see gameScreen screen above.
-
The player who lost his cards simply disappears from the gameScreen screen. His line simply stops appearing. So if we had a 3 player gameScreen and player2 lost his last card, then in the next turn we would have a screen that shows:
WAR, a-1 players, b deck, turn #c - playerd leads with e/DECK_SIZE cards Player1 played: 14 Player3 played: 2 SEPARATOR
Changes between gameScreen screens
Each gameScreen turn updates the screen:
-
turn number goes up,
-
player who leads may change,
-
number of players may change (as described above),
-
param
e
should change reflecting how many cards the new leader has.
War
If there are TWO OR MORE highest cards, we have a war. War is a series of clashes (at least two) that ends when one player wins the clash, uncontested. War takes an entire turn (so participants clash and clash and clash until one of them wins over everyone else and turn number is NOT increased.
|
War screen replaces the gameScreen screen?
Remember that from the gameScreen output section? This means you will print gameScreen screen only if there’s no war. |
-
All cards that are lower than the fighting pair are stored aside. They are lost to their owners, they will be the prize of a winner.
-
War is only played among highest cards. So, if we have four eights and a nine, nine wins without a war. If we have four eights and a seven, four players wage war, and the player who played a seven loses a card to the winner.
-
Warring players put out next card from their queues HIDDEN (it’s represented as a
?
). -
Warring players put out next card revealed - these cards get compared, highest one wins.
-
Winner takes all the cards that participated in the war.
-
If a player runs out of cards during war - that player loses automatically.
-
If the cards put out in point #4 are equal - we play war again (between those who are equal) - unless there’s a higher card (war is only played between highest cards, remember?).
War screen
WAR, a players, b deck, turn #c - playerd leads with e/DECK_SIZE cards ================================================================ WE HAVE A WAR LADIES AND GENTLEMEN! ================================================================ Player1 played: 7 ? 9 Player2 played: 7 ? 11 -----------> WINNER FOUND! War lasted 2 rounds. SEPARATOR
-
a
,b
,c
,d
,e
- stay as they were. -
The lines surrounding the WE HAVE A WAR header are equal in length, and the length is easy to check with JShell! Remember: precision matters!
-
If war lasts more than one reveal, we continue adding columns with
?
and new cards until a winner is found. -
SEPARATOR is as defined earlier.
-
Notice the card 11 - that’s a valet (jack).
Counting cards DURING war
If there’s no leader (e
parameter same for more than 1 player) things should be same as for normal gameplay. Also, we don’t change that value DURING the war (so it reflects the state of affairs when current war began). So, even if player5 won several clashes (rounds of war) and he now IS a leader (has most cards) it doesn’t matter for now. It will matter, once the turn ends.
| war or no war, we count cards as we did - when turn ends and AFTER cards change hands. Even it this means 'leader' is marked incorrectly. |
What when one loses the gameScreen during war?
Player who lost, simply stops being updated, so if he put out 6 cards and lost them all, he doesn’t output any more cards in subsequent rounds (clashes).
End of Cards event
EoC event happens when - during war - one cannot put out next hidden or revealed card. This automatically marks that player as a loser and all his cards are forfeit - they will belong to current war’s winner.
A special case of this occurs when all warring players cannot put down a card AT THE SAME TIME:
WAR, 3 players, SMALL deck, turn #122 - DRAW with 8/24 cards ================================================================ WE HAVE A WAR LADIES AND GENTLEMEN! ================================================================ Player1 played: 9 ? 12 ? 10 ? 13 ? EoC Player2 played: 9 ? 12 ? 10 ? 13 ? EoC Player3 played: 9 ? 12 ? 10 ? 13 ? -----------> WINNER FOUND! War lasted 4 rounds. SEPARATOR
What happened?
-
At turn 122 war happened when everybody had 8 cards (DRAW, no leader).
-
No gameScreen screen happened, first war screen happened instead showing all players playing 9s.
-
2nd round of war, hidden cards were placed down and no winner was found, 2nd war screen was done, updated.
-
3rd round of war, hidden cards were placed down, still no winner, 3rd war screen was printed.
-
4th round of war (the screen you see above) hidden cards were placed down and then everybody ran out of cards.
-
Player1 first! , this player lost the gameScreen, but others still have cards.
-
Player2 was tallied next, this player lost the gameScreen, but one more player has cards.
-
Player3 is the only player with cards, he’s the winner.
-
EoC markers were printed for players who had lower numbers.
-
Remaining player is marked on screen as a winner despite him, too, being out of cards.
-
Next screen is the ending screen!
| for clarity’s sake - if it wouldn’t be a draw but there would be a leader with - say 12/24 cards - before this war happened, he would’ve won earlier, when his opponent’s would’ve ran out of cards. War screens would look similar, but with less rounds and cards and earlier EoC / winner marks. Game would’ve still proceed to the ending screen. |
Changes between war screens
Each war round updates the screen:
-
round number goes up,
-
number of players may change (as described above),
-
new hidden cards appear with each clash (marked as
?
), -
new revealed cards appear with each clash.
Remember: war lasts ONE TURN, so gameScreen turn and leader and his card number (or "DRAW") stay the same.
Ending
No scoring. Simple message is enough:
SEPARATOR WAR, a players, b deck, turn #c - playerd WON with e/DECK_SIZE cards
| location of the SEPARATOR has moved! It’s not CLOSING the screen but OPENING it. This means there’ll be 2 SEPARATORs in a row. |
Handling files
Aside from special scenario codes you need to:
-
log important information
-
have the gameScreen regionalized - we suggest using
properties
for it but feel free to go your own way
Regionalization
-
you will need to regionalize the
.screen
files -
English is the primary language, the default language
-
not having English counts as FAILING the task
-
-
second language is up to you: Polish, French, Italian, Russian, Ukrainian
-
gameScreen should work in both!
-
-
tests will be run in English (firstly and foremostly)
Logging
| logging at most verbose level practically DUPLICATES the outputs from your UI plus offers debug / tracing info. Therefore - do it to a file, not to console. |
-
for auditing purposes gameScreen should allow log the entire gameScreen to a file
-
file should be called
audit_yyyy_mm_dd_HH_MM_ss.log
- which means year, month, etc.
-
-
log levels should be customizable via a config file
-
on FATAL (or equivalent - most serious) logging level the gameScreen should ONLY display critical messages
-
exceptions
-
crashes
-
final result
-
-
on ERROR (or second most serious) logging level the gameScreen should display
-
everything from the higher level
-
wars (when two players put out a same card)
-
-
most verbose level has everything, duplicating (or perhaps more) the output
-
again: all logging is done to a file
Troubleshooting
This section offers technical (and other) help in case you’re stuck with something.
-
How to build the jar file?
mvn package
from the main dir of this project, same place where this readme is located, from the command line. -
I want to use Java 14! Can I?
Sure. Bump the version in the
pom.xml
, switch your IDE settings (steps are IDE-dependent - look for yours), run withjava --enable-preview -jar target/War.jar number deckType
if you enabled preview features or without (the--enable-preview
) if you didn’t. -
I accidentally crashed my screen files. How to restore them?
A) use git to do that, and in case you can’t B) go to
backup.screens
and overwrite your modified files with the ones there. We suggest copying, not moving, so you still have the backup. -
How will my work be graded?
If it doesn’t work - it failed. Work == per requirements. We grade: working features, tests, Maven, Git, OOP, FP, threads, collections, advanced coding principles / techniques, error handling, generics… if it was taught during course we grade it. If it wasn’t, and you introduced it, we grade it (but leniently). Code quality is graded at the end of: works, works well, is tested, is tested well, is documented, is documented well, is coded, is coded well.
-
How will you run my work?
We will take your code from your repository via
git clone
. We will build it viamvn package
. We will run it via appropriatejava -jar
command. We will look in your readme for details if something goes wrong with or during these steps. We will provide special scenario codes and see the results. -
I want to use Graphical Interface! What now?
Excellent! First deliver the version as specified here (we think that will be complex and challenging on its own). Then
git tag
it and move on to GUI.
Assumptions, doubts, other remarks
-
ask in the chat. There is an entire channel dedicated to Q&A.
-
look in
remarks.md
file in the same directory-
it’s also an excellent place to leave some instructions for us, if your gameScreen requires any
-


UMER IKRAM
My life
My interests
My future
My hobbies
I love soccer
First to know about me... Is that I love soccer.
Especially this guy
© Umer Ikram


Search
Preparing search index...
The search index is not available
mailgun.js
Options
All
Public
Public/Protected
All
Inherited
Externals
Only exported
Menu
Globals
"lib/domains"
Domain
Class Domain
Hierarchy
Domain
Index
Constructors
constructor
Properties
created_
at
name
receiving_
dns_
records
require_
tls
sending_
dns_
records
skip_
verification
smtp_
login
smtp_
password
spam_
action
state
type
wildcard
Constructors
constructor
new
Domain
(
data
:
DomainData
, receiving
?:
any
, sending
?:
any
)
:
Domain
Parameters
data:
DomainData
Optional
receiving:
any
Optional
sending:
any
Returns
Domain
Properties
created_
at
created_
at
:
any
name
name
:
any
receiving_
dns_
records
receiving_
dns_
records
:
any
require_
tls
require_
tls
:
any
sending_
dns_
records
sending_
dns_
records
:
any
skip_
verification
skip_
verification
:
any
smtp_
login
smtp_
login
:
any
smtp_
password
smtp_
password
:
any
spam_
action
spam_
action
:
any
state
state
:
any
type
type
:
any
wildcard
wildcard
:
any
Globals
"index"
"lib/client"
"lib/domains"
"lib/error"
"lib/events"
"lib/interfaces/APIError
Options"
"lib/interfaces/
Options"
"lib/interfaces/
Request
Options"
"lib/interfaces/
Stats
Options"
"lib/interfaces/
Supressions"
"lib/messages"
"lib/parse"
"lib/request"
"lib/routes"
"lib/stats"
"lib/suppressions"
"lib/validate"
"lib/webhooks"
"webpack.config"
"webpack.release.config"
Domain
constructor
created_
at
name
receiving_
dns_
records
require_
tls
sending_
dns_
records
skip_
verification
smtp_
login
smtp_
password
spam_
action
state
type
wildcard
Domain
Client
Domain
Data
Generated using
TypeDoc


|
|||||||||
| PREV NEXT | FRAMES NO FRAMES |
| gate.learning.* |
|---|
| gate.learning.Attribute | ||
|---|---|---|
public static final int |
BOOLEAN |
3 |
public static final int |
NOMINAL |
1 |
public static final int |
NUMERIC |
2 |
| gate.learning.ChunkLengthStats | ||
|---|---|---|
public static final int |
maxLen |
200 |
| gate.learning.ConstantParameters | ||
|---|---|---|
public static final String |
FILENAMEOFChunkLenStats |
"ChunkLenStats.save" |
public static final String |
FILENAMEOFDocsName |
"docsName.save" |
public static final String |
FILENAMEOFFeatureVectorData |
"featureVectorsData.save" |
public static final String |
FILENAMEOFFeatureVectorDataApp |
"featureVectorsDataApp.save" |
public static final String |
FILENAMEOFFVDataSelecting |
"fvsDataSelecting.save" |
public static final String |
FILENAMEOFLabelList |
"LabelsList.save" |
public static final String |
FILENAMEOFLabelsInData |
"LabelListInData.save" |
public static final String |
FILENAMEOFLOGFILE |
"logFileForNLPLearning.save" |
public static final String |
FILENAMEOFMILearningInfor |
"MILearningInformation.save" |
public static final String |
FILENAMEOFModelMetaData |
"metaData" |
public static final String |
FILENAMEOFModels |
"learnedModels.save" |
public static final String |
FILENAMEOFNgramLM |
"NgramList.save" |
public static final String |
FILENAMEOFNLPDataLabel |
"NLPFeatureDataLabels.save" |
public static final String |
FILENAMEOFNLPFeatureList |
"NLPFeatureList.save" |
public static final String |
FILENAMEOFNLPFeaturesData |
"NLPFeatureData.save" |
public static final String |
FILENAMEOFNLPFeaturesDataTemp |
"NLPFeatureDataTemp.save" |
public static final String |
FILENAMEOFPerClassModel |
"class%03d.model" |
public static final String |
FILENAMEOFRankedDOCForAL |
"ALRankedDocs.save" |
public static final String |
FILENAMEOFSelectedDOCForAL |
"ALSelectedDocs.save" |
public static final String |
FILENAMEOFTermFreqMatrix |
"documentByTermMatrix.save" |
public static final String |
FILETYPEOFSAVEDFILE |
".save" |
public static final String |
LEARNINGMODE1 |
"TRAINING" |
public static final String |
LEARNINGMODE2 |
"APPLICATION" |
public static final String |
LEARNINGMODE3 |
"EVALUATION" |
public static final long |
MAXIMUMFEATURES |
900000L |
public static final String |
NAMECONFIGURATIONFILE |
"engines.xml" |
public static final String |
SUBDIRFORRESULTS |
"savedFiles" |
public static final String |
TempFILENAMEofFVData |
"featureVectorsDataTemp.save" |
| gate.learning.DataSetDefinition | ||
|---|---|---|
public static final short |
ChunkLearningData |
1 |
public static final short |
ClassificationData |
2 |
public static final short |
RelationData |
3 |
| gate.learning.EvaluationConfiguration | ||
|---|---|---|
public static final int |
kfold |
1 |
public static final int |
split |
2 |
| gate.learning.LearningEngineSettings | ||
|---|---|---|
public static final short |
OneVSAnotehrMode |
2 |
public static final short |
OneVSOtherMode |
1 |
| gate.learning.LogService | ||
|---|---|---|
public static final int |
DEBUG |
2 |
public static final int |
MINIMUM |
0 |
public static final int |
NORMAL |
1 |
| gate.learning.NLPFeaturesList | ||
|---|---|---|
public static final String |
SYMBOLNGARM |
"<>" |
| gate.learning.learners.SvmForExec | ||
|---|---|---|
public static final int |
LINEAR |
0 |
public static final int |
POLY |
1 |
public static final int |
PRECOMPUTED |
4 |
public static final int |
RBF |
2 |
public static final int |
SIGMOID |
3 |
| gate.learning.learners.svm.svm_parameter | ||
|---|---|---|
public static final int |
C_SVC |
0 |
public static final int |
EPSILON_SVR |
3 |
public static final int |
LINEAR |
0 |
public static final int |
NU_SVC |
1 |
public static final int |
NU_SVR |
4 |
public static final int |
ONE_CLASS |
2 |
public static final int |
POLY |
1 |
public static final int |
PRECOMPUTED |
4 |
public static final int |
RBF |
2 |
public static final int |
SIGMOID |
3 |
| gate.learning.learners.weka.WekaLearning | ||
|---|---|---|
public static final short |
NLPFEATUREFVDATA |
1 |
public static final short |
SPARSEFVDATA |
2 |
|
|||||||||
| PREV NEXT | FRAMES NO FRAMES |


Before Change
def _same_mesh(vertices1, faces1, vertices2, faces2):
faces1 = [sorted(f) for f in faces1]
faces2 = [sorted(f) for f in faces2]
triangles1 = vertices1[np.array(faces1)]
triangles2 = vertices2[np.array(faces2)]
triang1 = set([tuple(t.flat) for t in triangles1])
triang2 = set([tuple(t.flat) for t in triangles2])
return triang1 == triang2
After Change
triangles2 = vertices2[np.array(faces2)]
triang1 = [np.concatenate(sorted(t, key=lambda x:tuple(x))) for t in triangles1]
triang1 = set([tuple([rounder(i) for i in t]) for t in triang1])
triang2 = [np.concatenate(sorted(t, key=lambda x:tuple(x))) for t in triangles2]
triang2 = set([tuple([rounder(i) for i in t]) for t in triang2])
return triang1 == triang2
def test_both_algs_same_result_donut():


{% extends "admin/index.html" %} {% comment %} Extends default admin site index template in order to add custom links for reporting purposes, etc. {% endcomment %} {% block content %} {{ block.super }} {# NOTE: currently allowing anyone with admin site access to view link check reports #}
| Link Checker Report |